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; }
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); }
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)); }