code: @Override
      public Number parse(String text, ParsePosition parsePosition) {
          return (Number) parse(text, parsePosition, null);
      }
docs: Parses the given string, returning a <code>Number</code> object to represent the
  parsed value. <code>Double</code> objects are returned to represent non-integral
  values which cannot be stored in a <code>BigDecimal</code>. These are
  <code>NaN</code>, infinity, -infinity, and -0.0. If {@link #isParseBigDecimal()} is
  false (the default), all other values are returned as <code>Long</code>,
  <code>BigInteger</code>, or <code>BigDecimal</code> values, in that order of
  preference. If {@link #isParseBigDecimal()} is true, all other values are returned
  as <code>BigDecimal</code> valuse. If the parse fails, null is returned.
  
  @param text the string to be parsed
  @param parsePosition defines the position where parsing is to begin, and upon
  return, the position where parsing left off. If the position has not changed upon
  return, then parsing failed.
  @return a <code>Number</code> object with the parsed value or
  <code>null</code> if the parse failed