@@ -442,11 +442,12 @@ private void registerAggregation(AggregationSpec spec) {
442442 if (false == transportClient ) {
443443 aggregationParserRegistry .register (spec .getParser (), spec .getName ());
444444 }
445- namedWriteables .add (new Entry (AggregationBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
445+ namedWriteables .add (
446+ new NamedWriteableRegistry .Entry (AggregationBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
446447 for (Map .Entry <String , Writeable .Reader <? extends InternalAggregation >> t : spec .getResultReaders ().entrySet ()) {
447448 String writeableName = t .getKey ();
448449 Writeable .Reader <? extends InternalAggregation > internalReader = t .getValue ();
449- namedWriteables .add (new Entry (InternalAggregation .class , writeableName , internalReader ));
450+ namedWriteables .add (new NamedWriteableRegistry . Entry (InternalAggregation .class , writeableName , internalReader ));
450451 }
451452 }
452453
@@ -535,10 +536,13 @@ private void registerPipelineAggregation(PipelineAggregationSpec spec) {
535536 if (false == transportClient ) {
536537 pipelineAggregationParserRegistry .register (spec .getParser (), spec .getName ());
537538 }
538- namedWriteables .add (new Entry (PipelineAggregationBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
539- namedWriteables .add (new Entry (PipelineAggregator .class , spec .getName ().getPreferredName (), spec .getAggregatorReader ()));
539+ namedWriteables .add (
540+ new NamedWriteableRegistry .Entry (PipelineAggregationBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
541+ namedWriteables .add (
542+ new NamedWriteableRegistry .Entry (PipelineAggregator .class , spec .getName ().getPreferredName (), spec .getAggregatorReader ()));
540543 for (Map .Entry <String , Writeable .Reader <? extends InternalAggregation >> resultReader : spec .getResultReaders ().entrySet ()) {
541- namedWriteables .add (new Entry (InternalAggregation .class , resultReader .getKey (), resultReader .getValue ()));
544+ namedWriteables
545+ .add (new NamedWriteableRegistry .Entry (InternalAggregation .class , resultReader .getKey (), resultReader .getValue ()));
542546 }
543547 }
544548
@@ -549,14 +553,14 @@ private void registerShapes() {
549553 }
550554
551555 private void registerRescorers () {
552- namedWriteables .add (new Entry (RescoreBuilder .class , QueryRescorerBuilder .NAME , QueryRescorerBuilder ::new ));
556+ namedWriteables .add (new NamedWriteableRegistry . Entry (RescoreBuilder .class , QueryRescorerBuilder .NAME , QueryRescorerBuilder ::new ));
553557 }
554558
555559 private void registerSorts () {
556- namedWriteables .add (new Entry (SortBuilder .class , GeoDistanceSortBuilder .NAME , GeoDistanceSortBuilder ::new ));
557- namedWriteables .add (new Entry (SortBuilder .class , ScoreSortBuilder .NAME , ScoreSortBuilder ::new ));
558- namedWriteables .add (new Entry (SortBuilder .class , ScriptSortBuilder .NAME , ScriptSortBuilder ::new ));
559- namedWriteables .add (new Entry (SortBuilder .class , FieldSortBuilder .NAME , FieldSortBuilder ::new ));
560+ namedWriteables .add (new NamedWriteableRegistry . Entry (SortBuilder .class , GeoDistanceSortBuilder .NAME , GeoDistanceSortBuilder ::new ));
561+ namedWriteables .add (new NamedWriteableRegistry . Entry (SortBuilder .class , ScoreSortBuilder .NAME , ScoreSortBuilder ::new ));
562+ namedWriteables .add (new NamedWriteableRegistry . Entry (SortBuilder .class , ScriptSortBuilder .NAME , ScriptSortBuilder ::new ));
563+ namedWriteables .add (new NamedWriteableRegistry . Entry (SortBuilder .class , FieldSortBuilder .NAME , FieldSortBuilder ::new ));
560564 }
561565
562566 private <T > void registerFromPlugin (List <SearchPlugin > plugins , Function <SearchPlugin , List <T >> producer , Consumer <T > consumer ) {
@@ -568,9 +572,9 @@ private <T> void registerFromPlugin(List<SearchPlugin> plugins, Function<SearchP
568572 }
569573
570574 public static void registerSmoothingModels (List <Entry > namedWriteables ) {
571- namedWriteables .add (new Entry (SmoothingModel .class , Laplace .NAME , Laplace ::new ));
572- namedWriteables .add (new Entry (SmoothingModel .class , LinearInterpolation .NAME , LinearInterpolation ::new ));
573- namedWriteables .add (new Entry (SmoothingModel .class , StupidBackoff .NAME , StupidBackoff ::new ));
575+ namedWriteables .add (new NamedWriteableRegistry . Entry (SmoothingModel .class , Laplace .NAME , Laplace ::new ));
576+ namedWriteables .add (new NamedWriteableRegistry . Entry (SmoothingModel .class , LinearInterpolation .NAME , LinearInterpolation ::new ));
577+ namedWriteables .add (new NamedWriteableRegistry . Entry (SmoothingModel .class , StupidBackoff .NAME , StupidBackoff ::new ));
574578 }
575579
576580 private Map <String , Suggester <?>> setupSuggesters (List <SearchPlugin > plugins ) {
@@ -581,7 +585,7 @@ private Map<String, Suggester<?>> setupSuggesters(List<SearchPlugin> plugins) {
581585 @ Override
582586 public void register (String name , Suggester <?> t ) {
583587 super .register (name , t );
584- namedWriteables .add (new Entry (SuggestionBuilder .class , name , t ));
588+ namedWriteables .add (new NamedWriteableRegistry . Entry (SuggestionBuilder .class , name , t ));
585589 }
586590 };
587591 suggesters .register ("phrase" , PhraseSuggester .INSTANCE );
@@ -619,7 +623,7 @@ private void registerScoreFunctions(List<SearchPlugin> plugins) {
619623
620624 //weight doesn't have its own parser, so every function supports it out of the box.
621625 //Can be a single function too when not associated to any other function, which is why it needs to be registered manually here.
622- namedWriteables .add (new Entry (ScoreFunctionBuilder .class , WeightBuilder .NAME , WeightBuilder ::new ));
626+ namedWriteables .add (new NamedWriteableRegistry . Entry (ScoreFunctionBuilder .class , WeightBuilder .NAME , WeightBuilder ::new ));
623627
624628 registerFromPlugin (plugins , SearchPlugin ::getScoreFunctions , this ::registerScoreFunction );
625629 }
@@ -646,7 +650,7 @@ private void registerValueFormats() {
646650 * Register a new ValueFormat.
647651 */
648652 private void registerValueFormat (String name , Writeable .Reader <? extends DocValueFormat > reader ) {
649- namedWriteables .add (new Entry (DocValueFormat .class , name , reader ));
653+ namedWriteables .add (new NamedWriteableRegistry . Entry (DocValueFormat .class , name , reader ));
650654 }
651655
652656 private void registerSignificanceHeuristics (List <SearchPlugin > plugins ) {
@@ -662,7 +666,8 @@ private void registerSignificanceHeuristics(List<SearchPlugin> plugins) {
662666
663667 private void registerSignificanceHeuristic (SearchExtensionSpec <SignificanceHeuristic , SignificanceHeuristicParser > heuristic ) {
664668 significanceHeuristicParserRegistry .register (heuristic .getParser (), heuristic .getName ());
665- namedWriteables .add (new Entry (SignificanceHeuristic .class , heuristic .getName ().getPreferredName (), heuristic .getReader ()));
669+ namedWriteables .add (new NamedWriteableRegistry .Entry (SignificanceHeuristic .class , heuristic .getName ().getPreferredName (),
670+ heuristic .getReader ()));
666671 }
667672
668673 private void registerMovingAverageModels (List <SearchPlugin > plugins ) {
@@ -677,7 +682,8 @@ private void registerMovingAverageModels(List<SearchPlugin> plugins) {
677682
678683 private void registerMovingAverageModel (SearchExtensionSpec <MovAvgModel , MovAvgModel .AbstractModelParser > movAvgModel ) {
679684 movingAverageModelParserRegistry .register (movAvgModel .getParser (), movAvgModel .getName ());
680- namedWriteables .add (new Entry (MovAvgModel .class , movAvgModel .getName ().getPreferredName (), movAvgModel .getReader ()));
685+ namedWriteables .add (
686+ new NamedWriteableRegistry .Entry (MovAvgModel .class , movAvgModel .getName ().getPreferredName (), movAvgModel .getReader ()));
681687 }
682688
683689 private void registerFetchSubPhases (List <SearchPlugin > plugins ) {
@@ -700,7 +706,7 @@ private void registerSearchExts(List<SearchPlugin> plugins) {
700706
701707 private void registerSearchExt (SearchExtSpec <?> spec ) {
702708 searchExtParserRegistry .register (spec .getParser (), spec .getName ());
703- namedWriteables .add (new Entry (SearchExtBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
709+ namedWriteables .add (new NamedWriteableRegistry . Entry (SearchExtBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
704710 }
705711
706712 private void registerFetchSubPhase (FetchSubPhase subPhase ) {
@@ -775,7 +781,9 @@ private void registerQueryParsers(List<SearchPlugin> plugins) {
775781
776782 private void registerQuery (QuerySpec <?> spec ) {
777783 queryParserRegistry .register (spec .getParser (), spec .getName ());
778- namedWriteables .add (new Entry (QueryBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
784+ namedWriteables .add (new NamedWriteableRegistry .Entry (QueryBuilder .class , spec .getName ().getPreferredName (), spec .getReader ()));
785+ namedXContents .add (new NamedXContentRegistry .Entry (QueryBuilder .class , spec .getName (),
786+ (p , c ) -> spec .getParser ().fromXContent ((QueryParseContext ) c )));
779787 }
780788
781789 public FetchPhase getFetchPhase () {
0 commit comments