GraphObject getObject(BddtHistoryItem hi) {
   BumpRunValue rv = hi.getThisValue();
   GraphObject go = null;
   if (rv != null) {
     String key = rv.getValue();
     go = object_map.get(key);
     if (go == null) {
       go = new GraphObject(rv);
       graph_objects.add(go);
       object_map.put(key, go);
     }
   } else {
     String cnm = hi.getClassName();
     go = object_map.get(cnm);
     if (go == null) {
       go = new GraphObject(cnm);
       graph_objects.add(go);
       object_map.put(cnm, go);
     }
   }
   return go;
 }
 String getName() {
   if (this_value == null) return class_name;
   return class_name + " " + this_value.getValue();
 }
 GraphObject(BumpRunValue rv) {
   this_value = rv;
   class_name = rv.getType();
   initialize();
 }