Example #1
0
        public void WriteCode(StringBuilder strBldr)
        {
            var idnt     = useIndent ? indentCount : 0;
            var nextIdnt = useIndent ? idnt + 1 : 0;

            var idntStr     = CodeGeneratorUtil.CreateIndent(idnt);
            var nextIdntStr = CodeGeneratorUtil.CreateIndent(nextIdnt);

            strBldr.Append(accessModifier.ToAccessModifierStr().Indent(idntStr));
            strBldr.Append(" ");

            if (isStatic)
            {
                strBldr.Append(CodeGeneratorConst.STATIC_STR);
                strBldr.Append(" ");
            }

            strBldr.Append(returnType);
            strBldr.Append(" ");

            strBldr.Append(name);

            // write parameter
            strBldr.Append("(");
            {
                if (isExtensionsMethod)
                {
                    strBldr.Append("this");
                    strBldr.Append(" ");
                }

                for (int prmtrIdx = 0; prmtrIdx < _parameters.Count; ++prmtrIdx)
                {
                    var prmtr = _parameters[prmtrIdx];

                    strBldr.Append(prmtr.parameterType);
                    strBldr.Append(" ");
                    strBldr.Append(prmtr.parameterName);

                    if ((_parameters.Count - 1) > prmtrIdx)
                    {
                        strBldr.Append(",");
                        strBldr.Append(" ");
                    }
                }
            }
            strBldr.Append(")");
            strBldr.AppendLine();

            strBldr.AppendLine("{".Indent(idntStr));
            {
                var iter = _lineCodes.GetEnumerator();
                while (iter.MoveNext())
                {
                    var curLine = iter.Current;
                    curLine.WriteCode(strBldr);
                }
            }
            strBldr.AppendLine("}".Indent(idntStr));
            strBldr.AppendLine();
        }