// ** Batch Generated with DemeterF // ** This file was generated with DemFGen (vers:05/23/2010) package edu.neu.ccs.demeterf.demfgen.traversals; import edu.neu.ccs.demeterf.lib.*; 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; import edu.neu.ccs.demeterf.demfgen.classes.Package; import edu.neu.ccs.demeterf.demfgen.DemFGenMain; import edu.neu.ccs.demeterf.demfgen.classes.*; public class ParamArityTrav { private ClassGen.ToList func; public ParamArityTrav(ClassGen.ToList f){ func = f; } public List<ClassGen.ArityPair> traverse(final TypeDefParams _h){ return traverseTypeDefParams(_h); } public List<ClassGen.ArityPair> traverseTypeDefParams(final TypeDefParams _h){ if(_h instanceof DefParams) return traverseDefParams((DefParams)_h); if(_h instanceof EmptyDefParams) return traverseEmptyDefParams((EmptyDefParams)_h); else throw new RuntimeException("Unknown TypeDefParams Variant"); } public List<ClassGen.ArityPair> traverseNameList(final NameList _h){ if(_h instanceof NameCons) return traverseNameCons((NameCons)_h); if(_h instanceof NameEmpty) return traverseNameEmpty((NameEmpty)_h); else throw new RuntimeException("Unknown NameList Variant"); } public List<ClassGen.ArityPair> traverseNameEmpty(final NameEmpty _h){ return func.combine((EmptyList)_h); } public List<ClassGen.ArityPair> traverseNameCons(final NameCons _h){ ClassGen.ArityPair _first = func.combine(_h.getFirst()); List<ClassGen.ArityPair> _rest = traverseNameList(_h.getRest()); return func.combine((ConsList)_h,(ClassGen.ArityPair)_first, (List<ClassGen.ArityPair>)_rest); } public List<ClassGen.ArityPair> traverseNENameList(final NENameList _h){ ClassGen.ArityPair _first = func.combine(_h.getFirst()); List<ClassGen.ArityPair> _rest = traverseNameList(_h.getRest()); return func.combine((ConsList)_h,(ClassGen.ArityPair)_first, (List<ClassGen.ArityPair>)_rest); } public List<ClassGen.ArityPair> traverseEmptyDefParams(final EmptyDefParams _h){ return func.combine((EmptyList)_h); } public List<ClassGen.ArityPair> traverseDefParams(final DefParams _h){ List<ClassGen.ArityPair> _types = traverseNENameList(_h.getTypes()); return func.combine((Object)_h,(List<ClassGen.ArityPair>)_types); } }