code: @Override
      public T parse(String arg) throws ParseException {
          if (isNull(arg)) {
              if (nullable) {
                  return null;
              } else {
                  throw new ParseException(ParseError.INVALID_PARAM, "Parameter doesn't take 'null' values: " + getName());
              }
          }
          return parseNonNull(arg);
      }
docs: Type specialization - subclasses must parse a value of type T.