/// <summary> /// Visits the specified class. /// </summary> /// <param name="concreteClass">The class.</param> public void Visit(AbstractClass concreteClass) { if (concreteClass == null) { throw new ArgumentNullException("concreteClass"); } foreach (AbstractUsingClause clause in concreteClass.UsingClauses) { clause.Accept(this); } writer.WriteLine(); concreteClass.NamespaceDefinition.Accept(this); openBracket(); indent(); string postfix = string.IsNullOrEmpty(concreteClass.Postfix) ? string.Empty : " : " + concreteClass.Postfix; writer.WriteLine("{0} class {1}{2}", concreteClass.Prefix, concreteClass.Name, postfix); openBracket(); foreach (AbstractField field in concreteClass.Fields) { field.Accept(this); } writer.WriteLine(); foreach (AbstractProperty property in concreteClass.Properties) { property.Accept(this); writer.WriteLine(); } foreach (AbstractConstructor constructor in concreteClass.Constructors) { constructor.Accept(this); writer.WriteLine(); } foreach (AbstractMethod method in concreteClass.Methods) { method.Accept(this); writer.WriteLine(); } closeBracket(); // class closeBracket(); // namespace }
/// <summary> /// Visits the specified class. /// </summary> /// <param name="concreteClass">The class.</param> public void Visit(AbstractClass concreteClass) { if (concreteClass == null) throw new ArgumentNullException("concreteClass"); foreach (AbstractUsingClause clause in concreteClass.UsingClauses) { clause.Accept(this); } writer.WriteLine(); concreteClass.NamespaceDefinition.Accept(this); openBracket(); indent(); string postfix = string.IsNullOrEmpty(concreteClass.Postfix) ? string.Empty : " : " + concreteClass.Postfix; writer.WriteLine("{0} class {1}{2}", concreteClass.Prefix, concreteClass.Name, postfix); openBracket(); foreach (AbstractField field in concreteClass.Fields) { field.Accept(this); } writer.WriteLine(); foreach (AbstractProperty property in concreteClass.Properties) { property.Accept(this); writer.WriteLine(); } foreach (AbstractConstructor constructor in concreteClass.Constructors) { constructor.Accept(this); writer.WriteLine(); } foreach (AbstractMethod method in concreteClass.Methods) { method.Accept(this); writer.WriteLine(); } closeBracket(); // class closeBracket(); // namespace }