code: public Object parseType(String input, Type targetType) {
          if (input == null) {
              throw new NullPointerException(makeNullArgumentErrorMsg("input"));
          }
          if (targetType == null) {
              throw new NullPointerException(makeNullArgumentErrorMsg("targetType"));
          }
  
          return parseType2(input, new TargetType(targetType));
  
      }
docs: Parses the given {@code input} string to the given {@code targetType}.
  <p/>
  
  @param input - string value to parse.
  @param targetType - the expected type to convert {@code input} to.
  @return an instance of {@code targetType} corresponding to the given {@code input}.
  @throws NullPointerException if any given argument is {@code null}.
  @throws TypeParserException if anything goes wrong while parsing {@code input} to the given
  {@code targetType}.
  @throws NoSuchRegisteredParserException if there is no registered {@link Parser} for the
  given {@code targetType}.