private PropertyDeclarationSyntax CreateReadOnlyProperty(PropertyTemplateData propertyTemplate) { return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name) .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword)) .AddAccessorListAccessors( SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)))); }
private PropertyDeclarationSyntax CreateReadOnlyPropertyWithDefultValue(PropertyTemplateData propertyTemplate) { return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name) .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword)) .WithExpressionBody( SyntaxFactory.ArrowExpressionClause( SyntaxFactory.LiteralExpression(SyntaxKind.NumericLiteralExpression, SyntaxFactory.Literal(propertyTemplate.DefaultValue)))) .WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken))); }
private PropertyDeclarationSyntax CreatePropertyWithSetter(PropertyTemplateData propertyTemplate) { return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name) .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword)) .AddAccessorListAccessors( SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration) .WithBody(SyntaxFactory.Block(SyntaxFactory.ParseStatement($"return {propertyTemplate.NameStartWithLowerCase};"))), SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration) .WithBody(SyntaxFactory.Block(SyntaxFactory.ParseStatement($"{propertyTemplate.NameStartWithLowerCase} = value;"))))); }
private PropertyDeclarationSyntax CreateProperty(PropertyTemplateData propertyTemplate) { var propertyDeclaration = SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name) .AddAccessorListAccessors( SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken))); if (!propertyTemplate.IsReadOnly) { propertyDeclaration = propertyDeclaration .AddAccessorListAccessors(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration) .WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken))); } return(propertyDeclaration); }
private FieldDeclarationSyntax CreateFieldForProperty(PropertyTemplateData propertyTemplate) { return(SyntaxFactory.FieldDeclaration(SyntaxFactory .VariableDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type)).AddVariables(SyntaxFactory.VariableDeclarator(propertyTemplate.NameStartWithLowerCase))) .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PrivateKeyword)))); }