println("  private static boolean initialized = false;");
println("  static boolean initialized = false;");
  private void genTypeClasses(Type type)    throws IOException  {    class_name = buildClassName(type);    char sep = File.separatorChar;    String path = basedir + sep + pkg.replace('.', sep) + sep + class_name + ".java";    stream = new PrintStream(new FileOutputStream(path));    info("generating " + path);    println("package " + pkg + ";");    println();    printFoldOpen(0, "imports");    println("import java.util.*;");    println("import aterm.*;");    println();    Iterator iter = imports.iterator();    while (iter.hasNext()) {      println("import " + (String)iter.next() + ";");    }    printFoldClose(0);    println();    println("abstract public class " + class_name);    println("{");    println("  private static boolean initialized = false;");    println();    genPatternAttrs(type);    println();    println("  aterm.ATerm term;");    println();    genFactoryMethod(type);    genToTerm();    genAltFactoryMethods(type);    genConstructor();    genEquals();    genAccessors(type);    println("}");    Iterator alt_iter = type.alternativeIterator();    while (alt_iter.hasNext()) {      println();      Alternative alt = (Alternative)alt_iter.next();      genAltClass(type, alt);    }  }