// ** This class was generated with DemFGen !!

package gen;

import edu.neu.ccs.demeterf.demfgen.lib.*;




public class FinishedProduct{
    public IntermediateProduct ip;
    public Quality quality;

    public FinishedProduct(IntermediateProduct ip, Quality quality){
        this.ip = ip;
        this.quality = quality;
    }
    public boolean equals(Object o){
        if(!(o instanceof FinishedProduct))return false;
        FinishedProduct oo = (FinishedProduct)o;
        return (((Object)ip).equals(oo.ip))&&(((Object)quality).equals(oo.quality));
    }
    public static FinishedProduct parse(String inpt) throws ParseException{
        return new TheParser(new java.io.StringBufferInputStream(inpt)).parse_FinishedProduct();
    }
    public static FinishedProduct parse(java.io.InputStream inpt) throws ParseException{
        return new TheParser(inpt).parse_FinishedProduct();
    }
    public static FinishedProduct parse(java.io.Reader inpt) throws ParseException{
        return new TheParser(inpt).parse_FinishedProduct();
    }

    public static class ip extends edu.neu.ccs.demeterf.control.Fields.any{}
    public static class quality extends edu.neu.ccs.demeterf.control.Fields.any{}

    public String print(){
        return new edu.neu.ccs.demeterf.Traversal(new Print()).<Print._LT>traverse(this).toString();
    }

}