public static ClassDeclarationSyntax Create(IClass element)
        {
            var modifierDeclaration = SyntaxFactory.ParseToken(element.ModifierDeclaration);
            var classDeclaration    = SyntaxFactory.ClassDeclaration(element.Name).AddModifiers(modifierDeclaration);

            if (element.Attributes?.Any() ?? false)
            {
                classDeclaration = classDeclaration.AddAttributeLists(element.Attributes.Select(item => ConstructAttribute.Create(item)).ToArray());
            }

            return(classDeclaration);
        }
        public static PropertyDeclarationSyntax Create(IProperty element)
        {
            var propertyDeclaration = SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(element.Type), element.Name)
                                      .AddModifiers(SyntaxFactory.ParseToken(element.ModifierDeclaration));

            if (element.SetAccessor)
            {
                propertyDeclaration = propertyDeclaration.AddAccessorListAccessors(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));
            }

            if (element.GetAccessor)
            {
                propertyDeclaration = propertyDeclaration.AddAccessorListAccessors(SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));
            }

            if (element.Attributes?.Any() ?? false)
            {
                propertyDeclaration = propertyDeclaration.AddAttributeLists(element.Attributes.Select(item => ConstructAttribute.Create(item)).ToArray());
            }

            return(propertyDeclaration);
        }