/// 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(';'); } }
/// 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("}"); } }