コード例 #1
0
        internal StaticPartialClassWithCodeAnalysis(DocumentWithCodeAnalysis document)
        {
            this.document = document;
            var type = new InternalStaticTypeWithCodeAnalysis <StaticPartialClassWithCodeAnalysis>(this);

            classType = new StaticClassWithCodeAnalysis(document, type);
            classes   = new StaticPartialClassNestedClassCollectionWithCodeAnalysis(classType.Classes);
            delegates = new WrappedCollection <StaticClassNestedDelegateWithCodeAnalysis, StaticPartialClassNestedDelegateWithCodeAnalysis>(
                classType.Delegates,
                parent => new StaticPartialClassNestedDelegateWithCodeAnalysis(parent),
                child => child.Delegate,
                value => classType.Delegates = value);
            enums = new WrappedCollection <StaticClassNestedEnumWithCodeAnalysis, StaticPartialClassNestedEnumWithCodeAnalysis>(
                classType.Enums,
                parent => new StaticPartialClassNestedEnumWithCodeAnalysis(parent),
                child => child.Enum,
                value => classType.Enums = value);
            events     = new StaticPartialClassEventCollectionWithCodeAnalysis(classType.Events);
            fields     = new StaticPartialClassFieldCollectionWithCodeAnalysis(classType.Fields);
            interfaces = new WrappedCollection <StaticClassNestedInterfaceWithCodeAnalysis, StaticPartialClassNestedInterfaceWithCodeAnalysis>(
                classType.Interfaces,
                parent => new StaticPartialClassNestedInterfaceWithCodeAnalysis(parent),
                child => child.Interface,
                value => classType.Interfaces = value);
            methods    = new StaticPartialClassMethodCollectionWithCodeAnalysis(type);
            properties = new StaticPartialClassPropertyCollectionWithCodeAnalysis(classType.Properties);
            structs    = new StaticPartialClassNestedStructCollectionWithCodeAnalysis(classType.Structs);
            members    = type.Members;
        }
コード例 #2
0
 internal StaticPartialClassMethodCollectionWithCodeAnalysis(
     InternalStaticTypeWithCodeAnalysis <StaticPartialClassWithCodeAnalysis> classType)
 {
     this.classType = classType;
     methods        = new ClassMemberListWrapper <StaticPartialClassWithCodeAnalysis, StaticPartialClassMethodWithCodeAnalysis, MethodDeclarationSyntax>(
         classType.InternalNode,
         () => new StaticPartialClassMethodWithCodeAnalysis(new StaticClassMethodWithCodeAnalysis()),
         syntax => !syntax.IsPartial());
     partialMethodDefinitions = new ClassMemberListWrapper <StaticPartialClassWithCodeAnalysis, PartialMethodDefinitionWithCodeAnalysis, MethodDeclarationSyntax>(
         classType.InternalNode,
         () => new PartialMethodDefinitionWithCodeAnalysis(),
         syntax => syntax.IsPartial() && syntax.Body == null);
     partialMethodImplementations = new ClassMemberListWrapper <StaticPartialClassWithCodeAnalysis, PartialMethodImplementationWithCodeAnalysis, MethodDeclarationSyntax>(
         classType.InternalNode,
         () => new PartialMethodImplementationWithCodeAnalysis(),
         syntax => syntax.IsPartial() && syntax.Body != null);
 }
コード例 #3
0
        internal static StaticClassNestedPartialClassCollectionWithCodeAnalysis Create <TClass>(
            InternalStaticTypeWithCodeAnalysis <TClass> classType)
            where TClass : class, IHasNode <ClassDeclarationSyntax>
        {
            var classes = new ClassMemberListWrapper <TClass, StaticClassNestedPartialClassWithCodeAnalysis, ClassDeclarationSyntax>(
                classType.InternalNode,
                () => new StaticClassNestedPartialClassWithCodeAnalysis(),
                ClassDeclarationSyntaxExtensions.IsPartialClass);
            var abstractClasses = new ClassMemberListWrapper <TClass, StaticClassNestedAbstractPartialClassWithCodeAnalysis, ClassDeclarationSyntax>(
                classType.InternalNode,
                () => new StaticClassNestedAbstractPartialClassWithCodeAnalysis(),
                ClassDeclarationSyntaxExtensions.IsAbstractPartialClass);
            var sealedClasses = new ClassMemberListWrapper <TClass, StaticClassNestedSealedPartialClassWithCodeAnalysis, ClassDeclarationSyntax>(
                classType.InternalNode,
                () => new StaticClassNestedSealedPartialClassWithCodeAnalysis(),
                ClassDeclarationSyntaxExtensions.IsSealedPartialClass);
            var staticClasses = new ClassMemberListWrapper <TClass, StaticClassNestedStaticPartialClassWithCodeAnalysis, ClassDeclarationSyntax>(
                classType.InternalNode,
                () => new StaticClassNestedStaticPartialClassWithCodeAnalysis(),
                ClassDeclarationSyntaxExtensions.IsStaticPartialClass);

            return(new StaticClassNestedPartialClassCollectionWithCodeAnalysis(classType.Members, abstractClasses, classes, sealedClasses, staticClasses));
        }