private double readDoubleValue()

in src/main/java/org/apache/uima/json/jsoncas2/ser/FeatureStructureDeserializer.java [428:454]


  private double readDoubleValue(JsonParser aParser) throws IOException {
    if (aParser.currentToken() == JsonToken.VALUE_NUMBER_FLOAT) {
      return aParser.getDoubleValue();
    }

    if (aParser.currentToken() == JsonToken.VALUE_STRING) {
      switch (aParser.getValueAsString()) {
        case NUMBER_FLOAT_NAN:
          return Double.NaN;
        case NUMBER_FLOAT_POSITIVE_INFINITY:
        case NUMBER_FLOAT_POSITIVE_INFINITY_ABBR:
          return Double.POSITIVE_INFINITY;
        case NUMBER_FLOAT_NEGATIVE_INFINITY:
        case NUMBER_FLOAT_NEGATIVE_INFINITY_ABBR:
          return Double.NEGATIVE_INFINITY;
        default:
          throw new JsonParseException(aParser,
                  "Expected special floating point value (NaN, -Inf, -Infinity, Inf, Infinity), "
                          + "but got [" + aParser.getValueAsString() + "]");
      }
    }

    throw new JsonParseException(aParser,
            "Expected floating point value as VALUE_NUMBER_FLOAT or VALUE_STRING for special "
                    + "values (Nan, -Infinity, +Infinity), but got [" + aParser.currentToken()
                    + "]");
  }