Ejemplo n.º 1
0
        public override string ToString()
        {
            // TODO ADD TESTS FOR MULTIPLE TO STRING SCENARIOS
            StringBuilder sb = new StringBuilder();

            if (!AccessibilityLevel.Equals(SGAccessibilityLevel.None))
            {
                sb.Append($"{AccessibilityLevel} ");
            }
            if (IsStatic)
            {
                sb.Append("static ");
            }
            if (IsAsync)
            {
                sb.Append("async ");
            }
            if (IsOverride)
            {
                sb.Append("override ");
            }
            sb.Append($"{ReturnType} {MethodName}");

            if (IsGeneric && GenericTypeNames.Count > 0)
            {
                sb.Append("<");
                sb.Append(String.Join(", ", GenericTypeNames));
                sb.Append(">");
            }

            sb.Append(" (");
            sb.Append(String.Join(", ", Arguments.Select(x => x.ToString())));
            sb.Append(")");

            return(sb.ToString());
        }
Ejemplo n.º 2
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            foreach (var attr in Attributes)
            {
                sb.AppendLine(attr.ToString());
            }

            if (!AccessibilityLevel.Equals(SGAccessibilityLevel.None))
            {
                sb.Append($"{AccessibilityLevel} ");
            }
            if (IsStatic)
            {
                sb.Append("static ");
            }
            if (IsAbstract)
            {
                sb.Append("abstract ");
            }
            if (IsPartial)
            {
                sb.Append("partial ");
            }
            sb.Append($"class {ClassName}");

            if (IsGeneric)
            {
                sb.Append("<");
                sb.Append(String.Join(", ", GenericTypeNames));
                sb.Append(">");
            }

            if (!String.IsNullOrEmpty(BaseClass) || InterfaceImplementations.Count > 0)
            {
                sb.Append(" : ");
                if (!String.IsNullOrEmpty(BaseClass))
                {
                    sb.Append($"{BaseClass}");

                    if (InterfaceImplementations.Count > 0)
                    {
                        sb.Append(", ");
                    }
                }
                sb.Append(String.Join(", ", InterfaceImplementations));
            }
            sb.AppendLine();
            sb.AppendLine("{");

            foreach (SGClassProperty property in Properties)
            {
                foreach (string propertyLine in property.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{propertyLine}");
                }
            }
            foreach (SGClassField field in Fields)
            {
                foreach (string fieldLine in field.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{fieldLine}");
                }
            }
            foreach (SGClassConstructor constructor in Constructors)
            {
                foreach (string ctorLine in constructor.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{ctorLine}");
                }
            }
            foreach (SGMethod method in Methods)
            {
                foreach (string methodLine in method.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{methodLine}");
                }
            }
            foreach (SGClass nestedClass in NestedClasses)
            {
                foreach (string nestedClassLine in nestedClass.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{nestedClassLine}");
                }
            }
            foreach (SGInterface nestedInterface in NestedInterfaces)
            {
                foreach (string nestedInterfaceLine in nestedInterface.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{nestedInterfaceLine}");
                }
            }
            foreach (SGEnum nestedEnum in NestedEnums)
            {
                foreach (string nestedEnumLine in nestedEnum.ToString().BreakIntoLines())
                {
                    sb.AppendLine($"\t{nestedEnumLine}");
                }
            }

            sb.AppendLine("}");
            return(sb.ToString());
        }