|
33 | 33 | import org.elasticsearch.common.geo.builders.ShapeBuilder; |
34 | 34 | import org.elasticsearch.common.inject.AbstractModule; |
35 | 35 | import org.elasticsearch.common.inject.multibindings.Multibinder; |
| 36 | +import org.elasticsearch.common.io.stream.NamedWriteable; |
36 | 37 | import org.elasticsearch.common.io.stream.NamedWriteableRegistry; |
37 | 38 | import org.elasticsearch.common.settings.Settings; |
38 | 39 | import org.elasticsearch.index.query.BoolQueryParser; |
@@ -283,14 +284,15 @@ public void registerSuggester(String key, Class<? extends Suggester> suggester) |
283 | 284 | /** |
284 | 285 | * Register a new ScoreFunctionParser. |
285 | 286 | */ |
286 | | - public void registerFunctionScoreParser(ScoreFunctionParser<?> parser) { |
| 287 | + public void registerFunctionScoreParser(ScoreFunctionParser<? extends ScoreFunctionBuilder> parser) { |
287 | 288 | for (String name: parser.getNames()) { |
288 | 289 | Object oldValue = functionScoreParsers.putIfAbsent(name, parser); |
289 | 290 | if (oldValue != null) { |
290 | 291 | throw new IllegalArgumentException("Function score parser [" + oldValue + "] already registered for name [" + name + "]"); |
291 | 292 | } |
292 | 293 | } |
293 | | - namedWriteableRegistry.registerPrototype(ScoreFunctionBuilder.class, parser.getBuilderPrototype()); |
| 294 | + @SuppressWarnings("unchecked") NamedWriteable<? extends ScoreFunctionBuilder> sfb = parser.getBuilderPrototype(); |
| 295 | + namedWriteableRegistry.registerPrototype(ScoreFunctionBuilder.class, sfb); |
294 | 296 | } |
295 | 297 |
|
296 | 298 | public void registerQueryParser(Supplier<QueryParser<?>> parser) { |
@@ -354,14 +356,15 @@ protected void configureFetchSubPhase() { |
354 | 356 | public IndicesQueriesRegistry buildQueryParserRegistry() { |
355 | 357 | Map<String, QueryParser<?>> queryParsersMap = new HashMap<>(); |
356 | 358 | for (Supplier<QueryParser<?>> parserSupplier : queryParsers) { |
357 | | - QueryParser<?> parser = parserSupplier.get(); |
| 359 | + QueryParser<? extends QueryBuilder> parser = parserSupplier.get(); |
358 | 360 | for (String name: parser.names()) { |
359 | 361 | Object oldValue = queryParsersMap.putIfAbsent(name, parser); |
360 | 362 | if (oldValue != null) { |
361 | 363 | throw new IllegalArgumentException("Query parser [" + oldValue + "] already registered for name [" + name + "] while trying to register [" + parser + "]"); |
362 | 364 | } |
363 | 365 | } |
364 | | - namedWriteableRegistry.registerPrototype(QueryBuilder.class, parser.getBuilderPrototype()); |
| 366 | + @SuppressWarnings("unchecked") NamedWriteable<? extends QueryBuilder> qb = parser.getBuilderPrototype(); |
| 367 | + namedWriteableRegistry.registerPrototype(QueryBuilder.class, qb); |
365 | 368 | } |
366 | 369 | return new IndicesQueriesRegistry(settings, queryParsersMap); |
367 | 370 | } |
|
0 commit comments