 
	import java.io.*;
	import java.util.*;
	import demeter.*;
	import java.lang.*;


import demeter.*;
class Non_Empty_SubClass1 extends SubClass1 implements Cloneable {
  private Ident className;
  public Ident get_className() { return className; }
  public void set_className(Ident new_className)
    { className = new_className; }
  private SubClass2 subclass2;
  public SubClass2 get_subclass2() { return subclass2; }
  public void set_subclass2(SubClass2 new_subclass2)
    { subclass2 = new_subclass2; }
  Non_Empty_SubClass1() { }
  public Non_Empty_SubClass1(Ident className, SubClass2 subclass2) {
    super();
    set_className(className);
    set_subclass2(subclass2);
  }
  public static Non_Empty_SubClass1 parse(java.io.InputStream in) throws ParseError
    { return new Parser(in)._Non_Empty_SubClass1(); }
  public static Non_Empty_SubClass1 parse(String str) throws ParseError
    { return parse(new java.io.StringBufferInputStream(str)); }

                Ident slot_name() { return className; }
          public void all_trv1_bef(AppendVisitor av) {
    super.all_trv1_bef(av);
    av.before(this);
  }
  public void all_trv1_aft(AppendVisitor av) {
    av.after(this);
    super.all_trv1_aft(av);
  }
  public void all_trv1(AppendVisitor av) {
    all_trv1_bef(av);
    subclass2.all_trv1(av);
    super.all_trv1(av);
    all_trv1_aft(av);
  }
}

