out.println(" * "+doc); out.println(" *  @see New"+className); out.println(" *  @see "+className+"Impl"); out.println(" **/"); out.println();
println(out," * "+doc); println(out," *  @see New"+className); println(out," *  @see "+className+"Impl"); println(out," **/"); println(out);
    void writeGetterIfc(PrintWriter out, String context, String className) {      out.println("/** Primary client interface for "+className+".");      String doc = (String)p.get(context,"doc");      if (doc != null)        out.println(" * "+doc);      out.println(" *  @see New"+className);      out.println(" *  @see "+className+"Impl");      out.println(" **/");      out.println();      doPackaging(out, context);      // figure out what we're supposed to extend      {         String dq = (hasDQ(context)?", org.cougaar.domain.planning.ldm.dq.HasDataQuality":"");        if (p.get(context, PGParser.TIMEPHASED) == null) {          out.println("public interface "+className+" extends PropertyGroup"+dq+" {");        } else {          out.println("public interface "+className+" extends TimePhasedPropertyGroup"+                      dq+" {");        }      }      // declare the slots      Vector slotspecs = getAllSlotSpecs(context);      Enumeration se = slotspecs.elements();      while (se.hasMoreElements()) {        String slotspec = ((String)se.nextElement()).trim();        int s = slotspec.indexOf(" ");        String type = slotspec.substring(0,s);        String name = slotspec.substring(s+1);        ActiveSlot as = parseActiveSlot(slotspec);        if (as != null) {          name = as.name;        }        String etype = null;        CollectionType ct = parseCollectionType(type);        if (ct != null) {          type = ct.ctype;          etype = ct.etype;        }        String clname = toClassName(name);                String slotdoc = (String)p.get(context, name+".doc");        String depp = (String)p.get(context,name+".deprecated");        if (depp != null) {          if (slotdoc != null)             slotdoc=slotdoc+"\n   * @deprecated "+depp;          else            slotdoc="@deprecated "+depp;        }        if (slotdoc!=null)           out.println("  /** "+slotdoc+" **/");        if (as!=null) {          out.println("  "+type+" "+as.getterSpec()+";");        } else {          out.println("  "+type+" get"+clname+"();");        }        // extra collection type api        if (etype != null) {          out.println("  /** test to see if an element is a member of the "+name+" Collection **/");          out.println("  boolean in"+clname+"("+etype+" element);");          out.println();                    out.println("  /** array getter for beans **/");          out.println("  "+etype+"[] get"+clname+"AsArray();");          out.println();                    out.println("  /** indexed getter for beans **/");          out.println("  "+etype+" getIndexed"+clname+"(int index);");          out.println();        }        if (as != null) {          out.println(as.handlerClassDef());        }      }            out.println();            // delegation handling      Vector v = getAllDelegateSpecs(context);      if (v != null) {        for (int i =0; i<v.size(); i++) {          Argument dv = (Argument) v.elementAt(i);          Vector dsv = parseDelegateSpecs(p.get(context, dv.name+".delegate"));          for (int j=0; j<dsv.size(); j++) {            DelegateSpec ds = (DelegateSpec) dsv.elementAt(j);            String slotdoc = (String)p.get(context, ds.name+".doc");            if (slotdoc!=null)               out.println("  /** "+slotdoc+" **/");            out.println("  "+ds.type+" "+ds.name+                        "("+unparseArguments(ds.args,true)+");");          }        }      }      out.println("  // introspection and construction");      out.println("  /** the method of factoryClass that creates this type **/");      out.println("  public static final String factoryMethod = \"new"+className+"\";");      out.println("  /** the (mutable) class type returned by factoryMethod **/");      out.println("  public static final String mutableClass = \""+                  findPackage(context)+".New"+className+"\";");      out.println("  /** the factory class **/");      out.println("  public static final Class factoryClass = "+findPackage("global")+".PropertyGroupFactory.class;");      out.println("  /** the (immutable) class type returned by domain factory **/");      out.println("  public static final Class primaryClass = "+                  findPackage(context)+"."+className+".class;");      out.println("  public static final String assetSetter = \"set"+                  className+"\";");      out.println("  public static final String assetGetter = \"get"+                  className+"\";");      out.println("  /** The Null instance for indicating that the PG definitely has no value **/");      out.println("  public static final "+className+" nullPG = new Null_"+className+"();");      writeNullClass(out, context, className);      writeFutureClass(out, context, className);      out.println("}");    }