diff options
author | Christoph Büscher <christoph@elastic.co> | 2017-07-03 17:30:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-03 17:30:40 +0200 |
commit | f576c987ce2615f77a8de75741b0f5448229805f (patch) | |
tree | 11f9e39ce1ad847b65c8c423d99d7c46d8fd7cca /core/src/main/java/org/elasticsearch/search/aggregations/bucket | |
parent | 0e2cfc66bb8ad091d3cf5ade2833f9688af1240c (diff) |
Remove QueryParseContext (#25486)
QueryParseContext is currently only used as a wrapper for an XContentParser, so
this change removes it entirely and changes the appropriate APIs that use it so
far to only accept a parser instead.
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/bucket')
27 files changed, 128 insertions, 156 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java index eeb60d393e..1a9e590457 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java @@ -24,12 +24,11 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilder; -import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.bucket.adjacency.AdjacencyMatrixAggregator.KeyedFilter; @@ -56,26 +55,23 @@ public class AdjacencyMatrixAggregationBuilder extends AbstractAggregationBuilde private List<KeyedFilter> filters; private String separator = DEFAULT_SEPARATOR; - public static Aggregator.Parser getParser() { - ObjectParser<AdjacencyMatrixAggregationBuilder, QueryParseContext> parser = new ObjectParser<>( - AdjacencyMatrixAggregationBuilder.NAME); - parser.declareString(AdjacencyMatrixAggregationBuilder::separator, SEPARATOR_FIELD); - parser.declareNamedObjects(AdjacencyMatrixAggregationBuilder::setFiltersAsList, KeyedFilter.PARSER, FILTERS_FIELD); - return new Aggregator.Parser() { - @Override - public AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - AdjacencyMatrixAggregationBuilder result = parser.parse(context.parser(), - new AdjacencyMatrixAggregationBuilder(aggregationName), context); - result.checkConsistency(); - return result; - } - }; + private static final ObjectParser<AdjacencyMatrixAggregationBuilder, Void> PARSER = new ObjectParser<>( + AdjacencyMatrixAggregationBuilder.NAME); + static { + PARSER.declareString(AdjacencyMatrixAggregationBuilder::separator, SEPARATOR_FIELD); + PARSER.declareNamedObjects(AdjacencyMatrixAggregationBuilder::setFiltersAsList, KeyedFilter.PARSER, FILTERS_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + AdjacencyMatrixAggregationBuilder result = PARSER.parse(parser, new AdjacencyMatrixAggregationBuilder(aggregationName), null); + result.checkConsistency(); + return result; } protected void checkConsistency() { if ((filters == null) || (filters.size() == 0)) { throw new IllegalStateException("[" + name + "] is missing : " + FILTERS_FIELD.getPreferredName() + " parameter"); - } + } } @@ -96,17 +92,17 @@ public class AdjacencyMatrixAggregationBuilder extends AbstractAggregationBuilde // the order of the filters in the request Collections.sort(this.filters, Comparator.comparing(KeyedFilter::key)); } - - + + /** * @param name * the name of this aggregation */ protected AdjacencyMatrixAggregationBuilder(String name) { super(name); - } - - + } + + /** * @param name * the name of this aggregation @@ -171,8 +167,8 @@ public class AdjacencyMatrixAggregationBuilder extends AbstractAggregationBuilde */ public String separator() { return separator; - } - + } + /** * Get the filters. This will be an unmodifiable map */ @@ -182,8 +178,8 @@ public class AdjacencyMatrixAggregationBuilder extends AbstractAggregationBuilde result.put(keyedFilter.key(), keyedFilter.filter()); } return result; - } - + } + @Override protected AggregatorFactory<?> doBuild(SearchContext context, AggregatorFactory<?> parent, Builder subFactoriesBuilder) diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java index 8e6fffbd47..35d4fe8617 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java @@ -32,7 +32,6 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.InternalAggregation; @@ -68,11 +67,10 @@ public class AdjacencyMatrixAggregator extends BucketsAggregator { private final String key; private final QueryBuilder filter; - public static final NamedObjectParser<KeyedFilter, QueryParseContext> PARSER = - (XContentParser p, QueryParseContext c, String name) -> + public static final NamedObjectParser<KeyedFilter, Void> PARSER = + (XContentParser p, Void c, String name) -> new KeyedFilter(name, parseInnerQueryBuilder(p)); - public KeyedFilter(String key, QueryBuilder filter) { if (key == null) { throw new IllegalArgumentException("[key] must not be null"); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java index d3f5696bfc..2306f4c9f4 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java @@ -22,8 +22,8 @@ package org.elasticsearch.search.aggregations.bucket.filter; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -84,8 +84,8 @@ public class FilterAggregationBuilder extends AbstractAggregationBuilder<FilterA return builder; } - public static FilterAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - QueryBuilder filter = parseInnerQueryBuilder(context.parser()); + public static FilterAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + QueryBuilder filter = parseInnerQueryBuilder(parser); return new FilterAggregationBuilder(aggregationName, filter); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java index 7c1e9756a0..ad4428e11a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -202,9 +201,8 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder<Filter return builder; } - public static FiltersAggregationBuilder parse(String aggregationName, QueryParseContext context) + public static FiltersAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { - XContentParser parser = context.parser(); List<FiltersAggregator.KeyedFilter> keyedFilters = null; List<QueryBuilder> nonKeyedFilters = null; @@ -238,7 +236,7 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder<Filter if (token == XContentParser.Token.FIELD_NAME) { key = parser.currentName(); } else { - QueryBuilder filter = parseInnerQueryBuilder(context.parser()); + QueryBuilder filter = parseInnerQueryBuilder(parser); keyedFilters.add(new FiltersAggregator.KeyedFilter(key, filter)); } } @@ -250,7 +248,7 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder<Filter if (FILTERS_FIELD.match(currentFieldName)) { nonKeyedFilters = new ArrayList<>(); while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - QueryBuilder filter = parseInnerQueryBuilder(context.parser()); + QueryBuilder filter = parseInnerQueryBuilder(parser); nonKeyedFilters.add(filter); } } else { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java index 1c60247446..4722c86c98 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java @@ -28,11 +28,11 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.fielddata.AbstractSortingNumericDocValues; import org.elasticsearch.index.fielddata.MultiGeoPointValues; import org.elasticsearch.index.fielddata.SortedBinaryDocValues; import org.elasticsearch.index.fielddata.SortedNumericDoubleValues; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.bucket.BucketUtils; @@ -53,7 +53,7 @@ public class GeoGridAggregationBuilder extends ValuesSourceAggregationBuilder<Va public static final int DEFAULT_PRECISION = 5; public static final int DEFAULT_MAX_NUM_CELLS = 10000; - private static final ObjectParser<GeoGridAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<GeoGridAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(GeoGridAggregationBuilder.NAME); ValuesSourceParserHelper.declareGeoFields(PARSER, false, false); @@ -62,8 +62,8 @@ public class GeoGridAggregationBuilder extends ValuesSourceAggregationBuilder<Va PARSER.declareInt(GeoGridAggregationBuilder::shardSize, GeoHashGridParams.FIELD_SHARD_SIZE); } - public static GeoGridAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new GeoGridAggregationBuilder(aggregationName), context); + public static GeoGridAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new GeoGridAggregationBuilder(aggregationName), null); } private int precision = DEFAULT_PRECISION; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java index 2363ed498a..07bb2bac7c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java @@ -22,7 +22,7 @@ package org.elasticsearch.search.aggregations.bucket.global; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -62,8 +62,8 @@ public class GlobalAggregationBuilder extends AbstractAggregationBuilder<GlobalA return builder; } - public static GlobalAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - context.parser().nextToken(); + public static GlobalAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + parser.nextToken(); return new GlobalAggregationBuilder(aggregationName); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java index 4bbe2c5abe..d50eab9d8c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.BucketOrder; @@ -81,7 +80,7 @@ public class DateHistogramAggregationBuilder DATE_FIELD_UNITS = unmodifiableMap(dateFieldUnits); } - private static final ObjectParser<DateHistogramAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<DateHistogramAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(DateHistogramAggregationBuilder.NAME); ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, true); @@ -115,12 +114,12 @@ public class DateHistogramAggregationBuilder PARSER.declareField(DateHistogramAggregationBuilder::extendedBounds, parser -> ExtendedBounds.PARSER.apply(parser, null), ExtendedBounds.EXTENDED_BOUNDS_FIELD, ObjectParser.ValueType.OBJECT); - PARSER.declareObjectArray(DateHistogramAggregationBuilder::order, InternalOrder.Parser::parseOrderParam, + PARSER.declareObjectArray(DateHistogramAggregationBuilder::order, (p, c) -> InternalOrder.Parser.parseOrderParam(p), Histogram.ORDER_FIELD); } - public static DateHistogramAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new DateHistogramAggregationBuilder(aggregationName), context); + public static DateHistogramAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new DateHistogramAggregationBuilder(aggregationName), null); } private long interval; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java index 9362c0b8f7..2f36291f38 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java @@ -24,7 +24,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.BucketOrder; @@ -59,7 +59,7 @@ public class HistogramAggregationBuilder EXTENDED_BOUNDS_PARSER.declareDouble((bounds, d) -> bounds[1] = d, new ParseField("max")); } - private static final ObjectParser<HistogramAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<HistogramAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(HistogramAggregationBuilder.NAME); ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); @@ -76,12 +76,12 @@ public class HistogramAggregationBuilder histogram.extendedBounds(extendedBounds[0], extendedBounds[1]); }, parser -> EXTENDED_BOUNDS_PARSER.apply(parser, null), ExtendedBounds.EXTENDED_BOUNDS_FIELD, ObjectParser.ValueType.OBJECT); - PARSER.declareObjectArray(HistogramAggregationBuilder::order, InternalOrder.Parser::parseOrderParam, + PARSER.declareObjectArray(HistogramAggregationBuilder::order, (p, c) -> InternalOrder.Parser.parseOrderParam(p), Histogram.ORDER_FIELD); } - public static HistogramAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new HistogramAggregationBuilder(aggregationName), context); + public static HistogramAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new HistogramAggregationBuilder(aggregationName), null); } private double interval; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java index 9361acc8fc..76efba76e7 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java @@ -23,7 +23,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.support.ValueType; @@ -40,14 +40,14 @@ import java.io.IOException; public class MissingAggregationBuilder extends ValuesSourceAggregationBuilder<ValuesSource, MissingAggregationBuilder> { public static final String NAME = "missing"; - private static final ObjectParser<MissingAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<MissingAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(MissingAggregationBuilder.NAME); ValuesSourceParserHelper.declareAnyFields(PARSER, true, true); } - public static MissingAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new MissingAggregationBuilder(aggregationName, null), context); + public static MissingAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new MissingAggregationBuilder(aggregationName, null), null); } public MissingAggregationBuilder(String name, ValueType targetValueType) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java index f8f2602a47..cc2fb87a5d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.ObjectMapper; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; @@ -104,12 +103,11 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder<NestedA return builder; } - public static NestedAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + public static NestedAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { String path = null; XContentParser.Token token; String currentFieldName = null; - XContentParser parser = context.parser(); while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java index 30bd72c6c6..4350f16550 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.ObjectMapper; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.support.NestedScope; import org.elasticsearch.search.SearchParseException; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; @@ -128,12 +127,11 @@ public class ReverseNestedAggregationBuilder extends AbstractAggregationBuilder< return builder; } - public static ReverseNestedAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + public static ReverseNestedAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { String path = null; XContentParser.Token token; String currentFieldName = null; - XContentParser parser = context.parser(); while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java index 105dbbc545..aaa2b857ec 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java @@ -22,7 +22,6 @@ package org.elasticsearch.search.aggregations.bucket.range; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -37,7 +36,7 @@ import java.io.IOException; public class RangeAggregationBuilder extends AbstractRangeBuilder<RangeAggregationBuilder, Range> { public static final String NAME = "range"; - private static final ObjectParser<RangeAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<RangeAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(RangeAggregationBuilder.NAME); ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); @@ -47,14 +46,14 @@ public class RangeAggregationBuilder extends AbstractRangeBuilder<RangeAggregati for (Range range : ranges) { agg.addRange(range); } - }, RangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + }, (p, c) -> RangeAggregationBuilder.parseRange(p), RangeAggregator.RANGES_FIELD); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new RangeAggregationBuilder(aggregationName), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new RangeAggregationBuilder(aggregationName), null); } - private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + private static Range parseRange(XContentParser parser) throws IOException { return Range.fromXContent(parser); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java index 2c686fbb97..10612fd5e2 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java @@ -22,7 +22,6 @@ package org.elasticsearch.search.aggregations.bucket.range.date; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -40,7 +39,7 @@ import java.io.IOException; public class DateRangeAggregationBuilder extends AbstractRangeBuilder<DateRangeAggregationBuilder, RangeAggregator.Range> { public static final String NAME = "date_range"; - private static final ObjectParser<DateRangeAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<DateRangeAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(DateRangeAggregationBuilder.NAME); ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, true); @@ -50,14 +49,14 @@ public class DateRangeAggregationBuilder extends AbstractRangeBuilder<DateRangeA for (Range range : ranges) { agg.addRange(range); } - }, DateRangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + }, (p, c) -> DateRangeAggregationBuilder.parseRange(p), RangeAggregator.RANGES_FIELD); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new DateRangeAggregationBuilder(aggregationName), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new DateRangeAggregationBuilder(aggregationName), null); } - private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + private static Range parseRange(XContentParser parser) throws IOException { return Range.fromXContent(parser); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java index 1484fae8d4..99faf543c2 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java @@ -30,7 +30,6 @@ import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -54,7 +53,7 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde static final ParseField UNIT_FIELD = new ParseField("unit"); static final ParseField DISTANCE_TYPE_FIELD = new ParseField("distance_type"); - private static final ObjectParser<GeoDistanceAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<GeoDistanceAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(GeoDistanceAggregationBuilder.NAME); ValuesSourceParserHelper.declareGeoFields(PARSER, true, false); @@ -65,7 +64,7 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde for (Range range : ranges) { agg.addRange(range); } - }, GeoDistanceAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + }, (p, c) -> GeoDistanceAggregationBuilder.parseRange(p), RangeAggregator.RANGES_FIELD); PARSER.declareField(GeoDistanceAggregationBuilder::unit, p -> DistanceUnit.fromString(p.text()), UNIT_FIELD, ObjectParser.ValueType.STRING); @@ -77,8 +76,8 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde ORIGIN_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - GeoDistanceAggregationBuilder builder = PARSER.parse(context.parser(), new GeoDistanceAggregationBuilder(aggregationName), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + GeoDistanceAggregationBuilder builder = PARSER.parse(parser, new GeoDistanceAggregationBuilder(aggregationName), null); if (builder.origin() == null) { throw new IllegalArgumentException("Aggregation [" + aggregationName + "] must define an [origin]."); } @@ -116,7 +115,7 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde } } - private static GeoPoint parseGeoPoint(XContentParser parser, QueryParseContext context) throws IOException { + private static GeoPoint parseGeoPoint(XContentParser parser) throws IOException { Token token = parser.currentToken(); if (token == XContentParser.Token.VALUE_STRING) { GeoPoint point = new GeoPoint(); @@ -164,7 +163,7 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde throw new IllegalArgumentException("Unexpected token [" + token + "] while parsing geo point"); } - private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + private static Range parseRange(XContentParser parser) throws IOException { String fromAsStr = null; String toAsStr = null; double from = 0.0; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java index c530ecbfa9..99cc79f666 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java @@ -30,7 +30,6 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; @@ -61,7 +60,7 @@ public final class IpRangeAggregationBuilder public static final String NAME = "ip_range"; private static final ParseField MASK_FIELD = new ParseField("mask"); - private static final ObjectParser<IpRangeAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<IpRangeAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(IpRangeAggregationBuilder.NAME); ValuesSourceParserHelper.declareBytesFields(PARSER, false, false); @@ -70,14 +69,14 @@ public final class IpRangeAggregationBuilder PARSER.declareObjectArray((agg, ranges) -> { for (Range range : ranges) agg.addRange(range); - }, IpRangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + }, (p, c) -> IpRangeAggregationBuilder.parseRange(p), RangeAggregator.RANGES_FIELD); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new IpRangeAggregationBuilder(aggregationName), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new IpRangeAggregationBuilder(aggregationName), null); } - private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + private static Range parseRange(XContentParser parser) throws IOException { String key = null; String from = null; String to = null; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java index 78f5bd0a7a..0fbd8da74c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java @@ -23,7 +23,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -43,7 +43,7 @@ public class DiversifiedAggregationBuilder extends ValuesSourceAggregationBuilde public static final int MAX_DOCS_PER_VALUE_DEFAULT = 1; - private static final ObjectParser<DiversifiedAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<DiversifiedAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(DiversifiedAggregationBuilder.NAME); ValuesSourceParserHelper.declareAnyFields(PARSER, true, false); @@ -52,8 +52,8 @@ public class DiversifiedAggregationBuilder extends ValuesSourceAggregationBuilde PARSER.declareString(DiversifiedAggregationBuilder::executionHint, SamplerAggregator.EXECUTION_HINT_FIELD); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new DiversifiedAggregationBuilder(aggregationName), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new DiversifiedAggregationBuilder(aggregationName), null); } private int shardSize = SamplerAggregationBuilder.DEFAULT_SHARD_SAMPLE_SIZE; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java index f69b66ffd1..6151e764bc 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -86,12 +85,11 @@ public class SamplerAggregationBuilder extends AbstractAggregationBuilder<Sample return builder; } - public static SamplerAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + public static SamplerAggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { XContentParser.Token token; String currentFieldName = null; Integer shardSize = null; - XContentParser parser = context.parser(); while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java index 4f297a73b8..34a62d93c6 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java @@ -24,8 +24,8 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ParseFieldRegistry; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; @@ -62,43 +62,45 @@ public class SignificantTermsAggregationBuilder extends ValuesSourceAggregationB static final SignificanceHeuristic DEFAULT_SIGNIFICANCE_HEURISTIC = new JLHScore(); public static Aggregator.Parser getParser(ParseFieldRegistry<SignificanceHeuristicParser> significanceHeuristicParserRegistry) { - ObjectParser<SignificantTermsAggregationBuilder, QueryParseContext> parser = + ObjectParser<SignificantTermsAggregationBuilder, Void> aggregationParser = new ObjectParser<>(SignificantTermsAggregationBuilder.NAME); - ValuesSourceParserHelper.declareAnyFields(parser, true, true); + ValuesSourceParserHelper.declareAnyFields(aggregationParser, true, true); - parser.declareInt(SignificantTermsAggregationBuilder::shardSize, TermsAggregationBuilder.SHARD_SIZE_FIELD_NAME); + aggregationParser.declareInt(SignificantTermsAggregationBuilder::shardSize, TermsAggregationBuilder.SHARD_SIZE_FIELD_NAME); - parser.declareLong(SignificantTermsAggregationBuilder::minDocCount, TermsAggregationBuilder.MIN_DOC_COUNT_FIELD_NAME); + aggregationParser.declareLong(SignificantTermsAggregationBuilder::minDocCount, TermsAggregationBuilder.MIN_DOC_COUNT_FIELD_NAME); - parser.declareLong(SignificantTermsAggregationBuilder::shardMinDocCount, TermsAggregationBuilder.SHARD_MIN_DOC_COUNT_FIELD_NAME); + aggregationParser.declareLong(SignificantTermsAggregationBuilder::shardMinDocCount, + TermsAggregationBuilder.SHARD_MIN_DOC_COUNT_FIELD_NAME); - parser.declareInt(SignificantTermsAggregationBuilder::size, TermsAggregationBuilder.REQUIRED_SIZE_FIELD_NAME); + aggregationParser.declareInt(SignificantTermsAggregationBuilder::size, TermsAggregationBuilder.REQUIRED_SIZE_FIELD_NAME); - parser.declareString(SignificantTermsAggregationBuilder::executionHint, TermsAggregationBuilder.EXECUTION_HINT_FIELD_NAME); + aggregationParser.declareString(SignificantTermsAggregationBuilder::executionHint, + TermsAggregationBuilder.EXECUTION_HINT_FIELD_NAME); - parser.declareObject(SignificantTermsAggregationBuilder::backgroundFilter, + aggregationParser.declareObject(SignificantTermsAggregationBuilder::backgroundFilter, (p, context) -> parseInnerQueryBuilder(p), SignificantTermsAggregationBuilder.BACKGROUND_FILTER); - parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), + aggregationParser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), IncludeExclude::parseInclude, IncludeExclude.INCLUDE_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); - parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), + aggregationParser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), IncludeExclude::parseExclude, IncludeExclude.EXCLUDE_FIELD, ObjectParser.ValueType.STRING_ARRAY); for (String name : significanceHeuristicParserRegistry.getNames()) { - parser.declareObject(SignificantTermsAggregationBuilder::significanceHeuristic, + aggregationParser.declareObject(SignificantTermsAggregationBuilder::significanceHeuristic, (p, context) -> { SignificanceHeuristicParser significanceHeuristicParser = significanceHeuristicParserRegistry .lookupReturningNullIfNotFound(name); - return significanceHeuristicParser.parse(context); + return significanceHeuristicParser.parse(p); }, new ParseField(name)); } return new Aggregator.Parser() { @Override - public AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return parser.parse(context.parser(), new SignificantTermsAggregationBuilder(aggregationName, null), context); + public AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return aggregationParser.parse(parser, new SignificantTermsAggregationBuilder(aggregationName, null), null); } }; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTextAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTextAggregationBuilder.java index a55d89bbc5..15004b3a79 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTextAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTextAggregationBuilder.java @@ -25,9 +25,9 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ParseFieldRegistry; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.AbstractQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationInitializationException; @@ -70,55 +70,55 @@ public class SignificantTextAggregationBuilder extends AbstractAggregationBuilde public static Aggregator.Parser getParser( ParseFieldRegistry<SignificanceHeuristicParser> significanceHeuristicParserRegistry) { - ObjectParser<SignificantTextAggregationBuilder, QueryParseContext> parser = new ObjectParser<>( + ObjectParser<SignificantTextAggregationBuilder, Void> PARSER = new ObjectParser<>( SignificantTextAggregationBuilder.NAME); - parser.declareInt(SignificantTextAggregationBuilder::shardSize, + PARSER.declareInt(SignificantTextAggregationBuilder::shardSize, TermsAggregationBuilder.SHARD_SIZE_FIELD_NAME); - parser.declareLong(SignificantTextAggregationBuilder::minDocCount, + PARSER.declareLong(SignificantTextAggregationBuilder::minDocCount, TermsAggregationBuilder.MIN_DOC_COUNT_FIELD_NAME); - parser.declareLong(SignificantTextAggregationBuilder::shardMinDocCount, + PARSER.declareLong(SignificantTextAggregationBuilder::shardMinDocCount, TermsAggregationBuilder.SHARD_MIN_DOC_COUNT_FIELD_NAME); - parser.declareInt(SignificantTextAggregationBuilder::size, + PARSER.declareInt(SignificantTextAggregationBuilder::size, TermsAggregationBuilder.REQUIRED_SIZE_FIELD_NAME); - parser.declareString(SignificantTextAggregationBuilder::fieldName, FIELD_NAME); + PARSER.declareString(SignificantTextAggregationBuilder::fieldName, FIELD_NAME); - parser.declareStringArray(SignificantTextAggregationBuilder::sourceFieldNames, SOURCE_FIELDS_NAME); + PARSER.declareStringArray(SignificantTextAggregationBuilder::sourceFieldNames, SOURCE_FIELDS_NAME); - parser.declareBoolean(SignificantTextAggregationBuilder::filterDuplicateText, + PARSER.declareBoolean(SignificantTextAggregationBuilder::filterDuplicateText, FILTER_DUPLICATE_TEXT_FIELD_NAME); - parser.declareObject(SignificantTextAggregationBuilder::backgroundFilter, + PARSER.declareObject(SignificantTextAggregationBuilder::backgroundFilter, (p, context) -> AbstractQueryBuilder.parseInnerQueryBuilder(p), SignificantTermsAggregationBuilder.BACKGROUND_FILTER); - parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), + PARSER.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), IncludeExclude::parseInclude, IncludeExclude.INCLUDE_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); - parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), + PARSER.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), IncludeExclude::parseExclude, IncludeExclude.EXCLUDE_FIELD, ObjectParser.ValueType.STRING_ARRAY); for (String name : significanceHeuristicParserRegistry.getNames()) { - parser.declareObject(SignificantTextAggregationBuilder::significanceHeuristic, + PARSER.declareObject(SignificantTextAggregationBuilder::significanceHeuristic, (p, context) -> { SignificanceHeuristicParser significanceHeuristicParser = significanceHeuristicParserRegistry .lookupReturningNullIfNotFound(name); - return significanceHeuristicParser.parse(context); + return significanceHeuristicParser.parse(p); }, new ParseField(name)); } return new Aggregator.Parser() { @Override - public AggregationBuilder parse(String aggregationName, QueryParseContext context) + public AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { - return parser.parse(context.parser(), - new SignificantTextAggregationBuilder(aggregationName, null), context); + return PARSER.parse(parser, + new SignificantTextAggregationBuilder(aggregationName, null), null); } }; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java index 5968f42211..2c74fe1ba0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import java.io.IOException; @@ -113,8 +112,7 @@ public class GND extends NXYSignificanceHeuristic { } @Override - public SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.parser(); + public SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { String givenName = parser.currentName(); boolean backgroundIsSuperset = true; XContentParser.Token token = parser.nextToken(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java index d8009818f7..2627008b47 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import java.io.IOException; @@ -104,9 +103,8 @@ public class JLHScore extends SignificanceHeuristic { return builder; } - public static SignificanceHeuristic parse(QueryParseContext context) + public static SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { - XContentParser parser = context.parser(); // move to the closing bracket if (!parser.nextToken().equals(XContentParser.Token.END_OBJECT)) { throw new ElasticsearchParseException( diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java index 5f92b5b40e..f34a77d32b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import java.io.IOException; @@ -152,9 +151,8 @@ public abstract class NXYSignificanceHeuristic extends SignificanceHeuristic { public abstract static class NXYParser implements SignificanceHeuristicParser { @Override - public SignificanceHeuristic parse(QueryParseContext context) + public SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { - XContentParser parser = context.parser(); String givenName = parser.currentName(); boolean includeNegatives = false; boolean backgroundIsSuperset = true; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java index f4a61fbfae..9220adf87d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import java.io.IOException; @@ -56,9 +55,8 @@ public class PercentageScore extends SignificanceHeuristic { return builder; } - public static SignificanceHeuristic parse(QueryParseContext context) + public static SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { - XContentParser parser = context.parser(); // move to the closing bracket if (!parser.nextToken().equals(XContentParser.Token.END_OBJECT)) { throw new ElasticsearchParseException("failed to parse [percentage] significance heuristic. expected an empty object, but got [{}] instead", parser.currentToken()); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java index 99f3193b56..5f812ae4cc 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.query.QueryShardException; import org.elasticsearch.script.ExecutableScript; @@ -149,9 +148,8 @@ public class ScriptHeuristic extends SignificanceHeuristic { return Objects.equals(script, other.script); } - public static SignificanceHeuristic parse(QueryParseContext context) + public static SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { - XContentParser parser = context.parser(); String heuristicName = parser.currentName(); Script script = null; XContentParser.Token token; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java index 3c6f98c155..bab88555cb 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java @@ -22,7 +22,6 @@ package org.elasticsearch.search.aggregations.bucket.significant.heuristics; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; @@ -31,5 +30,5 @@ import java.io.IOException; */ @FunctionalInterface public interface SignificanceHeuristicParser { - SignificanceHeuristic parse(QueryParseContext context) throws IOException, ParsingException; + SignificanceHeuristic parse(XContentParser parser) throws IOException, ParsingException; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java index d534b572f9..e95ee43316 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java @@ -23,16 +23,16 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; -import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; -import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.BucketOrder; import org.elasticsearch.search.aggregations.InternalOrder; import org.elasticsearch.search.aggregations.InternalOrder.CompoundOrder; +import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; +import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -60,7 +60,7 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder<Valu public static final ParseField SHOW_TERM_DOC_COUNT_ERROR = new ParseField("show_term_doc_count_error"); public static final ParseField ORDER_FIELD = new ParseField("order"); - private static final ObjectParser<TermsAggregationBuilder, QueryParseContext> PARSER; + private static final ObjectParser<TermsAggregationBuilder, Void> PARSER; static { PARSER = new ObjectParser<>(TermsAggregationBuilder.NAME); ValuesSourceParserHelper.declareAnyFields(PARSER, true, true); @@ -82,7 +82,7 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder<Valu (p, c) -> SubAggCollectionMode.parse(p.text()), SubAggCollectionMode.KEY, ObjectParser.ValueType.STRING); - PARSER.declareObjectArray(TermsAggregationBuilder::order, InternalOrder.Parser::parseOrderParam, + PARSER.declareObjectArray(TermsAggregationBuilder::order, (p, c) -> InternalOrder.Parser.parseOrderParam(p), TermsAggregationBuilder.ORDER_FIELD); PARSER.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), @@ -92,8 +92,8 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder<Valu IncludeExclude::parseExclude, IncludeExclude.EXCLUDE_FIELD, ObjectParser.ValueType.STRING_ARRAY); } - public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { - return PARSER.parse(context.parser(), new TermsAggregationBuilder(aggregationName, null), context); + public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { + return PARSER.parse(parser, new TermsAggregationBuilder(aggregationName, null), null); } private BucketOrder order = BucketOrder.compound(BucketOrder.count(false)); // automatically adds tie-breaker key asc order diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java index dd0785b2d7..a1b4b7f510 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java @@ -44,7 +44,6 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.DocValueFormat; import java.io.IOException; @@ -93,7 +92,7 @@ public class IncludeExclude implements Writeable, ToXContent { } } - public static IncludeExclude parseInclude(XContentParser parser, QueryParseContext context) throws IOException { + public static IncludeExclude parseInclude(XContentParser parser) throws IOException { XContentParser.Token token = parser.currentToken(); if (token == XContentParser.Token.VALUE_STRING) { return new IncludeExclude(parser.text(), null); @@ -128,7 +127,7 @@ public class IncludeExclude implements Writeable, ToXContent { } } - public static IncludeExclude parseExclude(XContentParser parser, QueryParseContext context) throws IOException { + public static IncludeExclude parseExclude(XContentParser parser) throws IOException { XContentParser.Token token = parser.currentToken(); if (token == XContentParser.Token.VALUE_STRING) { return new IncludeExclude(null, parser.text()); @@ -170,6 +169,7 @@ public class IncludeExclude implements Writeable, ToXContent { } } + @Override public boolean accept(long value) { return ((valids == null) || (valids.contains(value))) && ((invalids == null) || (!invalids.contains(value))); } |