protected void updateRequestWithCollapse(Select select, SearchRequestBuilder request) throws SqlParseException { JsonFactory jsonFactory = new JsonFactory(); for (Hint hint : select.getHints()) { if (hint.getType() == HintType.COLLAPSE && hint.getParams() != null && 0 < hint.getParams().length) { try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, jsonFactory.createParser(hint.getParams()[0].toString()))) { request.setCollapse(CollapseBuilder.fromXContent(parser)); } catch (IOException e) { throw new SqlParseException("could not parse collapse hint: " + e.getMessage()); } } } }
} else { List<BucketOrder> orderElements = new ArrayList<>(); try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, new JsonFactory().createParser(value))) { XContentParser.Token currentToken = parser.nextToken(); if (currentToken == XContentParser.Token.START_OBJECT) { orderElements.add(InternalOrder.Parser.parseOrderParam(parser)); } else if (currentToken == XContentParser.Token.START_ARRAY) { for (currentToken = parser.nextToken(); currentToken != XContentParser.Token.END_ARRAY; currentToken = parser.nextToken()) { if (currentToken == XContentParser.Token.START_OBJECT) { orderElements.add(InternalOrder.Parser.parseOrderParam(parser)); } else { throw new ParsingException(parser.getTokenLocation(), "Invalid token in order array");
@Override public String text() throws IOException { if (currentToken().isValue()) { return parser.getText(); } throw new IllegalStateException("Can't get text on a " + currentToken() + " at " + getTokenLocation()); }
@Override public Token nextToken() throws IOException { return convertToken(parser.nextToken()); }
@Override public NumberType numberType() throws IOException { return convertNumberType(parser.getNumberType()); }
@Override public Object objectText() throws IOException { JsonToken currentToken = parser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return text(); } else if (currentToken == JsonToken.VALUE_NUMBER_INT || currentToken == JsonToken.VALUE_NUMBER_FLOAT) { return parser.getNumberValue(); } else if (currentToken == JsonToken.VALUE_TRUE) { return Boolean.TRUE; } else if (currentToken == JsonToken.VALUE_FALSE) { return Boolean.FALSE; } else if (currentToken == JsonToken.VALUE_NULL) { return null; } else { return text(); } }
@Override public Object objectBytes() throws IOException { JsonToken currentToken = parser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return utf8Bytes(); } else if (currentToken == JsonToken.VALUE_NUMBER_INT || currentToken == JsonToken.VALUE_NUMBER_FLOAT) { return parser.getNumberValue(); } else if (currentToken == JsonToken.VALUE_TRUE) { return Boolean.TRUE; } else if (currentToken == JsonToken.VALUE_FALSE) { return Boolean.FALSE; } else if (currentToken == JsonToken.VALUE_NULL) { return null; } else { //TODO should this really do UTF-8 conversion? return utf8Bytes(); } }
@Override public String text() throws IOException { if (currentToken().isValue()) { return parser.getText(); } throw new IllegalStateException("Can't get text on a " + currentToken() + " at " + getTokenLocation()); }
@Override public Token currentToken() { return convertToken(parser.getCurrentToken()); }
@Override public NumberType numberType() throws IOException { return convertNumberType(parser.getNumberType()); }
@Override public Object objectText() throws IOException { JsonToken currentToken = parser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return text(); } else if (currentToken == JsonToken.VALUE_NUMBER_INT || currentToken == JsonToken.VALUE_NUMBER_FLOAT) { return parser.getNumberValue(); } else if (currentToken == JsonToken.VALUE_TRUE) { return Boolean.TRUE; } else if (currentToken == JsonToken.VALUE_FALSE) { return Boolean.FALSE; } else if (currentToken == JsonToken.VALUE_NULL) { return null; } else { return text(); } }
@Override public Object objectBytes() throws IOException { JsonToken currentToken = parser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return utf8Bytes(); } else if (currentToken == JsonToken.VALUE_NUMBER_INT || currentToken == JsonToken.VALUE_NUMBER_FLOAT) { return parser.getNumberValue(); } else if (currentToken == JsonToken.VALUE_TRUE) { return Boolean.TRUE; } else if (currentToken == JsonToken.VALUE_FALSE) { return Boolean.FALSE; } else if (currentToken == JsonToken.VALUE_NULL) { return null; } else { //TODO should this really do UTF-8 conversion? return utf8Bytes(); } }
case "extended_bounds": ExtendedBounds extendedBounds = null; try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, new JsonFactory().createParser(value))) { extendedBounds = ExtendedBounds.PARSER.parse(parser, null); } catch (IOException ex) {
@Override public String text() throws IOException { if (currentToken().isValue()) { return parser.getText(); } throw new IllegalStateException("Can't get text on a " + currentToken() + " at " + getTokenLocation()); }
try (JsonXContentParser parser = new JsonXContentParser(new NamedXContentRegistry(new SearchModule(Settings.EMPTY, true, Collections.emptyList()).getNamedXContents()), LoggingDeprecationHandler.INSTANCE, new JsonFactory().createParser(paramer.clauses))) { while (parser.nextToken() != XContentParser.Token.END_ARRAY) { QueryBuilder query = SpanNearQueryBuilder.parseInnerQueryBuilder(parser); if (!(query instanceof SpanQueryBuilder)) { throw new ParsingException(parser.getTokenLocation(), "spanNear [clauses] must be of type span query");
@Override public Token nextToken() throws IOException { return convertToken(parser.nextToken()); }
@Override public NumberType numberType() throws IOException { return convertNumberType(parser.getNumberType()); }
@Override public Object objectText() throws IOException { JsonToken currentToken = parser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return text(); } else if (currentToken == JsonToken.VALUE_NUMBER_INT || currentToken == JsonToken.VALUE_NUMBER_FLOAT) { return parser.getNumberValue(); } else if (currentToken == JsonToken.VALUE_TRUE) { return Boolean.TRUE; } else if (currentToken == JsonToken.VALUE_FALSE) { return Boolean.FALSE; } else if (currentToken == JsonToken.VALUE_NULL) { return null; } else { return text(); } }
InnerHitBuilder ihb = null; if (condition.getInnerHits() != null) { try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, new JsonFactory().createParser(condition.getInnerHits()))) { ihb = InnerHitBuilder.fromXContent(parser); } catch (IOException e) {
@Override public String text() throws IOException { if (currentToken().isValue()) { return parser.getText(); } throw new IllegalStateException("Can't get text on a " + currentToken() + " at " + getTokenLocation()); }