public AbstractIndexerWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, IEnumerable <IndexerParameterWithCodeAnalysis> parameters, AccessorTypes accessors) : this() { var parameterSyntax = parameters.Select(parameter => parameter.Syntax); List <AccessorDeclarationSyntax> accessorSyntax = new List <AccessorDeclarationSyntax>(); if (accessors.HasFlag(AccessorTypes.Get)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.GetKeyword)); } if (accessors.HasFlag(AccessorTypes.Set)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetKeyword)); } Syntax = SyntaxFactory.IndexerDeclaration( default(SyntaxList <AttributeListSyntax>), default(SyntaxTokenList).WithClassMemberVisibilityModifier(visibility).Add(SyntaxKind.AbstractKeyword), type.Syntax, null, SyntaxFactory.BracketedParameterList(SyntaxFactory.SeparatedList(parameterSyntax)), SyntaxFactory.AccessorList(SyntaxFactory.List(accessorSyntax))); }
public AbstractPropertyWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, string name, AccessorTypes accessors) : this() { List <AccessorDeclarationSyntax> accessorSyntax = new List <AccessorDeclarationSyntax>(); if (accessors.HasFlag(AccessorTypes.Get)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.GetKeyword)); } if (accessors.HasFlag(AccessorTypes.Set)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetKeyword)); } Syntax = SyntaxFactory.PropertyDeclaration( default(SyntaxList <AttributeListSyntax>), default(SyntaxTokenList).WithClassMemberVisibilityModifier(visibility).Add(SyntaxKind.AbstractKeyword), type.Syntax, null, SyntaxFactory.Identifier(name), SyntaxFactory.AccessorList(SyntaxFactory.List(accessorSyntax))); }