// ** This class was generated with DemFGen (vers:09/12/2009)

package gen;

import edu.neu.ccs.demeterf.control.Fields;
import edu.neu.ccs.demeterf.lib.ident;
import edu.neu.ccs.demeterf.lib.verbatim;
import java.io.FileInputStream;
import edu.neu.ccs.demeterf.lib.*;



/** Computes a nested String representation with field names and values */
public class Display extends edu.neu.ccs.demeterf.ID{
   /** Static stub method for calling display */
   public static String DisplayM(Object o){
      return new edu.neu.ccs.demeterf.Traversal(new Display(),edu.neu.ccs.demeterf.Control.builtins()).<String>traverse(o,"   ");
   }

   public String combine(byte _h_){ return ": byte "+""+_h_; }
   public String combine(short _h_){ return ": short "+""+_h_; }
   public String combine(int _h_){ return ": int "+""+_h_; }
   public String combine(long _h_){ return ": long "+""+_h_; }
   public String combine(float _h_){ return ": float "+""+_h_; }
   public String combine(double _h_){ return ": double "+""+_h_; }
   public String combine(char _h_){ return ": char "+"\'"+escape(""+_h_)+"\'"; }
   public String combine(boolean _h_){ return ": boolean "+""+_h_; }
   public String combine(String _h_){ return ": String "+"\""+escape(""+_h_)+"\""; }
   public String combine(ident _h_){ return ": ident "+""+_h_; }
   public String combine(verbatim _h_){ return ": verbatim "+""+_h_; }


   public String update(Object o, Fields.any f, String d){ return d+"   "; }
   public static String escape(String s){
      char str[] = s.toCharArray();
      StringBuffer ret = new StringBuffer("");
      for(char c:str)ret.append(escape(c));
      return ret.toString();
   }
   public static String escape(char c){
      switch(c){
      case '\n':return "\\n";  case '\t':return "\\t";
      case '\b':return "\\b";  case '\r':return "\\r";
      case '\f':return "\\f";  case '\\':return "\\\\";
      case '\'':return "\\'"; case '\"':return "\\\"";
      default: return ""+c;
      }
   }


   public String combine(Cons _h_, String first, String rest, String _d_){
      return ": Cons ("+"\n"+_d_+"<first> "+first+"\n"+_d_+"<rest> "+rest+" )";
   }
   public String combine(Empty _h_, String _d_){
      return ": Empty ("+" )";
   }
   public String combine(Some _h_, String just, String _d_){
      return ": Some ("+"\n"+_d_+"<just> "+just+" )";
   }
   public String combine(None _h_, String _d_){
      return ": None ("+" )";
   }
   public String combine(Outcome _h_, String string, String _d_){
      return ": Outcome ("+"\n"+_d_+"<string> "+string+" )";
   }
   public String combine(Value _h_, String _d_){
      return ": Value ("+" )";
   }
   public String combine(Predicate _h_, String pred, String _d_){
      return ": Predicate ("+"\n"+_d_+"<pred> "+pred+" )";
   }
   public String combine(Belief _h_, String predicate, String fraction, String _d_){
      return ": Belief ("+"\n"+_d_+"<predicate> "+predicate+"\n"+_d_+"<fraction> "+fraction+" )";
   }
   public String combine(Challenge _h_, String name, String price, String belief, String _d_){
      return ": Challenge ("+"\n"+_d_+"<name> "+name+"\n"+_d_+"<price> "+price+"\n"+_d_+"<belief> "+belief+" )";
   }
   public String combine(QualifiedProblem _h_, String predicate, String instance, String _d_){
      return ": QualifiedProblem ("+"\n"+_d_+"<predicate> "+predicate+"\n"+_d_+"<instance> "+instance+" )";
   }
   public String combine(Problem _h_, String string, String _d_){
      return ": Problem ("+"\n"+_d_+"<string> "+string+" )";
   }
   public String combine(SolvedProblem _h_, String rm, String ip, String quality, String _d_){
      return ": SolvedProblem ("+"\n"+_d_+"<rm> "+rm+"\n"+_d_+"<ip> "+ip+"\n"+_d_+"<quality> "+quality+" )";
   }
   public String combine(Price _h_, String val, String _d_){
      return ": Price ("+"\n"+_d_+"<val> "+val+" )";
   }
   public String combine(Quality _h_, String val, String _d_){
      return ": Quality ("+"\n"+_d_+"<val> "+val+" )";
   }
   public String combine(History _h_, String rounds, String _d_){
      return ": History ("+"\n"+_d_+"<rounds> "+rounds+" )";
   }
   public String combine(Round _h_, String ptransactions, String _d_){
      return ": Round ("+"\n"+_d_+"<ptransactions> "+ptransactions+" )";
   }
   public String combine(PlayerTransaction _h_, String playerName, String transactions, String _d_){
      return ": PlayerTransaction ("+"\n"+_d_+"<playerName> "+playerName+"\n"+_d_+"<transactions> "+transactions+" )";
   }
   public String combine(Transaction _h_, String ttype, String challenge, String _d_){
      return ": Transaction ("+"\n"+_d_+"<ttype> "+ttype+"\n"+_d_+"<challenge> "+challenge+" )";
   }
   public String combine(Buy _h_, String _d_){
      return ": Buy ("+" )";
   }
   public String combine(Create _h_, String _d_){
      return ": Create ("+" )";
   }
   public String combine(Reoffer _h_, String _d_){
      return ": Reoffer ("+" )";
   }
   public String combine(Deliver _h_, String _d_){
      return ": Deliver ("+" )";
   }
   public String combine(Finish _h_, String _d_){
      return ": Finish ("+" )";
   }
   public String combine(SCG _h_, String players, String account, String store, String config, String _d_){
      return ": SCG ("+"\n"+_d_+"<players> "+players+"\n"+_d_+"<account> "+account+"\n"+_d_+"<store> "+store+"\n"+_d_+"<config> "+config+" )";
   }
   public String combine(Player _h_, String id, String name, String _d_){
      return ": Player ("+"\n"+_d_+"<id> "+id+"\n"+_d_+"<name> "+name+" )";
   }
   public String combine(PlayerStore _h_, String forSale, String bought, String _d_){
      return ": PlayerStore ("+"\n"+_d_+"<forSale> "+forSale+"\n"+_d_+"<bought> "+bought+" )";
   }
   public String combine(BoughtDeriv _h_, String d, String seller, String r, String f, String _d_){
      return ": BoughtDeriv ("+"\n"+_d_+"<d> "+d+"\n"+_d_+"<seller> "+seller+"\n"+_d_+"<r> "+r+"\n"+_d_+"<f> "+f+" )";
   }
   public String combine(Config _h_, String init, String maxTurns, String timeslot, String mindec, String _d_){
      return ": Config ("+"\n"+_d_+"<init> "+init+"\n"+_d_+"<maxTurns> "+maxTurns+"\n"+_d_+"<timeslot> "+timeslot+"\n"+_d_+"<mindec> "+mindec+" )";
   }
   public String combine(Pair _h_, String a, String b, String _d_){
      return ": Pair ("+"\n"+_d_+"<a> "+a+"\n"+_d_+"<b> "+b+" )";
   }
   public String combine(PlayerID _h_, String id, String _d_){
      return ": PlayerID ("+"\n"+_d_+"<id> "+id+" )";
   }

}