code: private final Object translate(Field field, String name, String text) throws DataValidationException {
          Object value = null;
  
          try {
              // in-place validator first
              Class<?> type = field.getType();
              if (type.isArray()) {
                  type = type.getComponentType();
              }
  
              Validator inplaceValidator = find(field.getDeclaringClass(), name);
              if (inplaceValidator == null) {
                  Trace.g.std.note(Reifier.class, "New Validator for type " + type);
                  inplaceValidator = cache(field.getDeclaringClass(), name, new Validator(name, type, field));
              }
              /*
              Trace.g.std.note(Reifier.class, "New Validator for type " + type);
              Validator inplaceValidator = new Validator(name, type, field);
              */
  
              // validations in extended-type?
              subtype restriction = field.getAnnotation(subtype.class);
              Validator namedValidator = restriction != null ? _named.get(restriction.value()) : null;
  
              if (namedValidator != null) {
                  inplaceValidator.preValidate(text);
                  value = namedValidator.parse(text);
                  inplaceValidator.postValidate(value);
              } else {
                  value = inplaceValidator.parse(text);
              }
          } catch (IllegalArgumentException x) {
              throw new ValidationSpecificationException(field.getDeclaringClass().getSimpleName() + '.' + name, x);
          }
  
          return value;
      }
docs: /*!
  Translates a text string to a value of the appropriate type for the given field.