public boolean write(Type type, Object obj, NodeMap nodemap, Map map) throws Exception {
   boolean flag1 = strategy.write(type, obj, nodemap, map);
   boolean flag = flag1;
   if (!flag1) {
     flag = write(type, obj, nodemap);
   }
   return flag;
 }
 public Value read(Type type, NodeMap nodemap, Map map) throws Exception {
   map = strategy.read(type, nodemap, map);
   if (isReference(map)) {
     return map;
   } else {
     return read(type, nodemap, ((Value) (map)));
   }
 }