in backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/json/jackson/JsonValueParser.java [67:107]
public JsonValue parseValue(JsonParser parser) throws IOException {
switch (parser.currentToken()) {
case START_OBJECT:
return parseObject(parser);
case START_ARRAY:
return parseArray(parser);
case VALUE_TRUE:
return JsonValue.TRUE;
case VALUE_FALSE:
return JsonValue.FALSE;
case VALUE_NULL:
return JsonValue.NULL;
case VALUE_STRING:
return provider.createValue(parser.getText());
case VALUE_NUMBER_FLOAT:
case VALUE_NUMBER_INT:
switch (parser.getNumberType()) {
case INT:
return provider.createValue(parser.getIntValue());
case LONG:
return provider.createValue(parser.getLongValue());
case FLOAT:
case DOUBLE:
return provider.createValue(parser.getDoubleValue());
case BIG_DECIMAL:
return provider.createValue(parser.getDecimalValue());
case BIG_INTEGER:
return provider.createValue(parser.getBigIntegerValue());
}
default:
throw new JsonParsingException("Unexpected token '" + parser.currentToken() + "'", new JacksonJsonpLocation(parser));
}
}