예제 #1
0
        /// Converts the XML object into C# and adds it to the string builder
        public override void ToCSharp(StringBuilder stringBuilder, int indentationLevel, TemplateSettings settings)
        {
            stringBuilder.AppendIndentations(indentationLevel);

            //Accessibility
            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.ACCESSIBILITY_KEYWORD_COLOR);
            stringBuilder.Append(accessibility);
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.ACCESSIBILITY_KEYWORD_COLOR);

            //Static and Virtuality
            stringBuilder.AppendSpace();
            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.SYSTEM_KEYWORD_COLOR);
            stringBuilder.AppendIf("static ", isStatic);
            stringBuilder.AppendIf(virtuality.ToString() + " ", virtuality != Virtuality.none);
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.SYSTEM_KEYWORD_COLOR);

            //Type
            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);
            stringBuilder.Append(type ?? "?");
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);

            //Name
            stringBuilder.AppendSpace();
            stringBuilder.Append(id);

            //Children
            if (children.Count > 0)
            {
                stringBuilder.Append("\n");
                stringBuilder.AppendIndentations(indentationLevel);
                stringBuilder.Append("{\n");
                base.ToCSharp(stringBuilder, indentationLevel + 1, settings);
                stringBuilder.Append("\n");
                stringBuilder.AppendIndentations(indentationLevel);
                stringBuilder.Append("}");
            }
            else
            {
                //Default
                if (!string.IsNullOrEmpty(defaultValue))
                {
                    stringBuilder.Append(" = ");

                    if (type.Equals("string", System.StringComparison.InvariantCultureIgnoreCase))
                    {
                        stringBuilder.Append("\"");
                        stringBuilder.Append(defaultValue);
                        stringBuilder.Append("\"");
                    }
                    else
                    {
                        stringBuilder.Append(defaultValue);
                    }
                }

                stringBuilder.Append(';');
            }
        }
예제 #2
0
        /// Converts the XML object into C# and adds it to the string builder
        public override void ToCSharp(StringBuilder stringBuilder, int indentationLevel, TemplateSettings settings)
        {
            //Signature
            stringBuilder.AppendIndentations(indentationLevel);
            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.ACCESSIBILITY_KEYWORD_COLOR);
            stringBuilder.Append(accessibility);
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.ACCESSIBILITY_KEYWORD_COLOR);
            stringBuilder.AppendSpace();
            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.SYSTEM_KEYWORD_COLOR);
            stringBuilder.AppendIf("static ", isStatic);
            stringBuilder.AppendIf("sealed ", isSealed);

            if (virtuality != Virtuality.none)
            {
                stringBuilder.Append(virtuality.ToString().Replace("@", null));
                stringBuilder.AppendSpace();
            }
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.SYSTEM_KEYWORD_COLOR);

            TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);
            stringBuilder.Append(returnType ?? "void");
            TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);
            stringBuilder.AppendSpace();
            stringBuilder.Append(id);

            //Arguments
            stringBuilder.Append("(");

            for (int i = 0; i < arguments.Count; ++i)
            {
                XmlArgument argument = arguments[i];

                TemplateBuilder.BeginColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);
                stringBuilder.Append(argument.type ?? "?");
                TemplateBuilder.EndColorBlock(stringBuilder, settings, TemplateSettings.TYPE_COLOR);
                stringBuilder.AppendSpace();
                stringBuilder.Append(argument.id ?? "?");

                if (i < arguments.Count - 1)
                {
                    stringBuilder.Append(", ");
                }
            }

            stringBuilder.Append(")");


            //Body
            if (virtuality == Virtuality.@abstract)
            {
                stringBuilder.Append(";\n");
            }
            else
            {
                stringBuilder.Append("\n");
                stringBuilder.AppendIndentations(indentationLevel);
                stringBuilder.Append("{\n");

                base.ToCSharp(stringBuilder, indentationLevel + 1, settings);
                stringBuilder.Append("\n");

                stringBuilder.AppendIndentations(indentationLevel);
                stringBuilder.Append("}");
            }
        }