private Value read(Type type, NodeMap nodemap, Value value) throws Exception {
   Converter converter = lookup(type, value);
   nodemap = (InputNode) nodemap.getNode();
   type = value;
   if (converter != null) {
     type = ((Type) (converter.read(nodemap)));
     if (value != null) {
       value.setValue(type);
     }
     type = new Reference(value, type);
   }
   return type;
 }