// ** This file was generated with DemFGen (vers:05/23/2010) package edu.neu.ccs.demeterf.demfgen.classes; import edu.neu.ccs.demeterf.lib.*; import edu.neu.ccs.demeterf.demfgen.*; import edu.neu.ccs.demeterf.demfgen.dgp.DGPFunc; import edu.neu.ccs.demeterf.demfgen.traversals.Travs; import edu.neu.ccs.demeterf.demfgen.pcdgp.PCDGPFunc; import edu.neu.ccs.demeterf.dispatch.*; import edu.neu.ccs.demeterf.*; import edu.neu.ccs.demeterf.demfgen.ClassHier.InhrtPair; import edu.neu.ccs.demeterf.demfgen.DemFGenMain; import java.io.*; import java.io.FileInputStream; import edu.neu.ccs.demeterf.util.Util; import edu.neu.ccs.demeterf.util.CLI; /** Representation of ClassDef */ public class ClassDef extends TypeDef{ protected final DoGen gen; protected final ident name; protected final TypeDefParams tparams; protected final PESubtypeList subtypes; protected final FieldList fields; protected final Impl ext; /** Construct a(n) ClassDef Instance */ public ClassDef(DoGen gen, ident name, TypeDefParams tparams, PESubtypeList subtypes, FieldList fields, Impl ext){ this.gen = gen; this.name = name; this.tparams = tparams; this.subtypes = subtypes; this.fields = fields; this.ext = ext; } /** Is the given object Equal to this ClassDef? */ public boolean equals(Object o){ if(!(o instanceof ClassDef))return false; if(o == this)return true; ClassDef oo = (ClassDef)o; return (((Object)gen).equals(oo.gen))&&(((Object)name).equals(oo.name))&&(((Object)tparams).equals(oo.tparams))&&(((Object)subtypes).equals(oo.subtypes))&&(((Object)fields).equals(oo.fields))&&(((Object)ext).equals(oo.ext)); } /** Parse an instance of ClassDef from the given String */ public static ClassDef parse(String inpt) throws edu.neu.ccs.demeterf.demfgen.classes.ParseException{ return new edu.neu.ccs.demeterf.demfgen.classes.TheParser(new java.io.StringReader(inpt)).parse_ClassDef(); } /** Parse an instance of ClassDef from the given Stream */ public static ClassDef parse(java.io.InputStream inpt) throws edu.neu.ccs.demeterf.demfgen.classes.ParseException{ return new edu.neu.ccs.demeterf.demfgen.classes.TheParser(inpt).parse_ClassDef(); } /** Parse an instance of ClassDef from the given Reader */ public static ClassDef parse(java.io.Reader inpt) throws edu.neu.ccs.demeterf.demfgen.classes.ParseException{ return new edu.neu.ccs.demeterf.demfgen.classes.TheParser(inpt).parse_ClassDef(); } /** Field Class for ClassDef.gen */ public static class gen extends edu.neu.ccs.demeterf.Fields.any{} /** Field Class for ClassDef.name */ public static class name extends edu.neu.ccs.demeterf.Fields.any{} /** Field Class for ClassDef.tparams */ public static class tparams extends edu.neu.ccs.demeterf.Fields.any{} /** Field Class for ClassDef.subtypes */ public static class subtypes extends edu.neu.ccs.demeterf.Fields.any{} /** Field Class for ClassDef.fields */ public static class fields extends edu.neu.ccs.demeterf.Fields.any{} /** Field Class for ClassDef.ext */ public static class ext extends edu.neu.ccs.demeterf.Fields.any{} public boolean isProd(){ return subtypes.isEmpty(); } public boolean isAbstr(){ return !subtypes.isEmpty(); } public String name(){ return ""+name; } public List<Field> fieldList(){ return fields.justFields(); } public TypeDefParams typeParams(){ return tparams; } public boolean doParse(){ return gen.doParse(); } public boolean doGen(){ return gen.doGen(); } public TypeDef addFieldsAndSyntax(List<FieldOrSyntax> nfs){ return new ClassDef(gen, name, tparams, subtypes, fields.append(nfs), ext); } /** DGP method from Class Print */ public String print(){ return edu.neu.ccs.demeterf.demfgen.classes.Print.PrintM(this); } /** DGP method from Class ToStr */ public String toStr(){ return edu.neu.ccs.demeterf.demfgen.classes.ToStr.ToStrM(this); } /** DGP method from Class ToXML */ public String toXML(){ return edu.neu.ccs.demeterf.demfgen.classes.ToXML.ToXMLM(this); } /** Updater for field ClassDef.gen */ public ClassDef updateGen(DoGen _gen){ return new ClassDef(_gen, name, tparams, subtypes, fields, ext); } /** Updater for field ClassDef.name */ public ClassDef updateName(ident _name){ return new ClassDef(gen, _name, tparams, subtypes, fields, ext); } /** Updater for field ClassDef.tparams */ public ClassDef updateTparams(TypeDefParams _tparams){ return new ClassDef(gen, name, _tparams, subtypes, fields, ext); } /** Updater for field ClassDef.subtypes */ public ClassDef updateSubtypes(PESubtypeList _subtypes){ return new ClassDef(gen, name, tparams, _subtypes, fields, ext); } /** Updater for field ClassDef.fields */ public ClassDef updateFields(FieldList _fields){ return new ClassDef(gen, name, tparams, subtypes, _fields, ext); } /** Updater for field ClassDef.ext */ public ClassDef updateExt(Impl _ext){ return new ClassDef(gen, name, tparams, subtypes, fields, _ext); } /** Getter for field ClassDef.gen */ public DoGen getGen(){ return gen; } /** Getter for field ClassDef.name */ public ident getName(){ return name; } /** Getter for field ClassDef.tparams */ public TypeDefParams getTparams(){ return tparams; } /** Getter for field ClassDef.subtypes */ public PESubtypeList getSubtypes(){ return subtypes; } /** Getter for field ClassDef.fields */ public FieldList getFields(){ return fields; } /** Getter for field ClassDef.ext */ public Impl getExt(){ return ext; } }