From a2ce0d0122d8d266a16c8aa911bee16ae171a2ce Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Thu, 14 May 2020 10:12:49 +0100 Subject: [PATCH 1/3] Simply generics on Mapper.Builder --- .../index/mapper/RankFeatureFieldMapper.java | 4 +-- .../mapper/RankFeatureMetaFieldMapper.java | 4 +-- .../index/mapper/RankFeaturesFieldMapper.java | 4 +-- .../index/mapper/ScaledFloatFieldMapper.java | 4 +-- .../mapper/SearchAsYouTypeFieldMapper.java | 4 +-- .../index/mapper/TokenCountFieldMapper.java | 4 +-- .../join/mapper/MetaJoinFieldMapper.java | 2 +- .../join/mapper/ParentIdFieldMapper.java | 2 +- .../join/mapper/ParentJoinFieldMapper.java | 4 +-- .../percolator/PercolatorFieldMapper.java | 2 +- .../ICUCollationKeywordFieldMapper.java | 4 +-- .../AnnotatedTextFieldMapper.java | 4 +-- .../mapper/murmur3/Murmur3FieldMapper.java | 4 +-- .../index/mapper/size/SizeFieldMapper.java | 4 +-- .../mapper/AbstractGeometryFieldMapper.java | 4 +-- .../AbstractPointGeometryFieldMapper.java | 8 ++--- .../AbstractShapeGeometryFieldMapper.java | 4 +-- .../index/mapper/BinaryFieldMapper.java | 2 +- .../index/mapper/BooleanFieldMapper.java | 2 +- .../index/mapper/CompletionFieldMapper.java | 4 +-- .../index/mapper/DateFieldMapper.java | 4 +-- .../index/mapper/DocumentMapper.java | 3 +- .../index/mapper/DocumentParser.java | 10 +++---- .../index/mapper/FieldAliasMapper.java | 2 +- .../index/mapper/FieldMapper.java | 4 +-- .../index/mapper/FieldNamesFieldMapper.java | 4 +-- .../index/mapper/GeoPointFieldMapper.java | 2 +- .../index/mapper/GeoShapeFieldMapper.java | 2 +- .../index/mapper/IdFieldMapper.java | 2 +- .../index/mapper/IgnoredFieldMapper.java | 4 +-- .../index/mapper/IndexFieldMapper.java | 4 +-- .../index/mapper/IpFieldMapper.java | 4 +-- .../index/mapper/KeywordFieldMapper.java | 4 +-- .../mapper/LegacyGeoShapeFieldMapper.java | 2 +- .../elasticsearch/index/mapper/Mapper.java | 6 ++-- .../index/mapper/MapperService.java | 2 +- .../index/mapper/MetadataFieldMapper.java | 6 ++-- .../index/mapper/NestedPathFieldMapper.java | 2 +- .../index/mapper/NumberFieldMapper.java | 4 +-- .../index/mapper/ObjectMapper.java | 11 ++++--- .../index/mapper/RangeFieldMapper.java | 4 +-- .../index/mapper/RootObjectMapper.java | 6 ++-- .../index/mapper/RoutingFieldMapper.java | 4 +-- .../index/mapper/SeqNoFieldMapper.java | 4 +-- .../index/mapper/SourceFieldMapper.java | 4 +-- .../index/mapper/TextFieldMapper.java | 2 +- .../index/mapper/TypeFieldMapper.java | 2 +- .../index/mapper/TypeParsers.java | 8 ++--- .../index/mapper/VersionFieldMapper.java | 2 +- .../index/mapper/ExternalMapper.java | 4 +-- .../index/mapper/ExternalMetadataMapper.java | 4 +-- .../index/mapper/FakeStringFieldMapper.java | 2 +- .../index/mapper/TypeParsersTests.java | 30 +++++++++---------- .../indices/IndicesModuleTests.java | 4 +-- .../mapper/HistogramFieldMapper.java | 5 ++-- .../mapper/ConstantKeywordFieldMapper.java | 4 +-- .../mapper/FlatObjectFieldMapper.java | 6 ++-- .../GeoShapeWithDocValuesFieldMapper.java | 2 +- .../index/mapper/PointFieldMapper.java | 2 +- .../index/mapper/ShapeFieldMapper.java | 2 +- .../mapper/DenseVectorFieldMapper.java | 4 +-- .../mapper/SparseVectorFieldMapper.java | 4 +-- .../wildcard/mapper/WildcardFieldMapper.java | 4 +-- 63 files changed, 134 insertions(+), 135 deletions(-) diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java index 40d42be82a6c7..451b72dc0ffa1 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java @@ -57,7 +57,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); @@ -85,7 +85,7 @@ public RankFeatureFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeatureFieldMapper.Builder builder = new RankFeatureFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java index 7cf9fbce4fdfe..9a30956c5802f 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java @@ -55,7 +55,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -70,7 +70,7 @@ public RankFeatureMetaFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java index 3d69b7af8d6e0..b743cf42bcb2a 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java @@ -51,7 +51,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); @@ -74,7 +74,7 @@ public RankFeaturesFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeaturesFieldMapper.Builder builder = new RankFeaturesFieldMapper.Builder(name); return builder; } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java index d95684b324b25..65bcfbaac6526 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java @@ -82,7 +82,7 @@ public class ScaledFloatFieldMapper extends FieldMapper { // use the same default as numbers private static final Setting COERCE_SETTING = NumberFieldMapper.COERCE_SETTING; - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private boolean scalingFactorSet = false; private Boolean ignoreMalformed; @@ -149,7 +149,7 @@ public ScaledFloatFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java index ef09d72034f56..273fd93daef7b 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java @@ -104,7 +104,7 @@ public static class Defaults { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { @@ -129,7 +129,7 @@ public static class TypeParser implements Mapper.TypeParser { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxShingleSize = Defaults.MAX_SHINGLE_SIZE; public Builder(String name) { diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java index 1da8e5d764c19..86ec61f833f82 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java @@ -47,7 +47,7 @@ public static class Defaults { public static final boolean DEFAULT_POSITION_INCREMENTS = true; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private NamedAnalyzer analyzer; private boolean enablePositionIncrements = Defaults.DEFAULT_POSITION_INCREMENTS; @@ -84,7 +84,7 @@ public TokenCountFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { TokenCountFieldMapper.Builder builder = new TokenCountFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java index 72f483d30859a..a90dd4623cf90 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java @@ -57,7 +57,7 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { Builder() { super(NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); builder = this; diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java index fd0856c226674..b29390d1b7014 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java @@ -66,7 +66,7 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final String parent; private final Set children; diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java index af1e6a733a18f..7d1317053a534 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java @@ -121,7 +121,7 @@ private static void checkParentFields(String name, List map } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { final List parentIdFieldBuilders = new ArrayList<>(); boolean eagerGlobalOrdinals = true; @@ -168,7 +168,7 @@ public ParentJoinFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { final IndexSettings indexSettings = parserContext.mapperService().getIndexSettings(); checkIndexCompatibility(indexSettings, name); diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java index 36a351a27c117..f1022857f6517 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java @@ -108,7 +108,7 @@ public class PercolatorFieldMapper extends FieldMapper { static final String RANGE_FIELD_NAME = "range_field"; static final String MINIMUM_SHOULD_MATCH_FIELD_NAME = "minimum_should_match_field"; - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final Supplier queryShardContext; diff --git a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java index d8364fdf82fde..9ab6d0ba34ca2 100644 --- a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java +++ b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java @@ -220,7 +220,7 @@ public DocValueFormat docValueFormat(final String format, final ZoneId timeZone) } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private String rules = null; private String language = null; private String country = null; @@ -480,7 +480,7 @@ public ICUCollationKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java index 299dc670c8b75..20d3b6e464a2b 100644 --- a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java +++ b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java @@ -85,7 +85,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; @@ -147,7 +147,7 @@ name, fieldType(), defaultFieldType, positionIncrementGap, public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse( + public Mapper.Builder parse( String fieldName, Map node, ParserContext parserContext) throws MapperParsingException { AnnotatedTextFieldMapper.Builder builder = new AnnotatedTextFieldMapper.Builder(fieldName); diff --git a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java index 75f45cffbfbe6..69969a4b00ba0 100644 --- a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java +++ b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java @@ -55,7 +55,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); @@ -81,7 +81,7 @@ protected void setupFieldType(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); diff --git a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java index 0b0e61c8539c9..b3ba775b18957 100644 --- a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java +++ b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java @@ -62,7 +62,7 @@ private static MappedFieldType defaultFieldType(Version indexCreated) { return defaultFieldType; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED; @@ -86,7 +86,7 @@ public SizeFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME), parserContext.indexVersionCreated()); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java index 8804a458b347c..fcba73124433b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java @@ -76,8 +76,8 @@ public interface Parser { Parsed parse(XContentParser parser, AbstractGeometryFieldMapper mapper) throws IOException, ParseException; } - public abstract static class Builder - extends FieldMapper.Builder { + public abstract static class Builder + extends FieldMapper.Builder { protected Boolean ignoreMalformed; protected Boolean ignoreZValue; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java index ee4af56c737ac..445c899209f3d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java @@ -44,20 +44,20 @@ public static class Names extends AbstractGeometryFieldMapper.Names { public static final ParseField NULL_VALUE = new ParseField("null_value"); } - public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } - public abstract Y build(BuilderContext context, String simpleName, MappedFieldType fieldType, + public abstract AbstractPointGeometryFieldMapper build(BuilderContext context, String simpleName, MappedFieldType fieldType, MappedFieldType defaultFieldType, Settings indexSettings, MultiFields multiFields, Explicit ignoreMalformed, Explicit ignoreZValue, CopyTo copyTo); @Override - public Y build(BuilderContext context) { + public AbstractPointGeometryFieldMapper build(BuilderContext context) { return build(context, name, fieldType, defaultFieldType, context.indexSettings(), multiFieldsBuilder.build(this, context), ignoreMalformed(context), ignoreZValue(context), copyTo); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java index 8d5565ccc868a..955a29003e6c8 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java @@ -49,8 +49,8 @@ public static class Defaults extends AbstractGeometryFieldMapper.Defaults { public static final Explicit COERCE = new Explicit<>(false, false); } - public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { protected Boolean coerce; protected Orientation orientation; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java index a268e278f9382..f3555f0598440 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java @@ -62,7 +62,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java index 06d753f4b6ea2..a2fe91f08721f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java @@ -74,7 +74,7 @@ public static class Values { public static final BytesRef FALSE = new BytesRef("F"); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java index a265f1d5f1e49..493ac8986c3ac 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java @@ -123,7 +123,7 @@ public static class Fields { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { CompletionFieldMapper.Builder builder = new CompletionFieldMapper.Builder(name); NamedAnalyzer indexAnalyzer = null; @@ -353,7 +353,7 @@ public void checkCompatibility(MappedFieldType fieldType, List conflicts /** * Builder for {@link CompletionFieldMapper} */ - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxInputLength = Defaults.DEFAULT_MAX_INPUT_LENGTH; private ContextMappings contextMappings = null; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java index 03641417520a8..9d5d93f67951f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java @@ -171,7 +171,7 @@ public static Resolution ofOrdinal(int ord) { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Explicit format = new Explicit<>(DEFAULT_DATE_TIME_FORMATTER.pattern(), false); @@ -262,7 +262,7 @@ public TypeParser(Resolution resolution) { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); builder.withResolution(resolution); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java index db9b4306f2f5c..baa5fe5b85931 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java @@ -71,7 +71,6 @@ public Builder(RootObjectMapper.Builder builder, MapperService mapperService) { this.builderContext = new Mapper.BuilderContext(indexSettings, new ContentPath(1)); this.rootObjectMapper = builder.build(builderContext); - final String type = rootObjectMapper.name(); final DocumentMapper existingMapper = mapperService.documentMapper(); final Version indexCreatedVersion = mapperService.getIndexSettings().getIndexVersionCreated(); final Map metadataMapperParsers = @@ -97,7 +96,7 @@ public Builder meta(Map meta) { return this; } - public Builder put(MetadataFieldMapper.Builder mapper) { + public Builder put(MetadataFieldMapper.Builder mapper) { MetadataFieldMapper metadataMapper = mapper.build(builderContext); metadataMappers.put(metadataMapper.getClass(), metadataMapper); return this; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java index 033a37b66eeed..fc4b477472f4e 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java @@ -619,7 +619,7 @@ private static void parseNullValue(ParseContext context, ObjectMapper parentMapp } } - private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, + private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, MappedFieldType fieldType, String currentFieldName) { Mapper.Builder builder = null; if (fieldType instanceof TextFieldType) { @@ -666,15 +666,15 @@ private static Mapper.Builder createBuilderFromFieldType(final ParseContext return builder; } - private static Mapper.Builder newLongBuilder(String name) { + private static Mapper.Builder newLongBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.LONG); } - private static Mapper.Builder newFloatBuilder(String name) { + private static Mapper.Builder newFloatBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.FLOAT); } - private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { + private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { DateFieldMapper.Builder builder = new DateFieldMapper.Builder(name); if (dateTimeFormatter != null) { builder.format(dateTimeFormatter.pattern()).locale(dateTimeFormatter.locale()); @@ -682,7 +682,7 @@ private static Mapper.Builder createBuilderFromFieldType(final ParseContext return builder; } - private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, + private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, XContentParser.Token token, String currentFieldName) throws IOException { if (token == XContentParser.Token.VALUE_STRING) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java index 8d87b4f73ec43..5a1e28f9e2179 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java @@ -106,7 +106,7 @@ public Mapper.Builder parse(String name, Map node, ParserContext } } - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { private String name; private String path; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java index f84789eb5f060..17ed8a71a7698 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java @@ -56,7 +56,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable { Setting.boolSetting("index.mapping.ignore_malformed", false, Property.IndexScope); public static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", false, Property.IndexScope); - public abstract static class Builder extends Mapper.Builder { + public abstract static class Builder extends Mapper.Builder { protected final MappedFieldType fieldType; protected final MappedFieldType defaultFieldType; @@ -192,7 +192,7 @@ public Builder nullValue(Object nullValue) { return this; } - public T addMultiField(Mapper.Builder mapperBuilder) { + public T addMultiField(Mapper.Builder mapperBuilder) { multiFieldsBuilder.add(mapperBuilder); return builder; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java index 70f0c5838a827..6503afb9c985b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java @@ -71,7 +71,7 @@ public static class Defaults { } } - private static class Builder extends MetadataFieldMapper.Builder { + private static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; private Builder(MappedFieldType existing) { @@ -100,7 +100,7 @@ public static class TypeParser implements MetadataFieldMapper.TypeParser { + "will be removed in a future major version. Please remove it from your mappings and templates."; @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java index 4b3abf6f89ed0..f6a6816adba7d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java @@ -49,7 +49,7 @@ public class GeoPointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new GeoPointFieldType(), new GeoPointFieldType()); builder = this; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java index 13d01d949152a..f526cd3acbde9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java @@ -53,7 +53,7 @@ public class GeoShapeFieldMapper extends AbstractShapeGeometryFieldMapper { + GeoShapeFieldType> { public Builder(String name) { super (name, new GeoShapeFieldType(), new GeoShapeFieldType()); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java index 7087796965ec8..f399fddc84419 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java @@ -97,7 +97,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java index 02734d758a3d6..eb0abc15f2c18 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java @@ -57,7 +57,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -71,7 +71,7 @@ public IgnoredFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java index e220c84ac4b9d..810e7b96abf64 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -73,7 +73,7 @@ public IndexFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java index 25de00a3efbc4..217d3f886c120 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java @@ -63,7 +63,7 @@ public static class Defaults { public static final Explicit IGNORE_MALFORMED = new Explicit<>(false, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; @@ -101,7 +101,7 @@ public TypeParser() { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java index af52e1edacee4..c6e10436143df 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected String nullValue = Defaults.NULL_VALUE; protected int ignoreAbove = Defaults.IGNORE_ABOVE; @@ -151,7 +151,7 @@ public KeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { KeywordFieldMapper.Builder builder = new KeywordFieldMapper.Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java index a0f4fc7a6aba9..659a7e2acc656 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java @@ -180,7 +180,7 @@ private static void checkPrefixTreeSupport(String fieldName) { private static final DeprecationLogger DEPRECATION_LOGGER = new DeprecationLogger(logger); public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + LegacyGeoShapeFieldMapper.GeoShapeFieldType> { DeprecatedParameters deprecatedParameters; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java index e9ccd69b20cc5..054a7725b8db1 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java @@ -56,7 +56,7 @@ public Version indexCreatedVersion() { } } - public abstract static class Builder { + public abstract static class Builder { public String name; @@ -71,7 +71,7 @@ public String name() { } /** Returns a newly built mapper. */ - public abstract Y build(BuilderContext context); + public abstract Mapper build(BuilderContext context); } public interface TypeParser { @@ -144,7 +144,7 @@ static class MultiFieldParserContext extends ParserContext { } - Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; + Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; } private final String simpleName; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java index 837340c04d52b..fe4f4311ca707 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java @@ -624,7 +624,7 @@ public MappedFieldType unmappedFieldType(String type) { if (typeParser == null) { throw new IllegalArgumentException("No mapper found for type [" + type + "]"); } - final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); + final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); final BuilderContext builderContext = new BuilderContext(indexSettings.getSettings(), new ContentPath(1)); fieldType = ((FieldMapper)builder.build(builderContext)).fieldType(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java index 614a17883e23e..8b910e82d30db 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java @@ -33,7 +33,7 @@ public abstract class MetadataFieldMapper extends FieldMapper { public interface TypeParser extends Mapper.TypeParser { @Override - MetadataFieldMapper.Builder parse(String name, Map node, + MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; /** @@ -45,10 +45,12 @@ MetadataFieldMapper.Builder parse(String name, Map node, } @SuppressWarnings("rawtypes") - public abstract static class Builder extends FieldMapper.Builder { + public abstract static class Builder extends FieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } + + public abstract MetadataFieldMapper build(BuilderContext context); } protected MetadataFieldMapper(String simpleName, MappedFieldType fieldType, MappedFieldType defaultFieldType, Settings indexSettings) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java index 752c32410aa0e..9d1725f6d0bff 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java @@ -72,7 +72,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(name(parserContext.mapperService().getIndexSettings().getSettings()) + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java index f2895447e030e..e666ea69920a3 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java @@ -76,7 +76,7 @@ public static class Defaults { public static final Explicit COERCE = new Explicit<>(true, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Boolean coerce; @@ -144,7 +144,7 @@ public TypeParser(NumberType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java index ce1c6a5da8ced..c9d1b8fae75b2 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java @@ -94,7 +94,7 @@ public boolean isIncludeInRoot() { } @SuppressWarnings("rawtypes") - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { protected boolean enabled = Defaults.ENABLED; @@ -131,8 +131,7 @@ public T add(Mapper.Builder builder) { } @Override - @SuppressWarnings("unchecked") - public Y build(BuilderContext context) { + public ObjectMapper build(BuilderContext context) { context.path().add(name); Map mappers = new HashMap<>(); @@ -149,7 +148,7 @@ public Y build(BuilderContext context) { ObjectMapper objectMapper = createMapper(name, context.path().pathAsText(name), enabled, nested, dynamic, mappers, context.indexSettings()); - return (Y) objectMapper; + return objectMapper; } protected ObjectMapper createMapper(String name, String fullPath, boolean enabled, Nested nested, Dynamic dynamic, @@ -278,9 +277,9 @@ protected static void parseProperties(ObjectMapper.Builder objBuilder, Map fieldBuilder = typeParser.parse(realFieldName, propNode, parserContext); + Mapper.Builder fieldBuilder = typeParser.parse(realFieldName, propNode, parserContext); for (int i = fieldNameParts.length - 2; i >= 0; --i) { - ObjectMapper.Builder intermediate = new ObjectMapper.Builder<>(fieldNameParts[i]); + ObjectMapper.Builder intermediate = new ObjectMapper.Builder<>(fieldNameParts[i]); intermediate.add(fieldBuilder); fieldBuilder = intermediate; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java index 820aea741846c..5f37163b195ba 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java @@ -77,7 +77,7 @@ public static class Defaults { static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", true, Setting.Property.IndexScope); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean coerce; private Locale locale = Locale.ROOT; private String pattern; @@ -154,7 +154,7 @@ public TypeParser(RangeType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java index 5d7957e139599..0cb6c8dd286ff 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java @@ -59,7 +59,7 @@ public static class Defaults { public static final boolean NUMERIC_DETECTION = false; } - public static class Builder extends ObjectMapper.Builder { + public static class Builder extends ObjectMapper.Builder { protected Explicit dynamicTemplates = new Explicit<>(new DynamicTemplate[0], false); protected Explicit dynamicDateTimeFormatters = new Explicit<>(Defaults.DYNAMIC_DATE_TIME_FORMATTERS, false); @@ -84,7 +84,7 @@ public Builder dynamicTemplates(Collection templates) { @Override public RootObjectMapper build(BuilderContext context) { fixRedundantIncludes(this, true); - return super.build(context); + return (RootObjectMapper) super.build(context); } /** @@ -373,7 +373,7 @@ private static void validateDynamicTemplate(Mapper.TypeParser.ParserContext pars Map fieldTypeConfig = dynamicTemplate.mappingForName("__dummy__", defaultDynamicType); fieldTypeConfig.remove("type"); try { - Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); + Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); if (fieldTypeConfig.isEmpty()) { Settings indexSettings = parserContext.mapperService().getIndexSettings().getSettings(); BuilderContext builderContext = new BuilderContext(indexSettings, new ContentPath(1)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java index b7cf5fd77a807..703394c0de8c1 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { public static final boolean REQUIRED = false; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean required = Defaults.REQUIRED; @@ -79,7 +79,7 @@ public RoutingFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java index 45612a51595f3..8ddfc8066401b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java @@ -105,7 +105,7 @@ public static class SeqNoDefaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder() { super(SeqNoDefaults.NAME, SeqNoDefaults.FIELD_TYPE, SeqNoDefaults.FIELD_TYPE); @@ -119,7 +119,7 @@ public SeqNoFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java index 19cca6a7bd03d..8f39bcf3bec2d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; @@ -108,7 +108,7 @@ public SourceFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java index 6c28958d07dc3..207426f31ab88 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java @@ -110,7 +110,7 @@ public static class Defaults { public static final int POSITION_INCREMENT_GAP = 100; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; private int minPrefixChars = -1; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java index bdaf90c60cf1d..7022cff04ee17 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java index 4c2fdbdd73725..f451909fbe481 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java @@ -146,7 +146,7 @@ private static void parseAnalyzersAndTermVectors(FieldMapper.Builder builder, St } } - public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { + public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { builder.omitNorms(XContentMapValues.nodeBooleanValue(propNode, fieldName + ".norms") == false); } @@ -154,7 +154,7 @@ public static void parseNorms(FieldMapper.Builder builder, String fieldName * Parse text field attributes. In addition to {@link #parseField common attributes} * this will parse analysis and term-vectors related settings. */ - public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, + public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseField(builder, name, fieldNode, parserContext); parseAnalyzersAndTermVectors(builder, name, fieldNode, parserContext); @@ -172,7 +172,7 @@ public static void parseTextField(FieldMapper.Builder builder, String name, /** * Parse the {@code meta} key of the mapping. */ - public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { + public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { Object metaObject = fieldNode.remove("meta"); if (metaObject == null) { // no meta @@ -218,7 +218,7 @@ public static void parseMeta(FieldMapper.Builder builder, String name, Map< /** * Parse common field attributes such as {@code doc_values} or {@code store}. */ - public static void parseField(FieldMapper.Builder builder, String name, Map fieldNode, + public static void parseField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseMeta(builder, name, fieldNode); for (Iterator> iterator = fieldNode.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java index 39d7e67ed2c57..d8e8966992598 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java @@ -56,7 +56,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java index d181b53537400..30645ffd84a97 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java @@ -56,7 +56,7 @@ public static class Names { public static final String FIELD_SHAPE = "shape"; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private BinaryFieldMapper.Builder binBuilder = new BinaryFieldMapper.Builder(Names.FIELD_BIN); private BooleanFieldMapper.Builder boolBuilder = new BooleanFieldMapper.Builder(Names.FIELD_BOOL); @@ -84,7 +84,7 @@ public ExternalMapper build(BuilderContext context) { context.path().add(name); BinaryFieldMapper binMapper = binBuilder.build(context); BooleanFieldMapper boolMapper = boolBuilder.build(context); - GeoPointFieldMapper pointMapper = latLonPointBuilder.build(context); + GeoPointFieldMapper pointMapper = (GeoPointFieldMapper) latLonPointBuilder.build(context); AbstractShapeGeometryFieldMapper shapeMapper = shapeBuilder.build(context); FieldMapper stringMapper = (FieldMapper)stringBuilder.build(context); context.path().remove(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java index 9f18ba9815472..844d824083924 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java @@ -74,7 +74,7 @@ public void postParse(ParseContext context) throws IOException { context.doc().add(new StringField(FIELD_NAME, FIELD_VALUE, Store.YES)); } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected Builder() { super(FIELD_NAME, FIELD_TYPE, FIELD_TYPE); @@ -90,7 +90,7 @@ public ExternalMetadataMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java index bc97b1a68dddf..72588e0323943 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java @@ -50,7 +50,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java index 5558b068e1042..b4074833ce9dc 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java @@ -19,20 +19,6 @@ package org.elasticsearch.index.mapper; -import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_ANALYZER_NAME; -import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_SEARCH_ANALYZER_NAME; -import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_SEARCH_QUOTED_ANALYZER_NAME; -import static org.hamcrest.core.IsEqual.equalTo; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.IntStream; - import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardAnalyzer; @@ -56,6 +42,20 @@ import org.elasticsearch.test.VersionUtils; import org.hamcrest.Matchers; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_ANALYZER_NAME; +import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_SEARCH_ANALYZER_NAME; +import static org.elasticsearch.index.analysis.AnalysisRegistry.DEFAULT_SEARCH_QUOTED_ANALYZER_NAME; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + public class TypeParsersTests extends ESTestCase { private static final IndexMetadata EMPTY_INDEX_METADATA = IndexMetadata.builder("") @@ -232,7 +232,7 @@ public TokenStream create(TokenStream tokenStream) { } public void testParseMeta() { - FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); + FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); Mapper.TypeParser.ParserContext parserContext = new Mapper.TypeParser.ParserContext(null, null, null, null, null); { diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java index d0febab81085a..311b5fb6c2f32 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java @@ -56,7 +56,7 @@ public class IndicesModuleTests extends ESTestCase { private static class FakeMapperParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } @@ -64,7 +64,7 @@ private static class FakeMapperParser implements Mapper.TypeParser { private static class FakeMetadataMapperParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java index cc64098cff6b5..3cd48ed73fd5e 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java @@ -86,7 +86,7 @@ public static class Defaults { public static final ParseField COUNTS_FIELD = new ParseField("counts"); public static final ParseField VALUES_FIELD = new ParseField("values"); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected Boolean ignoreMalformed; public Builder(String name) { @@ -126,8 +126,7 @@ public HistogramFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, - Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new HistogramFieldMapper.Builder(name); TypeParsers.parseMeta(builder, name, node); diff --git a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java index 0551d7ba84890..8f025fc1c8011 100644 --- a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java +++ b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java @@ -60,7 +60,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); @@ -88,7 +88,7 @@ public ConstantKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Object value = null; if (node.containsKey("value")) { value = node.remove("value"); diff --git a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java index 9f0cdb6900c37..e3888243b9d37 100644 --- a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java +++ b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java @@ -110,7 +110,7 @@ private static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int depthLimit = Defaults.DEPTH_LIMIT; private int ignoreAbove = Defaults.IGNORE_ABOVE; @@ -161,7 +161,7 @@ public Builder splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { } @Override - public Builder addMultiField(Mapper.Builder mapperBuilder) { + public Builder addMultiField(Mapper.Builder mapperBuilder) { throw new UnsupportedOperationException("[fields] is not supported for [" + CONTENT_TYPE + "] fields."); } @@ -189,7 +189,7 @@ public FlatObjectFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java index c7aac2ddfdd21..b8c3eee7363f3 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java @@ -65,7 +65,7 @@ public class GeoShapeWithDocValuesFieldMapper extends GeoShapeFieldMapper { @SuppressWarnings("rawtypes") public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + GeoShapeWithDocValuesFieldType> { public Builder(String name) { super (name, new GeoShapeWithDocValuesFieldType(), new GeoShapeWithDocValuesFieldType()); } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java index aefae8607092e..a986127dfc551 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java @@ -34,7 +34,7 @@ public class PointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new PointFieldType(), new PointFieldType()); builder = this; diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java index 2ea86054dda6f..a865768d00008 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java @@ -45,7 +45,7 @@ public static class Defaults extends AbstractShapeGeometryFieldMapper.Defaults { @SuppressWarnings({"unchecked", "rawtypes"}) public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + ShapeFieldType> { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java index 4bd6f609cbfeb..3408fc26427ba 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int dims = 0; public Builder(String name) { @@ -97,7 +97,7 @@ public DenseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { DenseVectorFieldMapper.Builder builder = new DenseVectorFieldMapper.Builder(name); Object dimsField = node.remove("dims"); if (dimsField == null) { diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java index 9308de86b664a..d5c03e2400e47 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java @@ -53,7 +53,7 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); @@ -71,7 +71,7 @@ public SparseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { if (parserContext.indexVersionCreated().onOrAfter(Version.V_8_0_0)) { throw new IllegalArgumentException(ERROR_MESSAGE); diff --git a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java index da0d781e4ffe2..d35baaba3b175 100644 --- a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java +++ b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java @@ -100,7 +100,7 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected int ignoreAbove = Defaults.IGNORE_ABOVE; @@ -179,7 +179,7 @@ public WildcardFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { WildcardFieldMapper.Builder builder = new WildcardFieldMapper.Builder(name); parseField(builder, name, node, parserContext); From 9e928495aad03d4f65daac1b71d3e6ee055d4f52 Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Thu, 14 May 2020 15:10:35 +0100 Subject: [PATCH 2/3] Remove all generic params from Mapper.Builder --- .../index/mapper/RankFeatureFieldMapper.java | 8 +-- .../mapper/RankFeatureMetaFieldMapper.java | 4 +- .../index/mapper/RankFeaturesFieldMapper.java | 5 +- .../index/mapper/ScaledFloatFieldMapper.java | 18 +++--- .../mapper/SearchAsYouTypeFieldMapper.java | 8 +-- .../index/mapper/TokenCountFieldMapper.java | 11 ++-- .../join/mapper/MetaJoinFieldMapper.java | 3 +- .../join/mapper/ParentIdFieldMapper.java | 6 +- .../join/mapper/ParentJoinFieldMapper.java | 10 ++-- .../percolator/PercolatorFieldMapper.java | 2 +- .../ICUCollationKeywordFieldMapper.java | 48 ++++++--------- .../AnnotatedTextFieldMapper.java | 11 ++-- .../mapper/murmur3/Murmur3FieldMapper.java | 5 +- .../index/mapper/size/SizeFieldMapper.java | 8 +-- .../mapper/AbstractGeometryFieldMapper.java | 7 +-- .../AbstractPointGeometryFieldMapper.java | 3 +- .../AbstractShapeGeometryFieldMapper.java | 4 +- .../index/mapper/BinaryFieldMapper.java | 9 ++- .../index/mapper/BooleanFieldMapper.java | 3 +- .../index/mapper/CompletionFieldMapper.java | 5 +- .../index/mapper/DateFieldMapper.java | 16 +++-- .../index/mapper/DocumentMapper.java | 2 +- .../index/mapper/DocumentParser.java | 20 ++++--- .../index/mapper/FieldAliasMapper.java | 2 +- .../index/mapper/FieldMapper.java | 60 +++++++------------ .../index/mapper/FieldNamesFieldMapper.java | 7 +-- .../index/mapper/GeoPointFieldMapper.java | 9 ++- .../index/mapper/GeoShapeFieldMapper.java | 3 +- .../index/mapper/IdFieldMapper.java | 2 +- .../index/mapper/IgnoredFieldMapper.java | 4 +- .../index/mapper/IndexFieldMapper.java | 4 +- .../index/mapper/IpFieldMapper.java | 8 +-- .../index/mapper/KeywordFieldMapper.java | 18 +++--- .../mapper/LegacyGeoShapeFieldMapper.java | 3 +- .../elasticsearch/index/mapper/Mapper.java | 6 +- .../index/mapper/MapperService.java | 2 +- .../index/mapper/MetadataFieldMapper.java | 5 +- .../index/mapper/NestedPathFieldMapper.java | 2 +- .../index/mapper/NumberFieldMapper.java | 20 ++++--- .../index/mapper/ObjectMapper.java | 24 ++++---- .../index/mapper/RangeFieldMapper.java | 19 +++--- .../index/mapper/RootObjectMapper.java | 17 +++--- .../index/mapper/RoutingFieldMapper.java | 7 +-- .../index/mapper/SeqNoFieldMapper.java | 4 +- .../index/mapper/SourceFieldMapper.java | 13 ++-- .../index/mapper/TextFieldMapper.java | 19 +++--- .../index/mapper/TypeFieldMapper.java | 2 +- .../index/mapper/TypeParsers.java | 8 +-- .../index/mapper/VersionFieldMapper.java | 2 +- .../index/mapper/ExternalMapper.java | 13 ++-- .../index/mapper/ExternalMetadataMapper.java | 4 +- .../index/mapper/FakeStringFieldMapper.java | 3 +- .../index/mapper/ObjectMapperMergeTests.java | 2 +- .../index/mapper/TypeParsersTests.java | 2 +- .../indices/IndicesModuleTests.java | 4 +- .../metrics/MinAggregatorTests.java | 40 ++++++------- .../search/sort/AbstractSortTestCase.java | 2 +- .../aggregations/AggregatorTestCase.java | 4 +- .../mapper/HistogramFieldMapper.java | 8 +-- .../mapper/ConstantKeywordFieldMapper.java | 8 +-- .../mapper/FlatObjectFieldMapper.java | 19 +++--- .../GeoShapeWithDocValuesFieldMapper.java | 4 +- .../index/mapper/PointFieldMapper.java | 3 +- .../index/mapper/ShapeFieldMapper.java | 6 +- .../mapper/DenseVectorFieldMapper.java | 5 +- .../mapper/SparseVectorFieldMapper.java | 5 +- .../wildcard/mapper/WildcardFieldMapper.java | 13 ++-- 67 files changed, 275 insertions(+), 356 deletions(-) diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java index 451b72dc0ffa1..32e36aa0c0454 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java @@ -57,11 +57,10 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -69,9 +68,8 @@ public RankFeatureFieldType fieldType() { return (RankFeatureFieldType) super.fieldType(); } - public Builder positiveScoreImpact(boolean v) { + public void positiveScoreImpact(boolean v) { fieldType().setPositiveScoreImpact(v); - return builder; } @Override @@ -85,7 +83,7 @@ public RankFeatureFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeatureFieldMapper.Builder builder = new RankFeatureFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java index 9a30956c5802f..c439d3f3a2aa9 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java @@ -55,7 +55,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -70,7 +70,7 @@ public RankFeatureMetaFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java index b743cf42bcb2a..2495a9596cfe9 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java @@ -51,11 +51,10 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -74,7 +73,7 @@ public RankFeaturesFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeaturesFieldMapper.Builder builder = new RankFeaturesFieldMapper.Builder(name); return builder; } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java index bf567a86ca226..070454eebb909 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java @@ -82,7 +82,7 @@ public class ScaledFloatFieldMapper extends FieldMapper { // use the same default as numbers private static final Setting COERCE_SETTING = NumberFieldMapper.COERCE_SETTING; - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private boolean scalingFactorSet = false; private Boolean ignoreMalformed; @@ -90,18 +90,16 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, new ScaledFloatFieldType(), new ScaledFloatFieldType()); - builder = this; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return builder; } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { throw new MapperParsingException( - "index_options not allowed in field [" + name + "] of type [" + builder.fieldType().typeName() + "]"); + "index_options not allowed in field [" + name + "] of type [" + this.fieldType().typeName() + "]"); } protected Explicit ignoreMalformed(BuilderContext context) { @@ -114,15 +112,13 @@ protected Explicit ignoreMalformed(BuilderContext context) { return Defaults.IGNORE_MALFORMED; } - public Builder coerce(boolean coerce) { + public void coerce(boolean coerce) { this.coerce = coerce; - return builder; } - public Builder scalingFactor(double scalingFactor) { + public void scalingFactor(double scalingFactor) { ((ScaledFloatFieldType) fieldType).setScalingFactor(scalingFactor); scalingFactorSet = true; - return this; } protected Explicit coerce(BuilderContext context) { @@ -149,7 +145,7 @@ public ScaledFloatFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java index 273fd93daef7b..0e18a4068418b 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java @@ -104,7 +104,7 @@ public static class Defaults { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { @@ -129,21 +129,19 @@ public Mapper.Builder parse(String name, } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxShingleSize = Defaults.MAX_SHINGLE_SIZE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - this.builder = this; } - public Builder maxShingleSize(int maxShingleSize) { + public void maxShingleSize(int maxShingleSize) { if (maxShingleSize < MAX_SHINGLE_SIZE_LOWER_BOUND || maxShingleSize > MAX_SHINGLE_SIZE_UPPER_BOUND) { throw new MapperParsingException("[max_shingle_size] must be at least [" + MAX_SHINGLE_SIZE_LOWER_BOUND + "] and at most " + "[" + MAX_SHINGLE_SIZE_UPPER_BOUND + "], got [" + maxShingleSize + "]"); } this.maxShingleSize = maxShingleSize; - return builder; } @Override diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java index 86ec61f833f82..35c8377289df4 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java @@ -47,27 +47,24 @@ public static class Defaults { public static final boolean DEFAULT_POSITION_INCREMENTS = true; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private NamedAnalyzer analyzer; private boolean enablePositionIncrements = Defaults.DEFAULT_POSITION_INCREMENTS; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } - public Builder analyzer(NamedAnalyzer analyzer) { + public void analyzer(NamedAnalyzer analyzer) { this.analyzer = analyzer; - return this; } public NamedAnalyzer analyzer() { return analyzer; } - public Builder enablePositionIncrements(boolean enablePositionIncrements) { + public void enablePositionIncrements(boolean enablePositionIncrements) { this.enablePositionIncrements = enablePositionIncrements; - return this; } public boolean enablePositionIncrements() { @@ -84,7 +81,7 @@ public TokenCountFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { TokenCountFieldMapper.Builder builder = new TokenCountFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java index a773f78925596..c0bc34c920c57 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java @@ -57,10 +57,9 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { Builder() { super(NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java index 7189f3f3bb655..2cdcf46f2fa44 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java @@ -66,13 +66,12 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final String parent; private final Set children; Builder(String name, String parent, Set children) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; this.parent = parent; this.children = children; } @@ -81,9 +80,8 @@ public Set getChildren() { return children; } - public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); - return builder; } @Override diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java index 5fa6799aa3f44..9bb0a60a20236 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java @@ -121,13 +121,12 @@ private static void checkParentFields(String name, List map } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { final List parentIdFieldBuilders = new ArrayList<>(); boolean eagerGlobalOrdinals = true; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -138,12 +137,11 @@ public JoinFieldType fieldType() { public Builder addParent(String parent, Set children) { String parentIdFieldName = getParentIdFieldName(name, parent); parentIdFieldBuilders.add(new ParentIdFieldMapper.Builder(parentIdFieldName, parent, children)); - return builder; + return this; } - public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { this.eagerGlobalOrdinals = eagerGlobalOrdinals; - return builder; } @Override @@ -168,7 +166,7 @@ public ParentJoinFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { final IndexSettings indexSettings = parserContext.mapperService().getIndexSettings(); checkIndexCompatibility(indexSettings, name); diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java index f1022857f6517..d595d526f41bf 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java @@ -108,7 +108,7 @@ public class PercolatorFieldMapper extends FieldMapper { static final String RANGE_FIELD_NAME = "range_field"; static final String MINIMUM_SHOULD_MATCH_FIELD_NAME = "minimum_should_match_field"; - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final Supplier queryShardContext; diff --git a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java index 2534f7e1e4341..1522e383fbc60 100644 --- a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java +++ b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java @@ -221,7 +221,7 @@ public DocValueFormat docValueFormat(final String format, final ZoneId timeZone) } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private String rules = null; private String language = null; private String country = null; @@ -238,7 +238,6 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -247,129 +246,116 @@ public CollationFieldType fieldType() { } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [" + CONTENT_TYPE + "] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - return super.indexOptions(indexOptions); + super.indexOptions(indexOptions); } - public Builder ignoreAbove(int ignoreAbove) { + public void ignoreAbove(int ignoreAbove) { if (ignoreAbove < 0) { throw new IllegalArgumentException("[ignore_above] must be positive, got " + ignoreAbove); } this.ignoreAbove = ignoreAbove; - return this; } public String rules() { return rules; } - public Builder rules(final String rules) { + public void rules(final String rules) { this.rules = rules; - return this; } public String language() { return language; } - public Builder language(final String language) { + public void language(final String language) { this.language = language; - return this; } public String country() { return country; } - public Builder country(final String country) { + public void country(final String country) { this.country = country; - return this; } public String variant() { return variant; } - public Builder variant(final String variant) { + public void variant(final String variant) { this.variant = variant; - return this; } public String strength() { return strength; } - public Builder strength(final String strength) { + public void strength(final String strength) { this.strength = strength; - return this; } public String decomposition() { return decomposition; } - public Builder decomposition(final String decomposition) { + public void decomposition(final String decomposition) { this.decomposition = decomposition; - return this; } public String alternate() { return alternate; } - public Builder alternate(final String alternate) { + public void alternate(final String alternate) { this.alternate = alternate; - return this; } public boolean caseLevel() { return caseLevel; } - public Builder caseLevel(final boolean caseLevel) { + public void caseLevel(final boolean caseLevel) { this.caseLevel = caseLevel; - return this; } public String caseFirst() { return caseFirst; } - public Builder caseFirst(final String caseFirst) { + public void caseFirst(final String caseFirst) { this.caseFirst = caseFirst; - return this; } public boolean numeric() { return numeric; } - public Builder numeric(final boolean numeric) { + public void numeric(final boolean numeric) { this.numeric = numeric; - return this; } public String variableTop() { return variableTop; } - public Builder variableTop(final String variableTop) { + public void variableTop(final String variableTop) { this.variableTop = variableTop; - return this; } public boolean hiraganaQuaternaryMode() { return hiraganaQuaternaryMode; } - public Builder hiraganaQuaternaryMode(final boolean hiraganaQuaternaryMode) { + public void hiraganaQuaternaryMode(final boolean hiraganaQuaternaryMode) { this.hiraganaQuaternaryMode = hiraganaQuaternaryMode; - return this; } public Collator buildCollator() { @@ -481,7 +467,7 @@ public ICUCollationKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java index 20d3b6e464a2b..1759d4deeb031 100644 --- a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java +++ b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java @@ -85,13 +85,12 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -99,12 +98,11 @@ public AnnotatedTextFieldType fieldType() { return (AnnotatedTextFieldType) super.fieldType(); } - public Builder positionIncrementGap(int positionIncrementGap) { + public void positionIncrementGap(int positionIncrementGap) { if (positionIncrementGap < 0) { throw new MapperParsingException("[positions_increment_gap] must be positive, got " + positionIncrementGap); } this.positionIncrementGap = positionIncrementGap; - return this; } @Override @@ -112,7 +110,8 @@ public Builder docValues(boolean docValues) { if (docValues) { throw new IllegalArgumentException("[" + CONTENT_TYPE + "] fields do not support doc values"); } - return super.docValues(docValues); + super.docValues(docValues); + return this; } @Override @@ -147,7 +146,7 @@ name, fieldType(), defaultFieldType, positionIncrementGap, public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse( + public Mapper.Builder parse( String fieldName, Map node, ParserContext parserContext) throws MapperParsingException { AnnotatedTextFieldMapper.Builder builder = new AnnotatedTextFieldMapper.Builder(fieldName); diff --git a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java index e0c0917d353e1..2e91b9ef0a12c 100644 --- a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java +++ b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java @@ -55,11 +55,10 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -81,7 +80,7 @@ protected void setupFieldType(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); diff --git a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java index b3ba775b18957..996631826e712 100644 --- a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java +++ b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java @@ -62,19 +62,17 @@ private static MappedFieldType defaultFieldType(Version indexCreated) { return defaultFieldType; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED; private Builder(MappedFieldType existing, Version indexCreated) { super(NAME, existing == null ? defaultFieldType(indexCreated) : existing.clone(), defaultFieldType(indexCreated)); - builder = this; } - public Builder enabled(EnabledAttributeMapper enabled) { + public void enabled(EnabledAttributeMapper enabled) { this.enabledState = enabled; - return builder; } @Override @@ -86,7 +84,7 @@ public SizeFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME), parserContext.indexVersionCreated()); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java index fcba73124433b..364424d0341a9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java @@ -76,8 +76,8 @@ public interface Parser { Parsed parse(XContentParser parser, AbstractGeometryFieldMapper mapper) throws IOException, ParseException; } - public abstract static class Builder - extends FieldMapper.Builder { + public abstract static class Builder + extends FieldMapper.Builder { protected Boolean ignoreMalformed; protected Boolean ignoreZValue; @@ -92,9 +92,8 @@ public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFi this.ignoreZValue = ignoreZValue; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return this; } protected Explicit ignoreMalformed(BuilderContext context) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java index 445c899209f3d..12a460bd1c19e 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java @@ -44,8 +44,7 @@ public static class Names extends AbstractGeometryFieldMapper.Names { public static final ParseField NULL_VALUE = new ParseField("null_value"); } - public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java index 955a29003e6c8..5c123ea0c30f0 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java @@ -49,8 +49,8 @@ public static class Defaults extends AbstractGeometryFieldMapper.Defaults { public static final Explicit COERCE = new Explicit<>(false, false); } - public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder + extends AbstractGeometryFieldMapper.Builder { protected Boolean coerce; protected Orientation orientation; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java index 712a798727145..1e5301c307387 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java @@ -62,11 +62,16 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; + } + + @Override + public Builder docValues(boolean docValues) { + super.docValues(docValues); + return this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java index b9f5f4e984b42..ada53e9d64d99 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java @@ -74,11 +74,10 @@ public static class Values { public static final BytesRef FALSE = new BytesRef("F"); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - this.builder = this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java index 493ac8986c3ac..e5b47f4a5d5d3 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java @@ -123,7 +123,7 @@ public static class Fields { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { CompletionFieldMapper.Builder builder = new CompletionFieldMapper.Builder(name); NamedAnalyzer indexAnalyzer = null; @@ -353,7 +353,7 @@ public void checkCompatibility(MappedFieldType fieldType, List conflicts /** * Builder for {@link CompletionFieldMapper} */ - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxInputLength = Defaults.DEFAULT_MAX_INPUT_LENGTH; private ContextMappings contextMappings = null; @@ -367,7 +367,6 @@ public static class Builder extends FieldMapper.Builder { */ public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } /** diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java index ebe59344d196b..b9e50a8e8f036 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java @@ -172,7 +172,7 @@ public static Resolution ofOrdinal(int ord) { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Explicit format = new Explicit<>(DEFAULT_DATE_TIME_FORMATTER.pattern(), false); @@ -181,18 +181,22 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, new DateFieldType(), new DateFieldType()); - builder = this; locale = Locale.ROOT; } + @Override + public Builder index(boolean index) { + super.index(index); + return this; + } + @Override public DateFieldType fieldType() { return (DateFieldType)fieldType; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -239,7 +243,7 @@ protected void setupFieldType(BuilderContext context) { DateFormatter dateTimeFormatter = fieldType().dateTimeFormatter; boolean hasPatternChanged = Strings.hasLength(pattern) && Objects.equals(pattern, dateTimeFormatter.pattern()) == false; - if (hasPatternChanged || Objects.equals(builder.locale, dateTimeFormatter.locale()) == false) { + if (hasPatternChanged || Objects.equals(this.locale, dateTimeFormatter.locale()) == false) { fieldType().setDateTimeFormatter(DateFormatter.forPattern(pattern).withLocale(locale)); } @@ -263,7 +267,7 @@ public TypeParser(Resolution resolution) { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); builder.withResolution(resolution); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java index baa5fe5b85931..f903e640ee857 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java @@ -96,7 +96,7 @@ public Builder meta(Map meta) { return this; } - public Builder put(MetadataFieldMapper.Builder mapper) { + public Builder put(MetadataFieldMapper.Builder mapper) { MetadataFieldMapper metadataMapper = mapper.build(builderContext); metadataMappers.put(metadataMapper.getClass(), metadataMapper); return this; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java index fc4b477472f4e..77dd226703b19 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java @@ -619,14 +619,15 @@ private static void parseNullValue(ParseContext context, ObjectMapper parentMapp } } - private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, + private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, MappedFieldType fieldType, String currentFieldName) { Mapper.Builder builder = null; if (fieldType instanceof TextFieldType) { builder = context.root().findTemplateBuilder(context, currentFieldName, "text", XContentFieldType.STRING); if (builder == null) { - builder = new TextFieldMapper.Builder(currentFieldName) - .addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); + FieldMapper.Builder fieldbuilder = new TextFieldMapper.Builder(currentFieldName); + fieldbuilder.addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); + builder = fieldbuilder; } } else if (fieldType instanceof KeywordFieldType) { builder = context.root().findTemplateBuilder(context, currentFieldName, "keyword", XContentFieldType.STRING); @@ -666,15 +667,15 @@ private static Mapper.Builder createBuilderFromFieldType(final ParseContext c return builder; } - private static Mapper.Builder newLongBuilder(String name) { + private static Mapper.Builder newLongBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.LONG); } - private static Mapper.Builder newFloatBuilder(String name) { + private static Mapper.Builder newFloatBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.FLOAT); } - private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { + private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { DateFieldMapper.Builder builder = new DateFieldMapper.Builder(name); if (dateTimeFormatter != null) { builder.format(dateTimeFormatter.pattern()).locale(dateTimeFormatter.locale()); @@ -682,7 +683,7 @@ private static Mapper.Builder newDateBuilder(String name, DateFormatter dateT return builder; } - private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, + private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, XContentParser.Token token, String currentFieldName) throws IOException { if (token == XContentParser.Token.VALUE_STRING) { @@ -743,8 +744,9 @@ private static Mapper.Builder createBuilderFromDynamicValue(final ParseContex Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, XContentFieldType.STRING); if (builder == null) { - builder = new TextFieldMapper.Builder(currentFieldName) - .addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); + FieldMapper.Builder fieldbuilder = new TextFieldMapper.Builder(currentFieldName); + fieldbuilder.addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); + return fieldbuilder; } return builder; } else if (token == XContentParser.Token.VALUE_NUMBER) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java index 5a1e28f9e2179..c333892631914 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java @@ -106,7 +106,7 @@ public Mapper.Builder parse(String name, Map node, ParserContext } } - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { private String name; private String path; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java index 17ed8a71a7698..b786aaa8172e1 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java @@ -56,7 +56,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable { Setting.boolSetting("index.mapping.ignore_malformed", false, Property.IndexScope); public static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", false, Property.IndexScope); - public abstract static class Builder extends Mapper.Builder { + public abstract static class Builder extends Mapper.Builder { protected final MappedFieldType fieldType; protected final MappedFieldType defaultFieldType; @@ -80,7 +80,7 @@ public MappedFieldType fieldType() { return fieldType; } - public T index(boolean index) { + public Builder index(boolean index) { if (index) { if (fieldType.indexOptions() == IndexOptions.NONE) { /* @@ -101,105 +101,92 @@ public T index(boolean index) { } else { fieldType.setIndexOptions(IndexOptions.NONE); } - return builder; + return this; } protected IndexOptions getDefaultIndexOption() { return defaultOptions; } - public T store(boolean store) { + public Builder store(boolean store) { this.fieldType.setStored(store); - return builder; + return this; } - public T docValues(boolean docValues) { + public Builder docValues(boolean docValues) { this.fieldType.setHasDocValues(docValues); this.docValuesSet = true; - return builder; + return this; } - public T storeTermVectors(boolean termVectors) { + public void storeTermVectors(boolean termVectors) { if (termVectors != this.fieldType.storeTermVectors()) { this.fieldType.setStoreTermVectors(termVectors); } // don't set it to false, it is default and might be flipped by a more specific option - return builder; } - public T storeTermVectorOffsets(boolean termVectorOffsets) { + public void storeTermVectorOffsets(boolean termVectorOffsets) { if (termVectorOffsets) { this.fieldType.setStoreTermVectors(termVectorOffsets); } this.fieldType.setStoreTermVectorOffsets(termVectorOffsets); - return builder; } - public T storeTermVectorPositions(boolean termVectorPositions) { + public void storeTermVectorPositions(boolean termVectorPositions) { if (termVectorPositions) { this.fieldType.setStoreTermVectors(termVectorPositions); } this.fieldType.setStoreTermVectorPositions(termVectorPositions); - return builder; } - public T storeTermVectorPayloads(boolean termVectorPayloads) { + public void storeTermVectorPayloads(boolean termVectorPayloads) { if (termVectorPayloads) { this.fieldType.setStoreTermVectors(termVectorPayloads); } this.fieldType.setStoreTermVectorPayloads(termVectorPayloads); - return builder; } - public T boost(float boost) { + public void boost(float boost) { this.fieldType.setBoost(boost); - return builder; } - public T omitNorms(boolean omitNorms) { + public void omitNorms(boolean omitNorms) { this.fieldType.setOmitNorms(omitNorms); this.omitNormsSet = true; - return builder; } - public T indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { this.fieldType.setIndexOptions(indexOptions); this.indexOptionsSet = true; - return builder; } - public T indexAnalyzer(NamedAnalyzer indexAnalyzer) { + public void indexAnalyzer(NamedAnalyzer indexAnalyzer) { this.fieldType.setIndexAnalyzer(indexAnalyzer); - return builder; } - public T searchAnalyzer(NamedAnalyzer searchAnalyzer) { + public void searchAnalyzer(NamedAnalyzer searchAnalyzer) { this.fieldType.setSearchAnalyzer(searchAnalyzer); - return builder; } - public T searchQuoteAnalyzer(NamedAnalyzer searchQuoteAnalyzer) { + public void searchQuoteAnalyzer(NamedAnalyzer searchQuoteAnalyzer) { this.fieldType.setSearchQuoteAnalyzer(searchQuoteAnalyzer); - return builder; } - public T similarity(SimilarityProvider similarity) { + public void similarity(SimilarityProvider similarity) { this.fieldType.setSimilarity(similarity); - return builder; } - public Builder nullValue(Object nullValue) { + public void nullValue(Object nullValue) { this.fieldType.setNullValue(nullValue); - return this; } - public T addMultiField(Mapper.Builder mapperBuilder) { + public Builder addMultiField(Mapper.Builder mapperBuilder) { multiFieldsBuilder.add(mapperBuilder); - return builder; + return this; } - public T copyTo(CopyTo copyTo) { + public void copyTo(CopyTo copyTo) { this.copyTo = copyTo; - return builder; } protected String buildFullName(BuilderContext context) { @@ -224,9 +211,8 @@ protected void setupFieldType(BuilderContext context) { } /** Set metadata on this field. */ - public T meta(Map meta) { + public void meta(Map meta) { fieldType.setMeta(meta); - return (T) this; } } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java index 6503afb9c985b..e6c794f6f0f0f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java @@ -71,16 +71,15 @@ public static class Defaults { } } - private static class Builder extends MetadataFieldMapper.Builder { + private static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; private Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); } - private Builder enabled(boolean enabled) { + private void enabled(boolean enabled) { this.enabled = enabled; - return this; } @Override @@ -100,7 +99,7 @@ public static class TypeParser implements MetadataFieldMapper.TypeParser { + "will be removed in a future major version. Please remove it from your mappings and templates."; @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java index 60a48947da01e..faecfbb47abdd 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java @@ -49,10 +49,9 @@ public class GeoPointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new GeoPointFieldType(), new GeoPointFieldType()); - builder = this; } public GeoPointFieldMapper build(BuilderContext context, String simpleName, MappedFieldType fieldType, @@ -64,6 +63,12 @@ public GeoPointFieldMapper build(BuilderContext context, String simpleName, Mapp ignoreMalformed, ignoreZValue, copyTo); } + @Override + public Builder docValues(boolean docValues) { + super.docValues(docValues); + return this; + } + @Override protected void setGeometryParser() { PointParser pointParser = new PointParser<>(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java index f526cd3acbde9..31fba60488032 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java @@ -52,8 +52,7 @@ public class GeoShapeFieldMapper extends AbstractShapeGeometryFieldMapper { public static final String CONTENT_TYPE = "geo_shape"; - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super (name, new GeoShapeFieldType(), new GeoShapeFieldType()); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java index f399fddc84419..a2d57c9dd08c9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java @@ -97,7 +97,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java index eb0abc15f2c18..234fe5043b429 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java @@ -57,7 +57,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -71,7 +71,7 @@ public IgnoredFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java index 810e7b96abf64..23ea878b86e7f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -73,7 +73,7 @@ public IndexFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java index e67e1e27c99b8..4f42c2b999a81 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java @@ -63,18 +63,16 @@ public static class Defaults { public static final Explicit IGNORE_MALFORMED = new Explicit<>(false, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; public Builder(String name) { super(name, new IpFieldType(), new IpFieldType()); - builder = this; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -101,7 +99,7 @@ public TypeParser() { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java index f211923679eae..c2ea2df8a3790 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected String nullValue = Defaults.NULL_VALUE; protected int ignoreAbove = Defaults.IGNORE_ABOVE; @@ -83,7 +83,6 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -100,28 +99,25 @@ public Builder ignoreAbove(int ignoreAbove) { } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [keyword] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - return super.indexOptions(indexOptions); + super.indexOptions(indexOptions); } - public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); - return builder; } - public Builder splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { + public void splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { fieldType().setSplitQueriesOnWhitespace(splitQueriesOnWhitespace); - return builder; } - public Builder normalizer(IndexAnalyzers indexAnalyzers, String name) { + public void normalizer(IndexAnalyzers indexAnalyzers, String name) { this.indexAnalyzers = indexAnalyzers; this.normalizerName = name; - return builder; } @Override @@ -151,7 +147,7 @@ public KeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { KeywordFieldMapper.Builder builder = new KeywordFieldMapper.Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java index 659a7e2acc656..8131cc306a105 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java @@ -179,8 +179,7 @@ private static void checkPrefixTreeSupport(String fieldName) { private static final Logger logger = LogManager.getLogger(LegacyGeoShapeFieldMapper.class); private static final DeprecationLogger DEPRECATION_LOGGER = new DeprecationLogger(logger); - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { DeprecatedParameters deprecatedParameters; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java index 054a7725b8db1..7e997550f62d5 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java @@ -56,12 +56,10 @@ public Version indexCreatedVersion() { } } - public abstract static class Builder { + public abstract static class Builder { public String name; - protected T builder; - protected Builder(String name) { this.name = name; } @@ -144,7 +142,7 @@ static class MultiFieldParserContext extends ParserContext { } - Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; + Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; } private final String simpleName; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java index fe4f4311ca707..16e3a98ad97f9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java @@ -624,7 +624,7 @@ public MappedFieldType unmappedFieldType(String type) { if (typeParser == null) { throw new IllegalArgumentException("No mapper found for type [" + type + "]"); } - final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); + final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); final BuilderContext builderContext = new BuilderContext(indexSettings.getSettings(), new ContentPath(1)); fieldType = ((FieldMapper)builder.build(builderContext)).fieldType(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java index 8b910e82d30db..894b794e50e76 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java @@ -33,7 +33,7 @@ public abstract class MetadataFieldMapper extends FieldMapper { public interface TypeParser extends Mapper.TypeParser { @Override - MetadataFieldMapper.Builder parse(String name, Map node, + MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; /** @@ -44,8 +44,7 @@ MetadataFieldMapper.Builder parse(String name, Map node, MetadataFieldMapper getDefault(ParserContext parserContext); } - @SuppressWarnings("rawtypes") - public abstract static class Builder extends FieldMapper.Builder { + public abstract static class Builder extends FieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java index 9d1725f6d0bff..f09d8fea8d586 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java @@ -72,7 +72,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(name(parserContext.mapperService().getIndexSettings().getSettings()) + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java index 8665cce17d87b..25531eae1d5a4 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java @@ -78,25 +78,28 @@ public static class Defaults { public static final Explicit COERCE = new Explicit<>(true, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Boolean coerce; public Builder(String name, NumberType type) { super(name, new NumberFieldType(type), new NumberFieldType(type)); - builder = this; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return builder; + } + + public Builder docValues(boolean docValues) { + super.docValues(docValues); + return this; } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { throw new MapperParsingException( - "index_options not allowed in field [" + name + "] of type [" + builder.fieldType().typeName() + "]"); + "index_options not allowed in field [" + name + "] of type [" + fieldType().typeName() + "]"); } protected Explicit ignoreMalformed(BuilderContext context) { @@ -109,9 +112,8 @@ protected Explicit ignoreMalformed(BuilderContext context) { return Defaults.IGNORE_MALFORMED; } - public Builder coerce(boolean coerce) { + public void coerce(boolean coerce) { this.coerce = coerce; - return builder; } protected Explicit coerce(BuilderContext context) { @@ -146,7 +148,7 @@ public TypeParser(NumberType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java index c9d1b8fae75b2..7e4427494c19d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java @@ -94,7 +94,7 @@ public boolean isIncludeInRoot() { } @SuppressWarnings("rawtypes") - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { protected boolean enabled = Defaults.ENABLED; @@ -107,27 +107,25 @@ public static class Builder extends Mapper.Builder { @SuppressWarnings("unchecked") public Builder(String name) { super(name); - this.builder = (T) this; } - public T enabled(boolean enabled) { + public Builder enabled(boolean enabled) { this.enabled = enabled; - return builder; + return this; } - public T dynamic(Dynamic dynamic) { + public void dynamic(Dynamic dynamic) { this.dynamic = dynamic; - return builder; } - public T nested(Nested nested) { + public Builder nested(Nested nested) { this.nested = nested; - return builder; + return this; } - public T add(Mapper.Builder builder) { + public Builder add(Mapper.Builder builder) { mappersBuilders.add(builder); - return this.builder; + return this; } @Override @@ -206,7 +204,6 @@ protected static boolean parseObjectOrDocumentTypeProperties(String fieldName, O return false; } - @SuppressWarnings("rawtypes") protected static void parseNested(String name, Map node, ObjectMapper.Builder builder) { boolean nested = false; boolean nestedIncludeInParent = false; @@ -239,7 +236,6 @@ protected static void parseNested(String name, Map node, ObjectM } - @SuppressWarnings("rawtypes") protected static void parseProperties(ObjectMapper.Builder objBuilder, Map propsNode, ParserContext parserContext) { Iterator> iterator = propsNode.entrySet().iterator(); while (iterator.hasNext()) { @@ -277,9 +273,9 @@ protected static void parseProperties(ObjectMapper.Builder objBuilder, Map fieldBuilder = typeParser.parse(realFieldName, propNode, parserContext); + Mapper.Builder fieldBuilder = typeParser.parse(realFieldName, propNode, parserContext); for (int i = fieldNameParts.length - 2; i >= 0; --i) { - ObjectMapper.Builder intermediate = new ObjectMapper.Builder<>(fieldNameParts[i]); + ObjectMapper.Builder intermediate = new ObjectMapper.Builder(fieldNameParts[i]); intermediate.add(fieldBuilder); fieldBuilder = intermediate; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java index 0908bf1bd9590..02aa83c1bdcb6 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java @@ -77,14 +77,13 @@ public static class Defaults { static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", true, Setting.Property.IndexScope); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean coerce; private Locale locale = Locale.ROOT; private String pattern; public Builder(String name, RangeType type) { super(name, new RangeFieldType(type), new RangeFieldType(type)); - builder = this; } @Override @@ -92,9 +91,8 @@ public RangeFieldType fieldType() { return (RangeFieldType)fieldType; } - public Builder coerce(boolean coerce) { + public void coerce(boolean coerce) { this.coerce = coerce; - return builder; } protected Explicit coerce(BuilderContext context) { @@ -107,13 +105,12 @@ protected Explicit coerce(BuilderContext context) { return Defaults.COERCE; } - public Builder format(String format) { + public void format(String format) { this.pattern = format; - return this; } @Override - public Builder nullValue(Object nullValue) { + public void nullValue(Object nullValue) { throw new IllegalArgumentException("Field [" + name() + "] does not support null value."); } @@ -126,10 +123,10 @@ protected void setupFieldType(BuilderContext context) { super.setupFieldType(context); DateFormatter formatter = fieldType().dateTimeFormatter; if (fieldType().rangeType == RangeType.DATE) { - boolean hasPatternChanged = Strings.hasLength(builder.pattern) && - Objects.equals(builder.pattern, formatter.pattern()) == false; + boolean hasPatternChanged = Strings.hasLength(this.pattern) && + Objects.equals(this.pattern, formatter.pattern()) == false; - if (hasPatternChanged || Objects.equals(builder.locale, formatter.locale()) == false) { + if (hasPatternChanged || Objects.equals(this.locale, formatter.locale()) == false) { fieldType().setDateTimeFormatter(DateFormatter.forPattern(pattern).withLocale(locale)); } } else if (pattern != null) { @@ -154,7 +151,7 @@ public TypeParser(RangeType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java index 0cb6c8dd286ff..0cad1067b8317 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java @@ -59,7 +59,7 @@ public static class Defaults { public static final boolean NUMERIC_DETECTION = false; } - public static class Builder extends ObjectMapper.Builder { + public static class Builder extends ObjectMapper.Builder { protected Explicit dynamicTemplates = new Explicit<>(new DynamicTemplate[0], false); protected Explicit dynamicDateTimeFormatters = new Explicit<>(Defaults.DYNAMIC_DATE_TIME_FORMATTERS, false); @@ -68,17 +68,20 @@ public static class Builder extends ObjectMapper.Builder { public Builder(String name) { super(name); - this.builder = this; } - public Builder dynamicDateTimeFormatter(Collection dateTimeFormatters) { + public void dynamicDateTimeFormatter(Collection dateTimeFormatters) { this.dynamicDateTimeFormatters = new Explicit<>(dateTimeFormatters.toArray(new DateFormatter[0]), true); - return this; } - public Builder dynamicTemplates(Collection templates) { + public void dynamicTemplates(Collection templates) { this.dynamicTemplates = new Explicit<>(templates.toArray(new DynamicTemplate[0]), true); - return this; + } + + @Override + public Builder add(Mapper.Builder builder) { + super.add(builder); + return this; // overriding for covalent return type } @Override @@ -373,7 +376,7 @@ private static void validateDynamicTemplate(Mapper.TypeParser.ParserContext pars Map fieldTypeConfig = dynamicTemplate.mappingForName("__dummy__", defaultDynamicType); fieldTypeConfig.remove("type"); try { - Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); + Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); if (fieldTypeConfig.isEmpty()) { Settings indexSettings = parserContext.mapperService().getIndexSettings().getSettings(); BuilderContext builderContext = new BuilderContext(indexSettings, new ContentPath(1)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java index 703394c0de8c1..556538ffbe304 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { public static final boolean REQUIRED = false; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean required = Defaults.REQUIRED; @@ -66,9 +66,8 @@ public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); } - public Builder required(boolean required) { + public void required(boolean required) { this.required = required; - return builder; } @Override @@ -79,7 +78,7 @@ public RoutingFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java index 4027f5157b521..dcb2fc2fe3839 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java @@ -105,7 +105,7 @@ public static class SeqNoDefaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder() { super(SeqNoDefaults.NAME, SeqNoDefaults.FIELD_TYPE, SeqNoDefaults.FIELD_TYPE); @@ -119,7 +119,7 @@ public SeqNoFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java index 8f39bcf3bec2d..8471411301f9f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; @@ -85,19 +85,16 @@ public Builder() { super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); } - public Builder enabled(boolean enabled) { + public void enabled(boolean enabled) { this.enabled = enabled; - return this; } - public Builder includes(String[] includes) { + public void includes(String[] includes) { this.includes = includes; - return this; } - public Builder excludes(String[] excludes) { + public void excludes(String[] excludes) { this.excludes = excludes; - return this; } @Override @@ -108,7 +105,7 @@ public SourceFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java index 207426f31ab88..d3c76536c49a9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java @@ -110,7 +110,7 @@ public static class Defaults { public static final int POSITION_INCREMENT_GAP = 100; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; private int minPrefixChars = -1; @@ -118,7 +118,6 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -136,12 +135,11 @@ public Builder positionIncrementGap(int positionIncrementGap) { public Builder fielddata(boolean fielddata) { fieldType().setFielddata(fielddata); - return builder; + return this; } - public Builder indexPhrases(boolean indexPhrases) { + public void indexPhrases(boolean indexPhrases) { fieldType().setIndexPhrases(indexPhrases); - return builder; } @Override @@ -149,22 +147,22 @@ public Builder docValues(boolean docValues) { if (docValues) { throw new IllegalArgumentException("[text] fields do not support doc values"); } - return super.docValues(docValues); + super.docValues(docValues); + return this; } - public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); - return builder; } public Builder fielddataFrequencyFilter(double minFreq, double maxFreq, int minSegmentSize) { fieldType().setFielddataMinFrequency(minFreq); fieldType().setFielddataMaxFrequency(maxFreq); fieldType().setFielddataMinSegmentSize(minSegmentSize); - return builder; + return this; } - public Builder indexPrefixes(int minChars, int maxChars) { + public void indexPrefixes(int minChars, int maxChars) { if (minChars > maxChars) { throw new IllegalArgumentException("min_chars [" + minChars + "] must be less than max_chars [" + maxChars + "]"); @@ -177,7 +175,6 @@ public Builder indexPrefixes(int minChars, int maxChars) { } this.minPrefixChars = minChars; this.maxPrefixChars = maxChars; - return this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java index 7022cff04ee17..c34caff86021a 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java index f451909fbe481..176385cfe66d5 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java @@ -146,7 +146,7 @@ private static void parseAnalyzersAndTermVectors(FieldMapper.Builder builder, St } } - public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { + public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { builder.omitNorms(XContentMapValues.nodeBooleanValue(propNode, fieldName + ".norms") == false); } @@ -154,7 +154,7 @@ public static void parseNorms(FieldMapper.Builder builder, String fieldName, * Parse text field attributes. In addition to {@link #parseField common attributes} * this will parse analysis and term-vectors related settings. */ - public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, + public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseField(builder, name, fieldNode, parserContext); parseAnalyzersAndTermVectors(builder, name, fieldNode, parserContext); @@ -172,7 +172,7 @@ public static void parseTextField(FieldMapper.Builder builder, String name, M /** * Parse the {@code meta} key of the mapping. */ - public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { + public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { Object metaObject = fieldNode.remove("meta"); if (metaObject == null) { // no meta @@ -218,7 +218,7 @@ public static void parseMeta(FieldMapper.Builder builder, String name, Map builder, String name, Map fieldNode, + public static void parseField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseMeta(builder, name, fieldNode); for (Iterator> iterator = fieldNode.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java index d8e8966992598..26d2dd40849fe 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java @@ -56,7 +56,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java index 30645ffd84a97..6e3835836758e 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java @@ -56,29 +56,24 @@ public static class Names { public static final String FIELD_SHAPE = "shape"; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private BinaryFieldMapper.Builder binBuilder = new BinaryFieldMapper.Builder(Names.FIELD_BIN); private BooleanFieldMapper.Builder boolBuilder = new BooleanFieldMapper.Builder(Names.FIELD_BOOL); private GeoPointFieldMapper.Builder latLonPointBuilder = new GeoPointFieldMapper.Builder(Names.FIELD_POINT); private GeoShapeFieldMapper.Builder shapeBuilder = new GeoShapeFieldMapper.Builder(Names.FIELD_SHAPE); - private Mapper.Builder stringBuilder; + private FieldMapper.Builder stringBuilder; private String generatedValue; private String mapperName; public Builder(String name, String generatedValue, String mapperName) { super(name, new ExternalFieldType(), new ExternalFieldType()); - this.builder = this; - this.stringBuilder = new TextFieldMapper.Builder(name).store(false); + this.stringBuilder = new TextFieldMapper.Builder(name); + this.stringBuilder.store(false); this.generatedValue = generatedValue; this.mapperName = mapperName; } - public Builder string(Mapper.Builder content) { - this.stringBuilder = content; - return this; - } - @Override public ExternalMapper build(BuilderContext context) { context.path().add(name); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java index 844d824083924..af2d81bd7227e 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java @@ -74,7 +74,7 @@ public void postParse(ParseContext context) throws IOException { context.doc().add(new StringField(FIELD_NAME, FIELD_VALUE, Store.YES)); } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected Builder() { super(FIELD_NAME, FIELD_TYPE, FIELD_TYPE); @@ -90,7 +90,7 @@ public ExternalMetadataMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java index 72588e0323943..6d7d6d984e0b2 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java @@ -50,11 +50,10 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java b/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java index a2f62cf02447c..15fa0242d434a 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java @@ -108,7 +108,7 @@ public void testDisableRootMapper() { private static RootObjectMapper createRootObjectMapper(String name, boolean enabled, Map mappers) { final Settings indexSettings = Settings.builder().put(SETTING_VERSION_CREATED, Version.CURRENT).build(); final Mapper.BuilderContext context = new Mapper.BuilderContext(indexSettings, new ContentPath()); - final RootObjectMapper rootObjectMapper = new RootObjectMapper.Builder(name).enabled(enabled).build(context); + final RootObjectMapper rootObjectMapper = (RootObjectMapper) new RootObjectMapper.Builder(name).enabled(enabled).build(context); mappers.values().forEach(rootObjectMapper::putMapper); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java index b4074833ce9dc..13973af2ea05e 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java @@ -232,7 +232,7 @@ public TokenStream create(TokenStream tokenStream) { } public void testParseMeta() { - FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); + FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); Mapper.TypeParser.ParserContext parserContext = new Mapper.TypeParser.ParserContext(null, null, null, null, null); { diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java index 311b5fb6c2f32..bfaf0d2ca7179 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java @@ -56,7 +56,7 @@ public class IndicesModuleTests extends ESTestCase { private static class FakeMapperParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } @@ -64,7 +64,7 @@ public Mapper.Builder parse(String name, Map node, ParserCont private static class FakeMetadataMapperParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java index 15186fef5748b..3f7d1b9ca273f 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java @@ -19,26 +19,6 @@ package org.elasticsearch.search.aggregations.metrics; -import static java.util.Collections.singleton; -import static org.elasticsearch.index.query.QueryBuilders.termQuery; -import static org.hamcrest.Matchers.equalTo; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; - import org.apache.lucene.document.Document; import org.apache.lucene.document.DoublePoint; import org.apache.lucene.document.Field; @@ -110,6 +90,26 @@ import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.lookup.LeafDocLookup; +import java.io.IOException; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; + +import static java.util.Collections.singleton; +import static org.elasticsearch.index.query.QueryBuilders.termQuery; +import static org.hamcrest.Matchers.equalTo; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + public class MinAggregatorTests extends AggregatorTestCase { private final String SCRIPT_NAME = "script_name"; diff --git a/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java b/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java index b1dd7b7cc807a..2186e24026c5a 100644 --- a/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java +++ b/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java @@ -210,7 +210,7 @@ public MappedFieldType fieldMapper(String name) { @Override public ObjectMapper getObjectMapper(String name) { BuilderContext context = new BuilderContext(this.getIndexSettings().getSettings(), new ContentPath()); - return new ObjectMapper.Builder<>(name).nested(Nested.newNested(false, false)).build(context); + return new ObjectMapper.Builder(name).nested(Nested.newNested(false, false)).build(context); } }; } diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java index 8ca7278b6e7b6..adcbbf91ca12d 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java @@ -316,7 +316,7 @@ public boolean shouldCache(Query query) { String fieldName = (String) invocation.getArguments()[0]; if (fieldName.startsWith(NESTEDFIELD_PREFIX)) { BuilderContext context = new BuilderContext(indexSettings.getSettings(), new ContentPath()); - return new ObjectMapper.Builder<>(fieldName).nested(Nested.newNested(false, false)).build(context); + return new ObjectMapper.Builder(fieldName).nested(Nested.newNested(false, false)).build(context); } return null; }); @@ -495,7 +495,7 @@ protected A searchAndReduc a.preCollection(); subSearcher.search(weight, a); a.postCollection(); - InternalAggregation agg = a.buildTopLevel(); + InternalAggregation agg = a.buildTopLevel(); aggs.add(agg); InternalAggregationTestCase.assertMultiBucketConsumer(agg, shardBucketConsumer); } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java index 3cd48ed73fd5e..e9f0cd4e04f74 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java @@ -86,17 +86,15 @@ public static class Defaults { public static final ParseField COUNTS_FIELD = new ParseField("counts"); public static final ParseField VALUES_FIELD = new ParseField("values"); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected Boolean ignoreMalformed; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } - public Builder ignoreMalformed(boolean ignoreMalformed) { + public void ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -126,7 +124,7 @@ public HistogramFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new HistogramFieldMapper.Builder(name); TypeParsers.parseMeta(builder, name, node); diff --git a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java index 8f025fc1c8011..c3da6f2078524 100644 --- a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java +++ b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java @@ -60,16 +60,14 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } - public Builder setValue(String value) { + public void setValue(String value) { fieldType().setValue(value); - return this; } @Override @@ -88,7 +86,7 @@ public ConstantKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Object value = null; if (node.containsKey("value")) { value = node.remove("value"); diff --git a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java index 2f31d2a140466..1a960ce273d48 100644 --- a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java +++ b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java @@ -109,13 +109,12 @@ private static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int depthLimit = Defaults.DEPTH_LIMIT; private int ignoreAbove = Defaults.IGNORE_ABOVE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -124,13 +123,13 @@ public RootFlatObjectFieldType fieldType() { } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [" + CONTENT_TYPE + "] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - return super.indexOptions(indexOptions); + super.indexOptions(indexOptions); } public Builder depthLimit(int depthLimit) { @@ -141,9 +140,8 @@ public Builder depthLimit(int depthLimit) { return this; } - public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); - return builder; } public Builder ignoreAbove(int ignoreAbove) { @@ -154,18 +152,17 @@ public Builder ignoreAbove(int ignoreAbove) { return this; } - public Builder splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { + public void splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { fieldType().setSplitQueriesOnWhitespace(splitQueriesOnWhitespace); - return builder; } @Override - public Builder addMultiField(Mapper.Builder mapperBuilder) { + public Builder addMultiField(Mapper.Builder mapperBuilder) { throw new UnsupportedOperationException("[fields] is not supported for [" + CONTENT_TYPE + "] fields."); } @Override - public Builder copyTo(CopyTo copyTo) { + public void copyTo(CopyTo copyTo) { throw new UnsupportedOperationException("[copy_to] is not supported for [" + CONTENT_TYPE + "] fields."); } @@ -188,7 +185,7 @@ public FlatObjectFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java index 830bff751d311..5b7ee79aff6cc 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java @@ -63,9 +63,7 @@ public class GeoShapeWithDocValuesFieldMapper extends GeoShapeFieldMapper { public static final String CONTENT_TYPE = "geo_shape"; private Explicit docValues; - @SuppressWarnings("rawtypes") - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super (name, new GeoShapeWithDocValuesFieldType(), new GeoShapeWithDocValuesFieldType()); } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java index a986127dfc551..ae1443e1d14a9 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java @@ -34,10 +34,9 @@ public class PointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new PointFieldType(), new PointFieldType()); - builder = this; } @Override diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java index a865768d00008..3c0488ae7eb8b 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java @@ -43,13 +43,11 @@ public static class Defaults extends AbstractShapeGeometryFieldMapper.Defaults { public static final ShapeFieldType FIELD_TYPE = new ShapeFieldType(); } - @SuppressWarnings({"unchecked", "rawtypes"}) - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + @SuppressWarnings({"unchecked"}) + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java index 2a8ce28a9e643..959a35edaf314 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java @@ -58,12 +58,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int dims = 0; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } public Builder dims(int dims) { @@ -97,7 +96,7 @@ public DenseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { DenseVectorFieldMapper.Builder builder = new DenseVectorFieldMapper.Builder(name); Object dimsField = node.remove("dims"); if (dimsField == null) { diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java index d5c03e2400e47..d795fe07560f6 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java @@ -53,11 +53,10 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -71,7 +70,7 @@ public SparseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { if (parserContext.indexVersionCreated().onOrAfter(Version.V_8_0_0)) { throw new IllegalArgumentException(ERROR_MESSAGE); diff --git a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java index cb4dc07ba81cf..7143f0a534666 100644 --- a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java +++ b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java @@ -100,13 +100,12 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected int ignoreAbove = Defaults.IGNORE_ABOVE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - builder = this; } @Override @@ -118,11 +117,10 @@ public Builder docValues(boolean docValues) { } @Override - public Builder indexOptions(IndexOptions indexOptions) { + public void indexOptions(IndexOptions indexOptions) { if (indexOptions != IndexOptions.DOCS) { throw new MapperParsingException("The field [" + name + "] cannot have indexOptions = " + indexOptions); } - return this; } @Override @@ -134,7 +132,7 @@ public Builder store(boolean store) { } @Override - public Builder similarity(SimilarityProvider similarity) { + public void similarity(SimilarityProvider similarity) { throw new MapperParsingException("The field [" + name + "] cannot have custom similarities"); } @@ -146,12 +144,11 @@ public Builder index(boolean index) { return this; } - public Builder ignoreAbove(int ignoreAbove) { + public void ignoreAbove(int ignoreAbove) { if (ignoreAbove < 0) { throw new IllegalArgumentException("[ignore_above] must be positive, got " + ignoreAbove); } this.ignoreAbove = ignoreAbove; - return this; } @@ -179,7 +176,7 @@ public WildcardFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { WildcardFieldMapper.Builder builder = new WildcardFieldMapper.Builder(name); parseField(builder, name, node, parserContext); From eb280257844fabddc3f362fb1051fd846891747d Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Fri, 15 May 2020 11:00:02 +0100 Subject: [PATCH 3/3] Revert "Remove all generic params from Mapper.Builder" This reverts commit 9e928495aad03d4f65daac1b71d3e6ee055d4f52. --- .../index/mapper/RankFeatureFieldMapper.java | 8 ++- .../mapper/RankFeatureMetaFieldMapper.java | 4 +- .../index/mapper/RankFeaturesFieldMapper.java | 5 +- .../index/mapper/ScaledFloatFieldMapper.java | 18 +++--- .../mapper/SearchAsYouTypeFieldMapper.java | 8 ++- .../index/mapper/TokenCountFieldMapper.java | 11 ++-- .../join/mapper/MetaJoinFieldMapper.java | 3 +- .../join/mapper/ParentIdFieldMapper.java | 6 +- .../join/mapper/ParentJoinFieldMapper.java | 10 ++-- .../percolator/PercolatorFieldMapper.java | 2 +- .../ICUCollationKeywordFieldMapper.java | 48 +++++++++------ .../AnnotatedTextFieldMapper.java | 11 ++-- .../mapper/murmur3/Murmur3FieldMapper.java | 5 +- .../index/mapper/size/SizeFieldMapper.java | 8 ++- .../mapper/AbstractGeometryFieldMapper.java | 7 ++- .../AbstractPointGeometryFieldMapper.java | 3 +- .../AbstractShapeGeometryFieldMapper.java | 4 +- .../index/mapper/BinaryFieldMapper.java | 9 +-- .../index/mapper/BooleanFieldMapper.java | 3 +- .../index/mapper/CompletionFieldMapper.java | 5 +- .../index/mapper/DateFieldMapper.java | 16 ++--- .../index/mapper/DocumentMapper.java | 2 +- .../index/mapper/DocumentParser.java | 20 +++---- .../index/mapper/FieldAliasMapper.java | 2 +- .../index/mapper/FieldMapper.java | 60 ++++++++++++------- .../index/mapper/FieldNamesFieldMapper.java | 7 ++- .../index/mapper/GeoPointFieldMapper.java | 9 +-- .../index/mapper/GeoShapeFieldMapper.java | 3 +- .../index/mapper/IdFieldMapper.java | 2 +- .../index/mapper/IgnoredFieldMapper.java | 4 +- .../index/mapper/IndexFieldMapper.java | 4 +- .../index/mapper/IpFieldMapper.java | 8 ++- .../index/mapper/KeywordFieldMapper.java | 18 +++--- .../mapper/LegacyGeoShapeFieldMapper.java | 3 +- .../elasticsearch/index/mapper/Mapper.java | 6 +- .../index/mapper/MapperService.java | 2 +- .../index/mapper/MetadataFieldMapper.java | 5 +- .../index/mapper/NestedPathFieldMapper.java | 2 +- .../index/mapper/NumberFieldMapper.java | 20 +++---- .../index/mapper/ObjectMapper.java | 24 ++++---- .../index/mapper/RangeFieldMapper.java | 19 +++--- .../index/mapper/RootObjectMapper.java | 17 +++--- .../index/mapper/RoutingFieldMapper.java | 7 ++- .../index/mapper/SeqNoFieldMapper.java | 4 +- .../index/mapper/SourceFieldMapper.java | 13 ++-- .../index/mapper/TextFieldMapper.java | 19 +++--- .../index/mapper/TypeFieldMapper.java | 2 +- .../index/mapper/TypeParsers.java | 8 +-- .../index/mapper/VersionFieldMapper.java | 2 +- .../index/mapper/ExternalMapper.java | 13 ++-- .../index/mapper/ExternalMetadataMapper.java | 4 +- .../index/mapper/FakeStringFieldMapper.java | 3 +- .../index/mapper/ObjectMapperMergeTests.java | 2 +- .../index/mapper/TypeParsersTests.java | 2 +- .../indices/IndicesModuleTests.java | 4 +- .../metrics/MinAggregatorTests.java | 40 ++++++------- .../search/sort/AbstractSortTestCase.java | 2 +- .../aggregations/AggregatorTestCase.java | 4 +- .../mapper/HistogramFieldMapper.java | 8 ++- .../mapper/ConstantKeywordFieldMapper.java | 8 ++- .../mapper/FlatObjectFieldMapper.java | 19 +++--- .../GeoShapeWithDocValuesFieldMapper.java | 4 +- .../index/mapper/PointFieldMapper.java | 3 +- .../index/mapper/ShapeFieldMapper.java | 6 +- .../mapper/DenseVectorFieldMapper.java | 5 +- .../mapper/SparseVectorFieldMapper.java | 5 +- .../wildcard/mapper/WildcardFieldMapper.java | 13 ++-- 67 files changed, 356 insertions(+), 275 deletions(-) diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java index 32e36aa0c0454..451b72dc0ffa1 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureFieldMapper.java @@ -57,10 +57,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -68,8 +69,9 @@ public RankFeatureFieldType fieldType() { return (RankFeatureFieldType) super.fieldType(); } - public void positiveScoreImpact(boolean v) { + public Builder positiveScoreImpact(boolean v) { fieldType().setPositiveScoreImpact(v); + return builder; } @Override @@ -83,7 +85,7 @@ public RankFeatureFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeatureFieldMapper.Builder builder = new RankFeatureFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java index c439d3f3a2aa9..9a30956c5802f 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeatureMetaFieldMapper.java @@ -55,7 +55,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -70,7 +70,7 @@ public RankFeatureMetaFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java index 2495a9596cfe9..b743cf42bcb2a 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/RankFeaturesFieldMapper.java @@ -51,10 +51,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -73,7 +74,7 @@ public RankFeaturesFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { RankFeaturesFieldMapper.Builder builder = new RankFeaturesFieldMapper.Builder(name); return builder; } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java index 070454eebb909..bf567a86ca226 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/ScaledFloatFieldMapper.java @@ -82,7 +82,7 @@ public class ScaledFloatFieldMapper extends FieldMapper { // use the same default as numbers private static final Setting COERCE_SETTING = NumberFieldMapper.COERCE_SETTING; - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private boolean scalingFactorSet = false; private Boolean ignoreMalformed; @@ -90,16 +90,18 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, new ScaledFloatFieldType(), new ScaledFloatFieldType()); + builder = this; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; + return builder; } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { throw new MapperParsingException( - "index_options not allowed in field [" + name + "] of type [" + this.fieldType().typeName() + "]"); + "index_options not allowed in field [" + name + "] of type [" + builder.fieldType().typeName() + "]"); } protected Explicit ignoreMalformed(BuilderContext context) { @@ -112,13 +114,15 @@ protected Explicit ignoreMalformed(BuilderContext context) { return Defaults.IGNORE_MALFORMED; } - public void coerce(boolean coerce) { + public Builder coerce(boolean coerce) { this.coerce = coerce; + return builder; } - public void scalingFactor(double scalingFactor) { + public Builder scalingFactor(double scalingFactor) { ((ScaledFloatFieldType) fieldType).setScalingFactor(scalingFactor); scalingFactorSet = true; + return this; } protected Explicit coerce(BuilderContext context) { @@ -145,7 +149,7 @@ public ScaledFloatFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java index 0e18a4068418b..273fd93daef7b 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/SearchAsYouTypeFieldMapper.java @@ -104,7 +104,7 @@ public static class Defaults { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { @@ -129,19 +129,21 @@ public Mapper.Builder parse(String name, } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxShingleSize = Defaults.MAX_SHINGLE_SIZE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + this.builder = this; } - public void maxShingleSize(int maxShingleSize) { + public Builder maxShingleSize(int maxShingleSize) { if (maxShingleSize < MAX_SHINGLE_SIZE_LOWER_BOUND || maxShingleSize > MAX_SHINGLE_SIZE_UPPER_BOUND) { throw new MapperParsingException("[max_shingle_size] must be at least [" + MAX_SHINGLE_SIZE_LOWER_BOUND + "] and at most " + "[" + MAX_SHINGLE_SIZE_UPPER_BOUND + "], got [" + maxShingleSize + "]"); } this.maxShingleSize = maxShingleSize; + return builder; } @Override diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java index 35c8377289df4..86ec61f833f82 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/TokenCountFieldMapper.java @@ -47,24 +47,27 @@ public static class Defaults { public static final boolean DEFAULT_POSITION_INCREMENTS = true; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private NamedAnalyzer analyzer; private boolean enablePositionIncrements = Defaults.DEFAULT_POSITION_INCREMENTS; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } - public void analyzer(NamedAnalyzer analyzer) { + public Builder analyzer(NamedAnalyzer analyzer) { this.analyzer = analyzer; + return this; } public NamedAnalyzer analyzer() { return analyzer; } - public void enablePositionIncrements(boolean enablePositionIncrements) { + public Builder enablePositionIncrements(boolean enablePositionIncrements) { this.enablePositionIncrements = enablePositionIncrements; + return this; } public boolean enablePositionIncrements() { @@ -81,7 +84,7 @@ public TokenCountFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { TokenCountFieldMapper.Builder builder = new TokenCountFieldMapper.Builder(name); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java index c0bc34c920c57..a773f78925596 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/MetaJoinFieldMapper.java @@ -57,9 +57,10 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { Builder() { super(NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java index 2cdcf46f2fa44..7189f3f3bb655 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentIdFieldMapper.java @@ -66,12 +66,13 @@ static class Defaults { } } - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final String parent; private final Set children; Builder(String name, String parent, Set children) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; this.parent = parent; this.children = children; } @@ -80,8 +81,9 @@ public Set getChildren() { return children; } - public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); + return builder; } @Override diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java index 9bb0a60a20236..5fa6799aa3f44 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/mapper/ParentJoinFieldMapper.java @@ -121,12 +121,13 @@ private static void checkParentFields(String name, List map } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { final List parentIdFieldBuilders = new ArrayList<>(); boolean eagerGlobalOrdinals = true; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -137,11 +138,12 @@ public JoinFieldType fieldType() { public Builder addParent(String parent, Set children) { String parentIdFieldName = getParentIdFieldName(name, parent); parentIdFieldBuilders.add(new ParentIdFieldMapper.Builder(parentIdFieldName, parent, children)); - return this; + return builder; } - public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { this.eagerGlobalOrdinals = eagerGlobalOrdinals; + return builder; } @Override @@ -166,7 +168,7 @@ public ParentJoinFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { final IndexSettings indexSettings = parserContext.mapperService().getIndexSettings(); checkIndexCompatibility(indexSettings, name); diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java index d595d526f41bf..f1022857f6517 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java @@ -108,7 +108,7 @@ public class PercolatorFieldMapper extends FieldMapper { static final String RANGE_FIELD_NAME = "range_field"; static final String MINIMUM_SHOULD_MATCH_FIELD_NAME = "minimum_should_match_field"; - static class Builder extends FieldMapper.Builder { + static class Builder extends FieldMapper.Builder { private final Supplier queryShardContext; diff --git a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java index 1522e383fbc60..2534f7e1e4341 100644 --- a/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java +++ b/plugins/analysis-icu/src/main/java/org/elasticsearch/index/mapper/ICUCollationKeywordFieldMapper.java @@ -221,7 +221,7 @@ public DocValueFormat docValueFormat(final String format, final ZoneId timeZone) } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private String rules = null; private String language = null; private String country = null; @@ -238,6 +238,7 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -246,116 +247,129 @@ public CollationFieldType fieldType() { } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [" + CONTENT_TYPE + "] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - super.indexOptions(indexOptions); + return super.indexOptions(indexOptions); } - public void ignoreAbove(int ignoreAbove) { + public Builder ignoreAbove(int ignoreAbove) { if (ignoreAbove < 0) { throw new IllegalArgumentException("[ignore_above] must be positive, got " + ignoreAbove); } this.ignoreAbove = ignoreAbove; + return this; } public String rules() { return rules; } - public void rules(final String rules) { + public Builder rules(final String rules) { this.rules = rules; + return this; } public String language() { return language; } - public void language(final String language) { + public Builder language(final String language) { this.language = language; + return this; } public String country() { return country; } - public void country(final String country) { + public Builder country(final String country) { this.country = country; + return this; } public String variant() { return variant; } - public void variant(final String variant) { + public Builder variant(final String variant) { this.variant = variant; + return this; } public String strength() { return strength; } - public void strength(final String strength) { + public Builder strength(final String strength) { this.strength = strength; + return this; } public String decomposition() { return decomposition; } - public void decomposition(final String decomposition) { + public Builder decomposition(final String decomposition) { this.decomposition = decomposition; + return this; } public String alternate() { return alternate; } - public void alternate(final String alternate) { + public Builder alternate(final String alternate) { this.alternate = alternate; + return this; } public boolean caseLevel() { return caseLevel; } - public void caseLevel(final boolean caseLevel) { + public Builder caseLevel(final boolean caseLevel) { this.caseLevel = caseLevel; + return this; } public String caseFirst() { return caseFirst; } - public void caseFirst(final String caseFirst) { + public Builder caseFirst(final String caseFirst) { this.caseFirst = caseFirst; + return this; } public boolean numeric() { return numeric; } - public void numeric(final boolean numeric) { + public Builder numeric(final boolean numeric) { this.numeric = numeric; + return this; } public String variableTop() { return variableTop; } - public void variableTop(final String variableTop) { + public Builder variableTop(final String variableTop) { this.variableTop = variableTop; + return this; } public boolean hiraganaQuaternaryMode() { return hiraganaQuaternaryMode; } - public void hiraganaQuaternaryMode(final boolean hiraganaQuaternaryMode) { + public Builder hiraganaQuaternaryMode(final boolean hiraganaQuaternaryMode) { this.hiraganaQuaternaryMode = hiraganaQuaternaryMode; + return this; } public Collator buildCollator() { @@ -467,7 +481,7 @@ public ICUCollationKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java index 1759d4deeb031..20d3b6e464a2b 100644 --- a/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java +++ b/plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java @@ -85,12 +85,13 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -98,11 +99,12 @@ public AnnotatedTextFieldType fieldType() { return (AnnotatedTextFieldType) super.fieldType(); } - public void positionIncrementGap(int positionIncrementGap) { + public Builder positionIncrementGap(int positionIncrementGap) { if (positionIncrementGap < 0) { throw new MapperParsingException("[positions_increment_gap] must be positive, got " + positionIncrementGap); } this.positionIncrementGap = positionIncrementGap; + return this; } @Override @@ -110,8 +112,7 @@ public Builder docValues(boolean docValues) { if (docValues) { throw new IllegalArgumentException("[" + CONTENT_TYPE + "] fields do not support doc values"); } - super.docValues(docValues); - return this; + return super.docValues(docValues); } @Override @@ -146,7 +147,7 @@ name, fieldType(), defaultFieldType, positionIncrementGap, public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse( + public Mapper.Builder parse( String fieldName, Map node, ParserContext parserContext) throws MapperParsingException { AnnotatedTextFieldMapper.Builder builder = new AnnotatedTextFieldMapper.Builder(fieldName); diff --git a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java index 2e91b9ef0a12c..e0c0917d353e1 100644 --- a/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java +++ b/plugins/mapper-murmur3/src/main/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapper.java @@ -55,10 +55,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -80,7 +81,7 @@ protected void setupFieldType(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); diff --git a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java index 996631826e712..b3ba775b18957 100644 --- a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java +++ b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java @@ -62,17 +62,19 @@ private static MappedFieldType defaultFieldType(Version indexCreated) { return defaultFieldType; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED; private Builder(MappedFieldType existing, Version indexCreated) { super(NAME, existing == null ? defaultFieldType(indexCreated) : existing.clone(), defaultFieldType(indexCreated)); + builder = this; } - public void enabled(EnabledAttributeMapper enabled) { + public Builder enabled(EnabledAttributeMapper enabled) { this.enabledState = enabled; + return builder; } @Override @@ -84,7 +86,7 @@ public SizeFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME), parserContext.indexVersionCreated()); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java index 364424d0341a9..fcba73124433b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractGeometryFieldMapper.java @@ -76,8 +76,8 @@ public interface Parser { Parsed parse(XContentParser parser, AbstractGeometryFieldMapper mapper) throws IOException, ParseException; } - public abstract static class Builder - extends FieldMapper.Builder { + public abstract static class Builder + extends FieldMapper.Builder { protected Boolean ignoreMalformed; protected Boolean ignoreZValue; @@ -92,8 +92,9 @@ public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFi this.ignoreZValue = ignoreZValue; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; + return this; } protected Explicit ignoreMalformed(BuilderContext context) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java index 12a460bd1c19e..445c899209f3d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractPointGeometryFieldMapper.java @@ -44,7 +44,8 @@ public static class Names extends AbstractGeometryFieldMapper.Names { public static final ParseField NULL_VALUE = new ParseField("null_value"); } - public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java index 5c123ea0c30f0..955a29003e6c8 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java @@ -49,8 +49,8 @@ public static class Defaults extends AbstractGeometryFieldMapper.Defaults { public static final Explicit COERCE = new Explicit<>(false, false); } - public abstract static class Builder - extends AbstractGeometryFieldMapper.Builder { + public abstract static class Builder extends AbstractGeometryFieldMapper.Builder { protected Boolean coerce; protected Orientation orientation; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java index 1e5301c307387..712a798727145 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BinaryFieldMapper.java @@ -62,16 +62,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - } - - @Override - public Builder docValues(boolean docValues) { - super.docValues(docValues); - return this; + builder = this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java index ada53e9d64d99..b9f5f4e984b42 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java @@ -74,10 +74,11 @@ public static class Values { public static final BytesRef FALSE = new BytesRef("F"); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + this.builder = this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java index e5b47f4a5d5d3..493ac8986c3ac 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java @@ -123,7 +123,7 @@ public static class Fields { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { CompletionFieldMapper.Builder builder = new CompletionFieldMapper.Builder(name); NamedAnalyzer indexAnalyzer = null; @@ -353,7 +353,7 @@ public void checkCompatibility(MappedFieldType fieldType, List conflicts /** * Builder for {@link CompletionFieldMapper} */ - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int maxInputLength = Defaults.DEFAULT_MAX_INPUT_LENGTH; private ContextMappings contextMappings = null; @@ -367,6 +367,7 @@ public static class Builder extends FieldMapper.Builder { */ public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } /** diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java index b9e50a8e8f036..ebe59344d196b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DateFieldMapper.java @@ -172,7 +172,7 @@ public static Resolution ofOrdinal(int ord) { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Explicit format = new Explicit<>(DEFAULT_DATE_TIME_FORMATTER.pattern(), false); @@ -181,22 +181,18 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, new DateFieldType(), new DateFieldType()); + builder = this; locale = Locale.ROOT; } - @Override - public Builder index(boolean index) { - super.index(index); - return this; - } - @Override public DateFieldType fieldType() { return (DateFieldType)fieldType; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; + return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -243,7 +239,7 @@ protected void setupFieldType(BuilderContext context) { DateFormatter dateTimeFormatter = fieldType().dateTimeFormatter; boolean hasPatternChanged = Strings.hasLength(pattern) && Objects.equals(pattern, dateTimeFormatter.pattern()) == false; - if (hasPatternChanged || Objects.equals(this.locale, dateTimeFormatter.locale()) == false) { + if (hasPatternChanged || Objects.equals(builder.locale, dateTimeFormatter.locale()) == false) { fieldType().setDateTimeFormatter(DateFormatter.forPattern(pattern).withLocale(locale)); } @@ -267,7 +263,7 @@ public TypeParser(Resolution resolution) { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); builder.withResolution(resolution); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java index f903e640ee857..baa5fe5b85931 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java @@ -96,7 +96,7 @@ public Builder meta(Map meta) { return this; } - public Builder put(MetadataFieldMapper.Builder mapper) { + public Builder put(MetadataFieldMapper.Builder mapper) { MetadataFieldMapper metadataMapper = mapper.build(builderContext); metadataMappers.put(metadataMapper.getClass(), metadataMapper); return this; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java index 77dd226703b19..fc4b477472f4e 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java @@ -619,15 +619,14 @@ private static void parseNullValue(ParseContext context, ObjectMapper parentMapp } } - private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, + private static Mapper.Builder createBuilderFromFieldType(final ParseContext context, MappedFieldType fieldType, String currentFieldName) { Mapper.Builder builder = null; if (fieldType instanceof TextFieldType) { builder = context.root().findTemplateBuilder(context, currentFieldName, "text", XContentFieldType.STRING); if (builder == null) { - FieldMapper.Builder fieldbuilder = new TextFieldMapper.Builder(currentFieldName); - fieldbuilder.addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); - builder = fieldbuilder; + builder = new TextFieldMapper.Builder(currentFieldName) + .addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); } } else if (fieldType instanceof KeywordFieldType) { builder = context.root().findTemplateBuilder(context, currentFieldName, "keyword", XContentFieldType.STRING); @@ -667,15 +666,15 @@ private static Mapper.Builder createBuilderFromFieldType(final ParseContext cont return builder; } - private static Mapper.Builder newLongBuilder(String name) { + private static Mapper.Builder newLongBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.LONG); } - private static Mapper.Builder newFloatBuilder(String name) { + private static Mapper.Builder newFloatBuilder(String name) { return new NumberFieldMapper.Builder(name, NumberFieldMapper.NumberType.FLOAT); } - private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { + private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTimeFormatter) { DateFieldMapper.Builder builder = new DateFieldMapper.Builder(name); if (dateTimeFormatter != null) { builder.format(dateTimeFormatter.pattern()).locale(dateTimeFormatter.locale()); @@ -683,7 +682,7 @@ private static Mapper.Builder newDateBuilder(String name, DateFormatter dateTime return builder; } - private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, + private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext context, XContentParser.Token token, String currentFieldName) throws IOException { if (token == XContentParser.Token.VALUE_STRING) { @@ -744,9 +743,8 @@ private static Mapper.Builder createBuilderFromDynamicValue(final ParseContext c Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, XContentFieldType.STRING); if (builder == null) { - FieldMapper.Builder fieldbuilder = new TextFieldMapper.Builder(currentFieldName); - fieldbuilder.addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); - return fieldbuilder; + builder = new TextFieldMapper.Builder(currentFieldName) + .addMultiField(new KeywordFieldMapper.Builder("keyword").ignoreAbove(256)); } return builder; } else if (token == XContentParser.Token.VALUE_NUMBER) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java index c333892631914..5a1e28f9e2179 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldAliasMapper.java @@ -106,7 +106,7 @@ public Mapper.Builder parse(String name, Map node, ParserContext } } - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { private String name; private String path; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java index b786aaa8172e1..17ed8a71a7698 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java @@ -56,7 +56,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable { Setting.boolSetting("index.mapping.ignore_malformed", false, Property.IndexScope); public static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", false, Property.IndexScope); - public abstract static class Builder extends Mapper.Builder { + public abstract static class Builder extends Mapper.Builder { protected final MappedFieldType fieldType; protected final MappedFieldType defaultFieldType; @@ -80,7 +80,7 @@ public MappedFieldType fieldType() { return fieldType; } - public Builder index(boolean index) { + public T index(boolean index) { if (index) { if (fieldType.indexOptions() == IndexOptions.NONE) { /* @@ -101,92 +101,105 @@ public Builder index(boolean index) { } else { fieldType.setIndexOptions(IndexOptions.NONE); } - return this; + return builder; } protected IndexOptions getDefaultIndexOption() { return defaultOptions; } - public Builder store(boolean store) { + public T store(boolean store) { this.fieldType.setStored(store); - return this; + return builder; } - public Builder docValues(boolean docValues) { + public T docValues(boolean docValues) { this.fieldType.setHasDocValues(docValues); this.docValuesSet = true; - return this; + return builder; } - public void storeTermVectors(boolean termVectors) { + public T storeTermVectors(boolean termVectors) { if (termVectors != this.fieldType.storeTermVectors()) { this.fieldType.setStoreTermVectors(termVectors); } // don't set it to false, it is default and might be flipped by a more specific option + return builder; } - public void storeTermVectorOffsets(boolean termVectorOffsets) { + public T storeTermVectorOffsets(boolean termVectorOffsets) { if (termVectorOffsets) { this.fieldType.setStoreTermVectors(termVectorOffsets); } this.fieldType.setStoreTermVectorOffsets(termVectorOffsets); + return builder; } - public void storeTermVectorPositions(boolean termVectorPositions) { + public T storeTermVectorPositions(boolean termVectorPositions) { if (termVectorPositions) { this.fieldType.setStoreTermVectors(termVectorPositions); } this.fieldType.setStoreTermVectorPositions(termVectorPositions); + return builder; } - public void storeTermVectorPayloads(boolean termVectorPayloads) { + public T storeTermVectorPayloads(boolean termVectorPayloads) { if (termVectorPayloads) { this.fieldType.setStoreTermVectors(termVectorPayloads); } this.fieldType.setStoreTermVectorPayloads(termVectorPayloads); + return builder; } - public void boost(float boost) { + public T boost(float boost) { this.fieldType.setBoost(boost); + return builder; } - public void omitNorms(boolean omitNorms) { + public T omitNorms(boolean omitNorms) { this.fieldType.setOmitNorms(omitNorms); this.omitNormsSet = true; + return builder; } - public void indexOptions(IndexOptions indexOptions) { + public T indexOptions(IndexOptions indexOptions) { this.fieldType.setIndexOptions(indexOptions); this.indexOptionsSet = true; + return builder; } - public void indexAnalyzer(NamedAnalyzer indexAnalyzer) { + public T indexAnalyzer(NamedAnalyzer indexAnalyzer) { this.fieldType.setIndexAnalyzer(indexAnalyzer); + return builder; } - public void searchAnalyzer(NamedAnalyzer searchAnalyzer) { + public T searchAnalyzer(NamedAnalyzer searchAnalyzer) { this.fieldType.setSearchAnalyzer(searchAnalyzer); + return builder; } - public void searchQuoteAnalyzer(NamedAnalyzer searchQuoteAnalyzer) { + public T searchQuoteAnalyzer(NamedAnalyzer searchQuoteAnalyzer) { this.fieldType.setSearchQuoteAnalyzer(searchQuoteAnalyzer); + return builder; } - public void similarity(SimilarityProvider similarity) { + public T similarity(SimilarityProvider similarity) { this.fieldType.setSimilarity(similarity); + return builder; } - public void nullValue(Object nullValue) { + public Builder nullValue(Object nullValue) { this.fieldType.setNullValue(nullValue); + return this; } - public Builder addMultiField(Mapper.Builder mapperBuilder) { + public T addMultiField(Mapper.Builder mapperBuilder) { multiFieldsBuilder.add(mapperBuilder); - return this; + return builder; } - public void copyTo(CopyTo copyTo) { + public T copyTo(CopyTo copyTo) { this.copyTo = copyTo; + return builder; } protected String buildFullName(BuilderContext context) { @@ -211,8 +224,9 @@ protected void setupFieldType(BuilderContext context) { } /** Set metadata on this field. */ - public void meta(Map meta) { + public T meta(Map meta) { fieldType.setMeta(meta); + return (T) this; } } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java index e6c794f6f0f0f..6503afb9c985b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java @@ -71,15 +71,16 @@ public static class Defaults { } } - private static class Builder extends MetadataFieldMapper.Builder { + private static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; private Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); } - private void enabled(boolean enabled) { + private Builder enabled(boolean enabled) { this.enabled = enabled; + return this; } @Override @@ -99,7 +100,7 @@ public static class TypeParser implements MetadataFieldMapper.TypeParser { + "will be removed in a future major version. Please remove it from your mappings and templates."; @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java index faecfbb47abdd..60a48947da01e 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java @@ -49,9 +49,10 @@ public class GeoPointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new GeoPointFieldType(), new GeoPointFieldType()); + builder = this; } public GeoPointFieldMapper build(BuilderContext context, String simpleName, MappedFieldType fieldType, @@ -63,12 +64,6 @@ public GeoPointFieldMapper build(BuilderContext context, String simpleName, Mapp ignoreMalformed, ignoreZValue, copyTo); } - @Override - public Builder docValues(boolean docValues) { - super.docValues(docValues); - return this; - } - @Override protected void setGeometryParser() { PointParser pointParser = new PointParser<>(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java index 31fba60488032..f526cd3acbde9 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/GeoShapeFieldMapper.java @@ -52,7 +52,8 @@ public class GeoShapeFieldMapper extends AbstractShapeGeometryFieldMapper { public static final String CONTENT_TYPE = "geo_shape"; - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super (name, new GeoShapeFieldType(), new GeoShapeFieldType()); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java index a2d57c9dd08c9..f399fddc84419 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java @@ -97,7 +97,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java index 234fe5043b429..eb0abc15f2c18 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IgnoredFieldMapper.java @@ -57,7 +57,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -71,7 +71,7 @@ public IgnoredFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(parserContext.mapperService().fieldType(NAME)); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java index 23ea878b86e7f..810e7b96abf64 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); @@ -73,7 +73,7 @@ public IndexFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java index 4f42c2b999a81..e67e1e27c99b8 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/IpFieldMapper.java @@ -63,16 +63,18 @@ public static class Defaults { public static final Explicit IGNORE_MALFORMED = new Explicit<>(false, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; public Builder(String name) { super(name, new IpFieldType(), new IpFieldType()); + builder = this; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; + return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -99,7 +101,7 @@ public TypeParser() { } @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); TypeParsers.parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java index c2ea2df8a3790..f211923679eae 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected String nullValue = Defaults.NULL_VALUE; protected int ignoreAbove = Defaults.IGNORE_ABOVE; @@ -83,6 +83,7 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -99,25 +100,28 @@ public Builder ignoreAbove(int ignoreAbove) { } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [keyword] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - super.indexOptions(indexOptions); + return super.indexOptions(indexOptions); } - public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); + return builder; } - public void splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { + public Builder splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { fieldType().setSplitQueriesOnWhitespace(splitQueriesOnWhitespace); + return builder; } - public void normalizer(IndexAnalyzers indexAnalyzers, String name) { + public Builder normalizer(IndexAnalyzers indexAnalyzers, String name) { this.indexAnalyzers = indexAnalyzers; this.normalizerName = name; + return builder; } @Override @@ -147,7 +151,7 @@ public KeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { KeywordFieldMapper.Builder builder = new KeywordFieldMapper.Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java index 8131cc306a105..659a7e2acc656 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/LegacyGeoShapeFieldMapper.java @@ -179,7 +179,8 @@ private static void checkPrefixTreeSupport(String fieldName) { private static final Logger logger = LogManager.getLogger(LegacyGeoShapeFieldMapper.class); private static final DeprecationLogger DEPRECATION_LOGGER = new DeprecationLogger(logger); - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { DeprecatedParameters deprecatedParameters; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java index 7e997550f62d5..054a7725b8db1 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/Mapper.java @@ -56,10 +56,12 @@ public Version indexCreatedVersion() { } } - public abstract static class Builder { + public abstract static class Builder { public String name; + protected T builder; + protected Builder(String name) { this.name = name; } @@ -142,7 +144,7 @@ static class MultiFieldParserContext extends ParserContext { } - Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; + Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; } private final String simpleName; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java index 16e3a98ad97f9..fe4f4311ca707 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java @@ -624,7 +624,7 @@ public MappedFieldType unmappedFieldType(String type) { if (typeParser == null) { throw new IllegalArgumentException("No mapper found for type [" + type + "]"); } - final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); + final Mapper.Builder builder = typeParser.parse("__anonymous_" + type, emptyMap(), parserContext); final BuilderContext builderContext = new BuilderContext(indexSettings.getSettings(), new ContentPath(1)); fieldType = ((FieldMapper)builder.build(builderContext)).fieldType(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java index 894b794e50e76..8b910e82d30db 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java @@ -33,7 +33,7 @@ public abstract class MetadataFieldMapper extends FieldMapper { public interface TypeParser extends Mapper.TypeParser { @Override - MetadataFieldMapper.Builder parse(String name, Map node, + MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; /** @@ -44,7 +44,8 @@ MetadataFieldMapper.Builder parse(String name, Map node, MetadataFieldMapper getDefault(ParserContext parserContext); } - public abstract static class Builder extends FieldMapper.Builder { + @SuppressWarnings("rawtypes") + public abstract static class Builder extends FieldMapper.Builder { public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) { super(name, fieldType, defaultFieldType); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java index f09d8fea8d586..9d1725f6d0bff 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NestedPathFieldMapper.java @@ -72,7 +72,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(name(parserContext.mapperService().getIndexSettings().getSettings()) + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java index 25531eae1d5a4..8665cce17d87b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NumberFieldMapper.java @@ -78,28 +78,25 @@ public static class Defaults { public static final Explicit COERCE = new Explicit<>(true, false); } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean ignoreMalformed; private Boolean coerce; public Builder(String name, NumberType type) { super(name, new NumberFieldType(type), new NumberFieldType(type)); + builder = this; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; - } - - public Builder docValues(boolean docValues) { - super.docValues(docValues); - return this; + return builder; } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { throw new MapperParsingException( - "index_options not allowed in field [" + name + "] of type [" + fieldType().typeName() + "]"); + "index_options not allowed in field [" + name + "] of type [" + builder.fieldType().typeName() + "]"); } protected Explicit ignoreMalformed(BuilderContext context) { @@ -112,8 +109,9 @@ protected Explicit ignoreMalformed(BuilderContext context) { return Defaults.IGNORE_MALFORMED; } - public void coerce(boolean coerce) { + public Builder coerce(boolean coerce) { this.coerce = coerce; + return builder; } protected Explicit coerce(BuilderContext context) { @@ -148,7 +146,7 @@ public TypeParser(NumberType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java index 7e4427494c19d..c9d1b8fae75b2 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java @@ -94,7 +94,7 @@ public boolean isIncludeInRoot() { } @SuppressWarnings("rawtypes") - public static class Builder extends Mapper.Builder { + public static class Builder extends Mapper.Builder { protected boolean enabled = Defaults.ENABLED; @@ -107,25 +107,27 @@ public static class Builder extends Mapper.Builder { @SuppressWarnings("unchecked") public Builder(String name) { super(name); + this.builder = (T) this; } - public Builder enabled(boolean enabled) { + public T enabled(boolean enabled) { this.enabled = enabled; - return this; + return builder; } - public void dynamic(Dynamic dynamic) { + public T dynamic(Dynamic dynamic) { this.dynamic = dynamic; + return builder; } - public Builder nested(Nested nested) { + public T nested(Nested nested) { this.nested = nested; - return this; + return builder; } - public Builder add(Mapper.Builder builder) { + public T add(Mapper.Builder builder) { mappersBuilders.add(builder); - return this; + return this.builder; } @Override @@ -204,6 +206,7 @@ protected static boolean parseObjectOrDocumentTypeProperties(String fieldName, O return false; } + @SuppressWarnings("rawtypes") protected static void parseNested(String name, Map node, ObjectMapper.Builder builder) { boolean nested = false; boolean nestedIncludeInParent = false; @@ -236,6 +239,7 @@ protected static void parseNested(String name, Map node, ObjectM } + @SuppressWarnings("rawtypes") protected static void parseProperties(ObjectMapper.Builder objBuilder, Map propsNode, ParserContext parserContext) { Iterator> iterator = propsNode.entrySet().iterator(); while (iterator.hasNext()) { @@ -273,9 +277,9 @@ protected static void parseProperties(ObjectMapper.Builder objBuilder, Map fieldBuilder = typeParser.parse(realFieldName, propNode, parserContext); for (int i = fieldNameParts.length - 2; i >= 0; --i) { - ObjectMapper.Builder intermediate = new ObjectMapper.Builder(fieldNameParts[i]); + ObjectMapper.Builder intermediate = new ObjectMapper.Builder<>(fieldNameParts[i]); intermediate.add(fieldBuilder); fieldBuilder = intermediate; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java index 02aa83c1bdcb6..0908bf1bd9590 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RangeFieldMapper.java @@ -77,13 +77,14 @@ public static class Defaults { static final Setting COERCE_SETTING = Setting.boolSetting("index.mapping.coerce", true, Setting.Property.IndexScope); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private Boolean coerce; private Locale locale = Locale.ROOT; private String pattern; public Builder(String name, RangeType type) { super(name, new RangeFieldType(type), new RangeFieldType(type)); + builder = this; } @Override @@ -91,8 +92,9 @@ public RangeFieldType fieldType() { return (RangeFieldType)fieldType; } - public void coerce(boolean coerce) { + public Builder coerce(boolean coerce) { this.coerce = coerce; + return builder; } protected Explicit coerce(BuilderContext context) { @@ -105,12 +107,13 @@ protected Explicit coerce(BuilderContext context) { return Defaults.COERCE; } - public void format(String format) { + public Builder format(String format) { this.pattern = format; + return this; } @Override - public void nullValue(Object nullValue) { + public Builder nullValue(Object nullValue) { throw new IllegalArgumentException("Field [" + name() + "] does not support null value."); } @@ -123,10 +126,10 @@ protected void setupFieldType(BuilderContext context) { super.setupFieldType(context); DateFormatter formatter = fieldType().dateTimeFormatter; if (fieldType().rangeType == RangeType.DATE) { - boolean hasPatternChanged = Strings.hasLength(this.pattern) && - Objects.equals(this.pattern, formatter.pattern()) == false; + boolean hasPatternChanged = Strings.hasLength(builder.pattern) && + Objects.equals(builder.pattern, formatter.pattern()) == false; - if (hasPatternChanged || Objects.equals(this.locale, formatter.locale()) == false) { + if (hasPatternChanged || Objects.equals(builder.locale, formatter.locale()) == false) { fieldType().setDateTimeFormatter(DateFormatter.forPattern(pattern).withLocale(locale)); } } else if (pattern != null) { @@ -151,7 +154,7 @@ public TypeParser(RangeType type) { } @Override - public Mapper.Builder parse(String name, Map node, + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java index 0cad1067b8317..0cb6c8dd286ff 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java @@ -59,7 +59,7 @@ public static class Defaults { public static final boolean NUMERIC_DETECTION = false; } - public static class Builder extends ObjectMapper.Builder { + public static class Builder extends ObjectMapper.Builder { protected Explicit dynamicTemplates = new Explicit<>(new DynamicTemplate[0], false); protected Explicit dynamicDateTimeFormatters = new Explicit<>(Defaults.DYNAMIC_DATE_TIME_FORMATTERS, false); @@ -68,20 +68,17 @@ public static class Builder extends ObjectMapper.Builder { public Builder(String name) { super(name); + this.builder = this; } - public void dynamicDateTimeFormatter(Collection dateTimeFormatters) { + public Builder dynamicDateTimeFormatter(Collection dateTimeFormatters) { this.dynamicDateTimeFormatters = new Explicit<>(dateTimeFormatters.toArray(new DateFormatter[0]), true); + return this; } - public void dynamicTemplates(Collection templates) { + public Builder dynamicTemplates(Collection templates) { this.dynamicTemplates = new Explicit<>(templates.toArray(new DynamicTemplate[0]), true); - } - - @Override - public Builder add(Mapper.Builder builder) { - super.add(builder); - return this; // overriding for covalent return type + return this; } @Override @@ -376,7 +373,7 @@ private static void validateDynamicTemplate(Mapper.TypeParser.ParserContext pars Map fieldTypeConfig = dynamicTemplate.mappingForName("__dummy__", defaultDynamicType); fieldTypeConfig.remove("type"); try { - Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); + Mapper.Builder dummyBuilder = typeParser.parse("__dummy__", fieldTypeConfig, parserContext); if (fieldTypeConfig.isEmpty()) { Settings indexSettings = parserContext.mapperService().getIndexSettings().getSettings(); BuilderContext builderContext = new BuilderContext(indexSettings, new ContentPath(1)); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java index 556538ffbe304..703394c0de8c1 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java @@ -58,7 +58,7 @@ public static class Defaults { public static final boolean REQUIRED = false; } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean required = Defaults.REQUIRED; @@ -66,8 +66,9 @@ public Builder(MappedFieldType existing) { super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE); } - public void required(boolean required) { + public Builder required(boolean required) { this.required = required; + return builder; } @Override @@ -78,7 +79,7 @@ public RoutingFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(parserContext.mapperService().fieldType(NAME)); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java index dcb2fc2fe3839..4027f5157b521 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java @@ -105,7 +105,7 @@ public static class SeqNoDefaults { } } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { public Builder() { super(SeqNoDefaults.NAME, SeqNoDefaults.FIELD_TYPE, SeqNoDefaults.FIELD_TYPE); @@ -119,7 +119,7 @@ public SeqNoFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java index 8471411301f9f..8f39bcf3bec2d 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; @@ -85,16 +85,19 @@ public Builder() { super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); } - public void enabled(boolean enabled) { + public Builder enabled(boolean enabled) { this.enabled = enabled; + return this; } - public void includes(String[] includes) { + public Builder includes(String[] includes) { this.includes = includes; + return this; } - public void excludes(String[] excludes) { + public Builder excludes(String[] excludes) { this.excludes = excludes; + return this; } @Override @@ -105,7 +108,7 @@ public SourceFieldMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java index d3c76536c49a9..207426f31ab88 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TextFieldMapper.java @@ -110,7 +110,7 @@ public static class Defaults { public static final int POSITION_INCREMENT_GAP = 100; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int positionIncrementGap = POSITION_INCREMENT_GAP_USE_ANALYZER; private int minPrefixChars = -1; @@ -118,6 +118,7 @@ public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -135,11 +136,12 @@ public Builder positionIncrementGap(int positionIncrementGap) { public Builder fielddata(boolean fielddata) { fieldType().setFielddata(fielddata); - return this; + return builder; } - public void indexPhrases(boolean indexPhrases) { + public Builder indexPhrases(boolean indexPhrases) { fieldType().setIndexPhrases(indexPhrases); + return builder; } @Override @@ -147,22 +149,22 @@ public Builder docValues(boolean docValues) { if (docValues) { throw new IllegalArgumentException("[text] fields do not support doc values"); } - super.docValues(docValues); - return this; + return super.docValues(docValues); } - public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); + return builder; } public Builder fielddataFrequencyFilter(double minFreq, double maxFreq, int minSegmentSize) { fieldType().setFielddataMinFrequency(minFreq); fieldType().setFielddataMaxFrequency(maxFreq); fieldType().setFielddataMinSegmentSize(minSegmentSize); - return this; + return builder; } - public void indexPrefixes(int minChars, int maxChars) { + public Builder indexPrefixes(int minChars, int maxChars) { if (minChars > maxChars) { throw new IllegalArgumentException("min_chars [" + minChars + "] must be less than max_chars [" + maxChars + "]"); @@ -175,6 +177,7 @@ public void indexPrefixes(int minChars, int maxChars) { } this.minPrefixChars = minChars; this.maxPrefixChars = maxChars; + return this; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java index c34caff86021a..7022cff04ee17 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java @@ -74,7 +74,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java index 176385cfe66d5..f451909fbe481 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java @@ -146,7 +146,7 @@ private static void parseAnalyzersAndTermVectors(FieldMapper.Builder builder, St } } - public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { + public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode) { builder.omitNorms(XContentMapValues.nodeBooleanValue(propNode, fieldName + ".norms") == false); } @@ -154,7 +154,7 @@ public static void parseNorms(FieldMapper.Builder builder, String fieldName, Obj * Parse text field attributes. In addition to {@link #parseField common attributes} * this will parse analysis and term-vectors related settings. */ - public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, + public static void parseTextField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseField(builder, name, fieldNode, parserContext); parseAnalyzersAndTermVectors(builder, name, fieldNode, parserContext); @@ -172,7 +172,7 @@ public static void parseTextField(FieldMapper.Builder builder, String name, Map< /** * Parse the {@code meta} key of the mapping. */ - public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { + public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode) { Object metaObject = fieldNode.remove("meta"); if (metaObject == null) { // no meta @@ -218,7 +218,7 @@ public static void parseMeta(FieldMapper.Builder builder, String name, Map fieldNode, + public static void parseField(FieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { parseMeta(builder, name, fieldNode); for (Iterator> iterator = fieldNode.entrySet().iterator(); iterator.hasNext();) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java index 26d2dd40849fe..d8e8966992598 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/VersionFieldMapper.java @@ -56,7 +56,7 @@ public static class Defaults { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { throw new MapperParsingException(NAME + " is not configurable"); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java index 6e3835836758e..30645ffd84a97 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMapper.java @@ -56,24 +56,29 @@ public static class Names { public static final String FIELD_SHAPE = "shape"; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private BinaryFieldMapper.Builder binBuilder = new BinaryFieldMapper.Builder(Names.FIELD_BIN); private BooleanFieldMapper.Builder boolBuilder = new BooleanFieldMapper.Builder(Names.FIELD_BOOL); private GeoPointFieldMapper.Builder latLonPointBuilder = new GeoPointFieldMapper.Builder(Names.FIELD_POINT); private GeoShapeFieldMapper.Builder shapeBuilder = new GeoShapeFieldMapper.Builder(Names.FIELD_SHAPE); - private FieldMapper.Builder stringBuilder; + private Mapper.Builder stringBuilder; private String generatedValue; private String mapperName; public Builder(String name, String generatedValue, String mapperName) { super(name, new ExternalFieldType(), new ExternalFieldType()); - this.stringBuilder = new TextFieldMapper.Builder(name); - this.stringBuilder.store(false); + this.builder = this; + this.stringBuilder = new TextFieldMapper.Builder(name).store(false); this.generatedValue = generatedValue; this.mapperName = mapperName; } + public Builder string(Mapper.Builder content) { + this.stringBuilder = content; + return this; + } + @Override public ExternalMapper build(BuilderContext context) { context.path().add(name); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java index af2d81bd7227e..844d824083924 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java @@ -74,7 +74,7 @@ public void postParse(ParseContext context) throws IOException { context.doc().add(new StringField(FIELD_NAME, FIELD_VALUE, Store.YES)); } - public static class Builder extends MetadataFieldMapper.Builder { + public static class Builder extends MetadataFieldMapper.Builder { protected Builder() { super(FIELD_NAME, FIELD_TYPE, FIELD_TYPE); @@ -90,7 +90,7 @@ public ExternalMetadataMapper build(BuilderContext context) { public static class TypeParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return new Builder(); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java index 6d7d6d984e0b2..72588e0323943 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/FakeStringFieldMapper.java @@ -50,10 +50,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java b/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java index 15fa0242d434a..a2f62cf02447c 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ObjectMapperMergeTests.java @@ -108,7 +108,7 @@ public void testDisableRootMapper() { private static RootObjectMapper createRootObjectMapper(String name, boolean enabled, Map mappers) { final Settings indexSettings = Settings.builder().put(SETTING_VERSION_CREATED, Version.CURRENT).build(); final Mapper.BuilderContext context = new Mapper.BuilderContext(indexSettings, new ContentPath()); - final RootObjectMapper rootObjectMapper = (RootObjectMapper) new RootObjectMapper.Builder(name).enabled(enabled).build(context); + final RootObjectMapper rootObjectMapper = new RootObjectMapper.Builder(name).enabled(enabled).build(context); mappers.values().forEach(rootObjectMapper::putMapper); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java index 13973af2ea05e..b4074833ce9dc 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/TypeParsersTests.java @@ -232,7 +232,7 @@ public TokenStream create(TokenStream tokenStream) { } public void testParseMeta() { - FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); + FieldMapper.Builder builder = new KeywordFieldMapper.Builder("foo"); Mapper.TypeParser.ParserContext parserContext = new Mapper.TypeParser.ParserContext(null, null, null, null, null); { diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java index bfaf0d2ca7179..311b5fb6c2f32 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesModuleTests.java @@ -56,7 +56,7 @@ public class IndicesModuleTests extends ESTestCase { private static class FakeMapperParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } @@ -64,7 +64,7 @@ public Mapper.Builder parse(String name, Map node, ParserContext private static class FakeMetadataMapperParser implements MetadataFieldMapper.TypeParser { @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { return null; } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java index 3f7d1b9ca273f..15186fef5748b 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MinAggregatorTests.java @@ -19,6 +19,26 @@ package org.elasticsearch.search.aggregations.metrics; +import static java.util.Collections.singleton; +import static org.elasticsearch.index.query.QueryBuilders.termQuery; +import static org.hamcrest.Matchers.equalTo; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; + import org.apache.lucene.document.Document; import org.apache.lucene.document.DoublePoint; import org.apache.lucene.document.Field; @@ -90,26 +110,6 @@ import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.lookup.LeafDocLookup; -import java.io.IOException; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; - -import static java.util.Collections.singleton; -import static org.elasticsearch.index.query.QueryBuilders.termQuery; -import static org.hamcrest.Matchers.equalTo; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - public class MinAggregatorTests extends AggregatorTestCase { private final String SCRIPT_NAME = "script_name"; diff --git a/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java b/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java index 2186e24026c5a..b1dd7b7cc807a 100644 --- a/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java +++ b/server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java @@ -210,7 +210,7 @@ public MappedFieldType fieldMapper(String name) { @Override public ObjectMapper getObjectMapper(String name) { BuilderContext context = new BuilderContext(this.getIndexSettings().getSettings(), new ContentPath()); - return new ObjectMapper.Builder(name).nested(Nested.newNested(false, false)).build(context); + return new ObjectMapper.Builder<>(name).nested(Nested.newNested(false, false)).build(context); } }; } diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java index adcbbf91ca12d..8ca7278b6e7b6 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java @@ -316,7 +316,7 @@ public boolean shouldCache(Query query) { String fieldName = (String) invocation.getArguments()[0]; if (fieldName.startsWith(NESTEDFIELD_PREFIX)) { BuilderContext context = new BuilderContext(indexSettings.getSettings(), new ContentPath()); - return new ObjectMapper.Builder(fieldName).nested(Nested.newNested(false, false)).build(context); + return new ObjectMapper.Builder<>(fieldName).nested(Nested.newNested(false, false)).build(context); } return null; }); @@ -495,7 +495,7 @@ protected A searchAndReduc a.preCollection(); subSearcher.search(weight, a); a.postCollection(); - InternalAggregation agg = a.buildTopLevel(); + InternalAggregation agg = a.buildTopLevel(); aggs.add(agg); InternalAggregationTestCase.assertMultiBucketConsumer(agg, shardBucketConsumer); } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java index e9f0cd4e04f74..3cd48ed73fd5e 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/mapper/HistogramFieldMapper.java @@ -86,15 +86,17 @@ public static class Defaults { public static final ParseField COUNTS_FIELD = new ParseField("counts"); public static final ParseField VALUES_FIELD = new ParseField("values"); - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected Boolean ignoreMalformed; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } - public void ignoreMalformed(boolean ignoreMalformed) { + public Builder ignoreMalformed(boolean ignoreMalformed) { this.ignoreMalformed = ignoreMalformed; + return builder; } protected Explicit ignoreMalformed(BuilderContext context) { @@ -124,7 +126,7 @@ public HistogramFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new HistogramFieldMapper.Builder(name); TypeParsers.parseMeta(builder, name, node); diff --git a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java index c3da6f2078524..8f025fc1c8011 100644 --- a/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java +++ b/x-pack/plugin/mapper-constant-keyword/src/main/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapper.java @@ -60,14 +60,16 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } - public void setValue(String value) { + public Builder setValue(String value) { fieldType().setValue(value); + return this; } @Override @@ -86,7 +88,7 @@ public ConstantKeywordFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Object value = null; if (node.containsKey("value")) { value = node.remove("value"); diff --git a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java index 1a960ce273d48..2f31d2a140466 100644 --- a/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java +++ b/x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/mapper/FlatObjectFieldMapper.java @@ -109,12 +109,13 @@ private static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int depthLimit = Defaults.DEPTH_LIMIT; private int ignoreAbove = Defaults.IGNORE_ABOVE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -123,13 +124,13 @@ public RootFlatObjectFieldType fieldType() { } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) > 0) { throw new IllegalArgumentException("The [" + CONTENT_TYPE + "] field does not support positions, got [index_options]=" + indexOptionToString(indexOptions)); } - super.indexOptions(indexOptions); + return super.indexOptions(indexOptions); } public Builder depthLimit(int depthLimit) { @@ -140,8 +141,9 @@ public Builder depthLimit(int depthLimit) { return this; } - public void eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { + public Builder eagerGlobalOrdinals(boolean eagerGlobalOrdinals) { fieldType().setEagerGlobalOrdinals(eagerGlobalOrdinals); + return builder; } public Builder ignoreAbove(int ignoreAbove) { @@ -152,17 +154,18 @@ public Builder ignoreAbove(int ignoreAbove) { return this; } - public void splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { + public Builder splitQueriesOnWhitespace(boolean splitQueriesOnWhitespace) { fieldType().setSplitQueriesOnWhitespace(splitQueriesOnWhitespace); + return builder; } @Override - public Builder addMultiField(Mapper.Builder mapperBuilder) { + public Builder addMultiField(Mapper.Builder mapperBuilder) { throw new UnsupportedOperationException("[fields] is not supported for [" + CONTENT_TYPE + "] fields."); } @Override - public void copyTo(CopyTo copyTo) { + public Builder copyTo(CopyTo copyTo) { throw new UnsupportedOperationException("[copy_to] is not supported for [" + CONTENT_TYPE + "] fields."); } @@ -185,7 +188,7 @@ public FlatObjectFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); parseField(builder, name, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java index 5b7ee79aff6cc..830bff751d311 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/GeoShapeWithDocValuesFieldMapper.java @@ -63,7 +63,9 @@ public class GeoShapeWithDocValuesFieldMapper extends GeoShapeFieldMapper { public static final String CONTENT_TYPE = "geo_shape"; private Explicit docValues; - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + @SuppressWarnings("rawtypes") + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super (name, new GeoShapeWithDocValuesFieldType(), new GeoShapeWithDocValuesFieldType()); } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java index ae1443e1d14a9..a986127dfc551 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/PointFieldMapper.java @@ -34,9 +34,10 @@ public class PointFieldMapper extends AbstractPointGeometryFieldMapper { + public static class Builder extends AbstractPointGeometryFieldMapper.Builder { public Builder(String name) { super(name, new PointFieldType(), new PointFieldType()); + builder = this; } @Override diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java index 3c0488ae7eb8b..a865768d00008 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/index/mapper/ShapeFieldMapper.java @@ -43,11 +43,13 @@ public static class Defaults extends AbstractShapeGeometryFieldMapper.Defaults { public static final ShapeFieldType FIELD_TYPE = new ShapeFieldType(); } - @SuppressWarnings({"unchecked"}) - public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { + @SuppressWarnings({"unchecked", "rawtypes"}) + public static class Builder extends AbstractShapeGeometryFieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java index 959a35edaf314..2a8ce28a9e643 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/DenseVectorFieldMapper.java @@ -58,11 +58,12 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { private int dims = 0; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } public Builder dims(int dims) { @@ -96,7 +97,7 @@ public DenseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { DenseVectorFieldMapper.Builder builder = new DenseVectorFieldMapper.Builder(name); Object dimsField = node.remove("dims"); if (dimsField == null) { diff --git a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java index d795fe07560f6..d5c03e2400e47 100644 --- a/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java +++ b/x-pack/plugin/vectors/src/main/java/org/elasticsearch/xpack/vectors/mapper/SparseVectorFieldMapper.java @@ -53,10 +53,11 @@ public static class Defaults { } } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -70,7 +71,7 @@ public SparseVectorFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { if (parserContext.indexVersionCreated().onOrAfter(Version.V_8_0_0)) { throw new IllegalArgumentException(ERROR_MESSAGE); diff --git a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java index 7143f0a534666..cb4dc07ba81cf 100644 --- a/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java +++ b/x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java @@ -100,12 +100,13 @@ public static class Defaults { public static final int IGNORE_ABOVE = Integer.MAX_VALUE; } - public static class Builder extends FieldMapper.Builder { + public static class Builder extends FieldMapper.Builder { protected int ignoreAbove = Defaults.IGNORE_ABOVE; public Builder(String name) { super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; } @Override @@ -117,10 +118,11 @@ public Builder docValues(boolean docValues) { } @Override - public void indexOptions(IndexOptions indexOptions) { + public Builder indexOptions(IndexOptions indexOptions) { if (indexOptions != IndexOptions.DOCS) { throw new MapperParsingException("The field [" + name + "] cannot have indexOptions = " + indexOptions); } + return this; } @Override @@ -132,7 +134,7 @@ public Builder store(boolean store) { } @Override - public void similarity(SimilarityProvider similarity) { + public Builder similarity(SimilarityProvider similarity) { throw new MapperParsingException("The field [" + name + "] cannot have custom similarities"); } @@ -144,11 +146,12 @@ public Builder index(boolean index) { return this; } - public void ignoreAbove(int ignoreAbove) { + public Builder ignoreAbove(int ignoreAbove) { if (ignoreAbove < 0) { throw new IllegalArgumentException("[ignore_above] must be positive, got " + ignoreAbove); } this.ignoreAbove = ignoreAbove; + return this; } @@ -176,7 +179,7 @@ public WildcardFieldMapper build(BuilderContext context) { public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { WildcardFieldMapper.Builder builder = new WildcardFieldMapper.Builder(name); parseField(builder, name, node, parserContext);