Ejemplo n.º 1
0
        /// <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
 }