Esempio n. 1
0
        public override void Run(TextWriter writer, Class @class)
        {
            if (@class.Imports?.Count() > 0)
            {
                foreach (var item in @class.Imports)
                {
                    writer.Append("using ").Append(item).AppendLine(";");
                }
                writer.WriteLine();
            }

            using (var scope = writer.BeginScope($"namespace {@class.Namespace}")) {
                scope.Writer.Run(writeAccessModifier, @class.AccessModifier);
                if (@class.Static)
                {
                    scope.Writer.Append(" static");
                }
                if (@class.Partial)
                {
                    scope.Writer.Append(" partial");
                }
                scope.Writer.Append(" class ").Append(@class.Name);
                if (@class.BaseClass != null)
                {
                    scope.Writer.Append(" : ").Append(@class.BaseClass.Name);
                }

                using (var childScope = scope.Writer.BeginScope()) {
                    if (@class.Constructors?.Count() > 0)
                    {
                        foreach (var constructor in @class.Constructors)
                        {
                            childScope.Writer.Run(writeConstructor, constructor).WriteLine();
                        }
                    }
                    if (@class.Fields?.Count() > 0)
                    {
                        foreach (var field in @class.Fields)
                        {
                            childScope.Writer.Run(writeField, field).WriteLine();
                        }
                    }
                    if (@class.Properties?.Count() > 0)
                    {
                        foreach (var property in @class.Properties)
                        {
                            childScope.Writer.Run(writeProperty, property).WriteLine();
                        }
                    }
                    if (@class.Methods?.Count() > 0)
                    {
                        foreach (var method in @class.Methods)
                        {
                            childScope.Writer.Run(writeMethod, method).WriteLine();
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public override void Run(TextWriter writer, Property property)
        {
            writer.Run(writeAccessModifier, property.Modifier).Space();
            if (property.Static)
            {
                writer.Static();
            }

            writer.Run(writeType, property.Type).Space().Append(property.Name);

            using (var scope = writer.BeginScope()) {
                if (property.CanRead)
                {
                    scope.Writer.Append("get");
                    if (property.GetCodeBlock != null)
                    {
                        scope.Writer.Run(writeCodeBlock, property.GetCodeBlock);
                    }
                    else
                    {
                        scope.Writer.Write(";");
                    }
                }
                if (property.CanWrite)
                {
                    if (property.SetModifier != property.Modifier)
                    {
                        scope.Writer.Run(writeAccessModifier, property.SetModifier).Space();
                    }
                    scope.Writer.Append("set");
                    if (property.SetCodeBlock != null)
                    {
                        scope.Writer.Run(writeCodeBlock, property.SetCodeBlock);
                    }
                    else
                    {
                        scope.Writer.Write(";");
                    }
                }
            }
        }