/// <summary>
 /// A fully readable file
 /// </summary>
 public FileInfo(FileName name, SourceCodeSnippet sourceText)
 {
     FileName           = name;
     ReferencesToThis   = new List <CodeReferenceEndpoint>();
     ReferencesFromThis = new List <CodeReferenceEndpoint>();
     SourceCode         = sourceText;
     Children           = new List <ICodebaseElementInfo>();
 }
 public FieldInfo(
     FieldName fieldName,
     ClassName parentClass,
     AccessFlags accessFlags,
     SourceCodeSnippet sourceCode)
 {
     ParentClass        = parentClass;
     FieldName          = fieldName;
     FieldType          = TypeName.For(FieldName.FullyQualified.Split(':')[1]);
     AccessFlags        = accessFlags;
     Methods            = new List <MethodInfo>();
     ReferencesToThis   = new List <CodeReferenceEndpoint>();
     ReferencesFromThis = new List <CodeReferenceEndpoint>();
     SourceCode         = sourceCode;
 }
        public MethodInfo(
            MethodName methodName,
            AccessFlags accessFlags,
            ClassName parentClass,
            IEnumerable <Argument> arguments,
            TypeName returnType,
            SourceCodeSnippet sourceCode)
        {
            MethodName       = methodName;
            this.accessFlags = accessFlags;
            ParentClass      = parentClass;

            Arguments  = arguments.ToArray();
            ReturnType = returnType;

            Field              = null;
            ReferencesToThis   = new List <CodeReferenceEndpoint>();
            ReferencesFromThis = new List <CodeReferenceEndpoint>();

            SourceCode = sourceCode;
        }
        public ClassInfo(
            ClassName className,
            IEnumerable <MethodInfo> methods,
            IEnumerable <FieldInfo> fields,
            AccessFlags accessFlags,
            IEnumerable <ClassInfo> innerClasses,
            SourceCodeSnippet headerSource,
            bool isTestClass)
        {
            this.className   = className;
            this.accessFlags = accessFlags;

            Children = new List <ICodebaseElementInfo>();
            Children.AddRange(fields);
            Children.AddRange(methods);
            Children.AddRange(innerClasses);

            ReferencesToThis   = new List <CodeReferenceEndpoint>();
            ReferencesFromThis = new List <CodeReferenceEndpoint>();
            SourceCode         = headerSource;
            IsTestClass        = isTestClass;
        }