package edu.neu.ccs.demeterf.demfgen.pcdgp;

import edu.neu.ccs.demeterf.demfgen.classes.*;
import edu.neu.ccs.demeterf.demfgen.StrLTrip.StrPair;
import edu.neu.ccs.demeterf.lib.Cons;
import edu.neu.ccs.demeterf.lib.List;
import edu.neu.ccs.demeterf.lib.ident;
import edu.neu.ccs.demeterf.FC;
import edu.neu.ccs.demeterf.demfgen.Diff;

/**  */
public class Creator extends Typical{
    public Creator(List<String> sFs){ super(sFs); }
    public FC functionObj(List<String> superFs){ return new Creator(superFs); }
    
    public String combine(ClassDef td, DoGen g, ident n, TypeDefParams ps, Cons<String> sts, List<StrPair> fs)
    { return ""; }
    public String combine(ClassDef td, DoGen g, ident n, TypeDefParams ps, List<String> sts, List<StrPair> fs){
        return ("    /** Simple static creator for "+n+" */\n"+
                "    public static "+ps+(ps.isEmpty()?"":" ")+n+ps+
                " "+Diff.capName("create(")+fieldArgs(fs)+"){\n"+
                "        return new "+n+ps+"("+fieldNames(fs)+");\n"+
                "    }\n");
    }
}