Skip to content

Commit 2e721a0

Browse files
committed
Fix IntelliJ query builder type inference issues
This commit addresses two type inference issues that the IntelliJ source editor struggles with when registering query builder prototypes in o/e/i/q/IndicesQueriesRegistry.java and o/e/i/q/f/ScoreFunctionParserMapper.java.
1 parent 1f0c23a commit 2e721a0

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

core/src/main/java/org/elasticsearch/index/query/functionscore/ScoreFunctionParserMapper.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@
1919

2020
package org.elasticsearch.index.query.functionscore;
2121

22-
import java.util.Map;
23-
2422
import org.elasticsearch.common.ParsingException;
2523
import org.elasticsearch.common.inject.Inject;
24+
import org.elasticsearch.common.io.stream.NamedWriteable;
2625
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
2726
import org.elasticsearch.common.xcontent.XContentLocation;
28-
import org.elasticsearch.index.query.QueryParseContext;
2927
import org.elasticsearch.index.query.functionscore.exp.ExponentialDecayFunctionParser;
3028
import org.elasticsearch.index.query.functionscore.fieldvaluefactor.FieldValueFactorFunctionParser;
3129
import org.elasticsearch.index.query.functionscore.gauss.GaussDecayFunctionParser;
@@ -74,11 +72,12 @@ private ScoreFunctionParser get(String parserName) {
7472
return functionParsers.get(parserName);
7573
}
7674

77-
private static void addParser(ScoreFunctionParser<?> scoreFunctionParser, Map<String, ScoreFunctionParser<?>> map, NamedWriteableRegistry namedWriteableRegistry) {
75+
private static void addParser(ScoreFunctionParser<? extends ScoreFunctionBuilder> scoreFunctionParser, Map<String, ScoreFunctionParser<?>> map, NamedWriteableRegistry namedWriteableRegistry) {
7876
for (String name : scoreFunctionParser.getNames()) {
7977
map.put(name, scoreFunctionParser);
8078

8179
}
82-
namedWriteableRegistry.registerPrototype(ScoreFunctionBuilder.class, scoreFunctionParser.getBuilderPrototype());
80+
@SuppressWarnings("unchecked") NamedWriteable<? extends ScoreFunctionBuilder> sfb = scoreFunctionParser.getBuilderPrototype();
81+
namedWriteableRegistry.registerPrototype(ScoreFunctionBuilder.class, sfb);
8382
}
8483
}

core/src/main/java/org/elasticsearch/indices/query/IndicesQueriesRegistry.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.elasticsearch.common.component.AbstractComponent;
2323
import org.elasticsearch.common.inject.Inject;
24+
import org.elasticsearch.common.io.stream.NamedWriteable;
2425
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
2526
import org.elasticsearch.common.settings.Settings;
2627
import org.elasticsearch.index.query.EmptyQueryBuilder;
@@ -40,11 +41,12 @@ public class IndicesQueriesRegistry extends AbstractComponent {
4041
public IndicesQueriesRegistry(Settings settings, Set<QueryParser> injectedQueryParsers, NamedWriteableRegistry namedWriteableRegistry) {
4142
super(settings);
4243
Map<String, QueryParser<?>> queryParsers = new HashMap<>();
43-
for (QueryParser<?> queryParser : injectedQueryParsers) {
44+
for (@SuppressWarnings("unchecked") QueryParser<? extends QueryBuilder> queryParser : injectedQueryParsers) {
4445
for (String name : queryParser.names()) {
4546
queryParsers.put(name, queryParser);
4647
}
47-
namedWriteableRegistry.registerPrototype(QueryBuilder.class, queryParser.getBuilderPrototype());
48+
@SuppressWarnings("unchecked") NamedWriteable<? extends QueryBuilder> qb = queryParser.getBuilderPrototype();
49+
namedWriteableRegistry.registerPrototype(QueryBuilder.class, qb);
4850
}
4951
// EmptyQueryBuilder is not registered as query parser but used internally.
5052
// We need to register it with the NamedWriteableRegistry in order to serialize it
@@ -58,4 +60,4 @@ public IndicesQueriesRegistry(Settings settings, Set<QueryParser> injectedQueryP
5860
public Map<String, QueryParser<?>> queryParsers() {
5961
return queryParsers;
6062
}
61-
}
63+
}

0 commit comments

Comments
 (0)