@@ -106,10 +106,6 @@ public static class Defaults {
106106 public static final int POSITION_INCREMENT_GAP = 100 ;
107107 }
108108
109- private static Builder builder (FieldMapper in ) {
110- return ((TextFieldMapper ) in ).builder ;
111- }
112-
113109 private static final class PrefixConfig implements ToXContent {
114110 final int minChars ;
115111 final int maxChars ;
@@ -229,27 +225,26 @@ public static class Builder extends FieldMapper.Builder {
229225
230226 private final Version indexCreatedVersion ;
231227
232- private final Parameter <Boolean > index = Parameter .indexParam (m -> builder ( m ).index . getValue () , true );
233- private final Parameter <Boolean > store = Parameter .storeParam (m -> builder ( m ).store . getValue () , false );
228+ private final Parameter <Boolean > index = Parameter .indexParam (m -> (( TextFieldMapper ) m ).index , true );
229+ private final Parameter <Boolean > store = Parameter .storeParam (m -> (( TextFieldMapper ) m ).store , false );
234230
235- final Parameter <SimilarityProvider > similarity
236- = TextParams .similarity (m -> builder (m ).similarity .getValue ());
231+ final Parameter <SimilarityProvider > similarity = TextParams .similarity (m -> ((TextFieldMapper ) m ).similarity );
237232
238- final Parameter <String > indexOptions = TextParams .indexOptions (m -> builder ( m ).indexOptions . getValue () );
239- final Parameter <Boolean > norms = TextParams .norms (true , m -> builder ( m ).norms . getValue () );
240- final Parameter <String > termVectors = TextParams .termVectors (m -> builder ( m ).termVectors . getValue () );
233+ final Parameter <String > indexOptions = TextParams .indexOptions (m -> (( TextFieldMapper ) m ).indexOptions );
234+ final Parameter <Boolean > norms = TextParams .norms (true , m -> (( TextFieldMapper ) m ).norms );
235+ final Parameter <String > termVectors = TextParams .termVectors (m -> (( TextFieldMapper ) m ).termVectors );
241236
242237 final Parameter <Boolean > fieldData
243- = Parameter .boolParam ("fielddata" , true , m -> builder ( m ).fieldData . getValue () , false );
238+ = Parameter .boolParam ("fielddata" , true , m -> (( TextFieldMapper ) m ).fieldData , false );
244239 final Parameter <FielddataFrequencyFilter > freqFilter = new Parameter <>("fielddata_frequency_filter" , true ,
245- () -> DEFAULT_FILTER , TextFieldMapper ::parseFrequencyFilter , m -> builder ( m ).freqFilter . getValue () );
240+ () -> DEFAULT_FILTER , TextFieldMapper ::parseFrequencyFilter , m -> (( TextFieldMapper ) m ).freqFilter );
246241 final Parameter <Boolean > eagerGlobalOrdinals
247- = Parameter .boolParam ("eager_global_ordinals" , true , m -> builder ( m ).eagerGlobalOrdinals . getValue () , false );
242+ = Parameter .boolParam ("eager_global_ordinals" , true , m -> (( TextFieldMapper ) m ).eagerGlobalOrdinals , false );
248243
249244 final Parameter <Boolean > indexPhrases
250- = Parameter .boolParam ("index_phrases" , false , m -> builder ( m ).indexPhrases . getValue () , false );
245+ = Parameter .boolParam ("index_phrases" , false , m -> (( TextFieldMapper ) m ).indexPhrases , false );
251246 final Parameter <PrefixConfig > indexPrefixes = new Parameter <>("index_prefixes" , false ,
252- () -> null , TextFieldMapper ::parsePrefixConfig , m -> builder ( m ).indexPrefixes . getValue () ).acceptsNull ();
247+ () -> null , TextFieldMapper ::parsePrefixConfig , m -> (( TextFieldMapper ) m ).indexPrefixes ).acceptsNull ();
253248
254249 private final Parameter <Map <String , String >> meta = Parameter .metaParam ();
255250
@@ -262,7 +257,11 @@ public Builder(String name, IndexAnalyzers indexAnalyzers) {
262257 public Builder (String name , Version indexCreatedVersion , IndexAnalyzers indexAnalyzers ) {
263258 super (name );
264259 this .indexCreatedVersion = indexCreatedVersion ;
265- this .analyzers = new TextParams .Analyzers (indexAnalyzers , m -> builder (m ).analyzers );
260+ this .analyzers = new TextParams .Analyzers (
261+ indexAnalyzers ,
262+ m -> ((TextFieldMapper ) m ).indexAnalyzer ,
263+ m -> (((TextFieldMapper ) m ).positionIncrementGap )
264+ );
266265 }
267266
268267 public Builder index (boolean index ) {
@@ -820,7 +819,21 @@ public IndexFieldData.Builder fielddataBuilder(String fullyQualifiedIndexName, S
820819
821820 }
822821
823- private final Builder builder ;
822+ private final Version indexCreatedVersion ;
823+ private final boolean index ;
824+ private final boolean store ;
825+ private final String indexOptions ;
826+ private final boolean norms ;
827+ private final String termVectors ;
828+ private final SimilarityProvider similarity ;
829+ private final NamedAnalyzer indexAnalyzer ;
830+ private final IndexAnalyzers indexAnalyzers ;
831+ private final int positionIncrementGap ;
832+ private final boolean eagerGlobalOrdinals ;
833+ private final PrefixConfig indexPrefixes ;
834+ private final FielddataFrequencyFilter freqFilter ;
835+ private final boolean fieldData ;
836+ private final boolean indexPhrases ;
824837 private final FieldType fieldType ;
825838 private final SubFieldInfo prefixFieldInfo ;
826839 private final SubFieldInfo phraseFieldInfo ;
@@ -840,12 +853,26 @@ protected TextFieldMapper(String simpleName, FieldType fieldType,
840853 this .fieldType = fieldType ;
841854 this .prefixFieldInfo = prefixFieldInfo ;
842855 this .phraseFieldInfo = phraseFieldInfo ;
843- this .builder = builder ;
856+ this .indexCreatedVersion = builder .indexCreatedVersion ;
857+ this .indexAnalyzer = builder .analyzers .getIndexAnalyzer ();
858+ this .indexAnalyzers = builder .analyzers .indexAnalyzers ;
859+ this .positionIncrementGap = builder .analyzers .positionIncrementGap .getValue ();
860+ this .index = builder .index .getValue ();
861+ this .store = builder .store .getValue ();
862+ this .similarity = builder .similarity .getValue ();
863+ this .indexOptions = builder .indexOptions .getValue ();
864+ this .norms = builder .norms .getValue ();
865+ this .termVectors = builder .termVectors .getValue ();
866+ this .eagerGlobalOrdinals = builder .eagerGlobalOrdinals .getValue ();
867+ this .indexPrefixes = builder .indexPrefixes .getValue ();
868+ this .freqFilter = builder .freqFilter .getValue ();
869+ this .fieldData = builder .fieldData .get ();
870+ this .indexPhrases = builder .indexPhrases .getValue ();
844871 }
845872
846873 @ Override
847874 public FieldMapper .Builder getMergeBuilder () {
848- return new Builder (simpleName (), builder . indexCreatedVersion , builder . analyzers . indexAnalyzers ).init (this );
875+ return new Builder (simpleName (), indexCreatedVersion , indexAnalyzers ).init (this );
849876 }
850877
851878 @ Override
@@ -1003,23 +1030,24 @@ protected void doXContentBody(XContentBuilder builder, Params params) throws IOE
10031030 // this is a pain, but we have to do this to maintain BWC
10041031 boolean includeDefaults = params .paramAsBoolean ("include_defaults" , false );
10051032 builder .field ("type" , contentType ());
1006- this .builder .index .toXContent (builder , includeDefaults );
1007- this .builder .store .toXContent (builder , includeDefaults );
1033+ final Builder b = (Builder ) getMergeBuilder ();
1034+ b .index .toXContent (builder , includeDefaults );
1035+ b .store .toXContent (builder , includeDefaults );
10081036 this .multiFields .toXContent (builder , params );
10091037 this .copyTo .toXContent (builder , params );
1010- this . builder .meta .toXContent (builder , includeDefaults );
1011- this . builder .indexOptions .toXContent (builder , includeDefaults );
1012- this . builder .termVectors .toXContent (builder , includeDefaults );
1013- this . builder .norms .toXContent (builder , includeDefaults );
1014- this . builder .analyzers .indexAnalyzer .toXContent (builder , includeDefaults );
1015- this . builder .analyzers .searchAnalyzer .toXContent (builder , includeDefaults );
1016- this . builder .analyzers .searchQuoteAnalyzer .toXContent (builder , includeDefaults );
1017- this . builder .similarity .toXContent (builder , includeDefaults );
1018- this . builder .eagerGlobalOrdinals .toXContent (builder , includeDefaults );
1019- this . builder .analyzers .positionIncrementGap .toXContent (builder , includeDefaults );
1020- this . builder .fieldData .toXContent (builder , includeDefaults );
1021- this . builder .freqFilter .toXContent (builder , includeDefaults );
1022- this . builder .indexPrefixes .toXContent (builder , includeDefaults );
1023- this . builder .indexPhrases .toXContent (builder , includeDefaults );
1038+ b .meta .toXContent (builder , includeDefaults );
1039+ b .indexOptions .toXContent (builder , includeDefaults );
1040+ b .termVectors .toXContent (builder , includeDefaults );
1041+ b .norms .toXContent (builder , includeDefaults );
1042+ b .analyzers .indexAnalyzer .toXContent (builder , includeDefaults );
1043+ b .analyzers .searchAnalyzer .toXContent (builder , includeDefaults );
1044+ b .analyzers .searchQuoteAnalyzer .toXContent (builder , includeDefaults );
1045+ b .similarity .toXContent (builder , includeDefaults );
1046+ b .eagerGlobalOrdinals .toXContent (builder , includeDefaults );
1047+ b .analyzers .positionIncrementGap .toXContent (builder , includeDefaults );
1048+ b .fieldData .toXContent (builder , includeDefaults );
1049+ b .freqFilter .toXContent (builder , includeDefaults );
1050+ b .indexPrefixes .toXContent (builder , includeDefaults );
1051+ b .indexPhrases .toXContent (builder , includeDefaults );
10241052 }
10251053}
0 commit comments