public void Render( StringBuilder builder, bool isPublic, bool isInnerClass, CodegenIndent indent, int additionalIndent) { if (OptionalComment != null) { indent.Indent(builder, 1 + additionalIndent); builder.Append("// "); builder.Append(OptionalComment); builder.Append("\n"); } indent.Indent(builder, 1 + additionalIndent); if (isPublic) { builder.Append("public "); } if (Modifiers.IsOverride()) { builder.Append("override "); } if (Modifiers.IsVirtual()) { builder.Append("virtual "); } if (ReturnType != null) { AppendClassName(builder, ReturnType); } else { builder.Append(ReturnTypeName); } builder.Append(" "); builder.Append(Name); builder.Append(" {\n"); if (GetterBlock.IsNotEmpty()) { indent.Indent(builder, additionalIndent + 2); builder.Append("get {\n"); GetterBlock.Render(builder, isInnerClass, 3 + additionalIndent, indent); indent.Indent(builder, additionalIndent + 2); builder.Append("}\n"); } if (SetterBlock.IsNotEmpty()) { indent.Indent(builder, additionalIndent + 2); builder.Append("set {\n"); SetterBlock.Render(builder, isInnerClass, 3 + additionalIndent, indent); indent.Indent(builder, additionalIndent + 2); builder.Append("}\n"); } indent.Indent(builder, 1 + additionalIndent); builder.Append("}\n"); }
public void Render( StringBuilder builder, bool isPublic, bool isInnerClass, CodegenIndent indent, int additionalIndent) { if (Footprint.OptionalComment != null) { indent.Indent(builder, 1 + additionalIndent); builder .Append("// ") .Append(Footprint.OptionalComment) .Append("\n"); } indent.Indent(builder, 1 + additionalIndent); if (isPublic) { builder.Append("public "); } else { // We found that there's an important distinction with internal classes between Java and C#. In Java // private methods in an inner class are still visible and callable between parent and child. In C# // this is not true. We alleviate this by making the default method access internal. builder.Append("internal "); } if (Modifiers.IsStatic()) { builder.Append("static "); } if (Modifiers.IsOverride()) { builder.Append("override "); } if (Modifiers.IsVirtual()) { builder.Append("virtual "); } if (Footprint.ReturnType != null) { AppendClassName(builder, Footprint.ReturnType); } else { builder.Append(Footprint.ReturnTypeName); } builder .Append(" ") .Append(Name) .Append("("); var delimiter = ""; foreach (var param in Footprint.Params) { builder.Append(delimiter); param.Render(builder); delimiter = ","; } builder.Append(")"); builder.Append("{\n"); Block.Render(builder, isInnerClass, 2 + additionalIndent, indent); indent.Indent(builder, 1 + additionalIndent); builder.Append("}\n"); }
public void Render( StringBuilder builder, bool isPublic, bool isInnerClass, CodegenIndent indent, int additionalIndent) { if (Footprint.OptionalComment != null) { indent.Indent(builder, 1 + additionalIndent); builder .Append("// ") .Append(Footprint.OptionalComment) .Append("\n"); } indent.Indent(builder, 1 + additionalIndent); if (isPublic) { builder.Append("public "); } if (IsStatic) { builder.Append("static "); } if (IsOverride) { builder.Append("override "); } if (Footprint.ReturnType != null) { AppendClassName(builder, Footprint.ReturnType); } else { builder.Append(Footprint.ReturnTypeName); } builder .Append(" ") .Append(Name) .Append("("); var delimiter = ""; foreach (var param in Footprint.Params) { builder.Append(delimiter); param.Render(builder); delimiter = ","; } builder.Append(")"); builder.Append("{\n"); Block.Render(builder, isInnerClass, 2 + additionalIndent, indent); indent.Indent(builder, 1 + additionalIndent); builder.Append("}\n"); }