From 7033e2dff2639720ea1fe5d06d9b5f4d2d55c9c0 Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Tue, 21 Jul 2020 13:49:06 +0200 Subject: [PATCH] Tweak toXContent implementation of ParametrizedFieldMapper ParametrizedFieldMapper overrides `toXContent` from `FieldMapper`, yet it could override `doXContentBody` and rely on the `toXContent` from the base class. Additionally, this allows to make `doXContentBody` final. Also, toXContent is still overridden only to make it final. --- .../index/mapper/ParametrizedFieldMapper.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/mapper/ParametrizedFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/ParametrizedFieldMapper.java index 9486ff854920b..530d8c2e3adb4 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/ParametrizedFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/ParametrizedFieldMapper.java @@ -105,13 +105,15 @@ protected final void mergeOptions(FieldMapper other, List conflicts) { @Override public final XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - builder.startObject(simpleName()); + return super.toXContent(builder, params); + } + + @Override + protected final void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { builder.field("type", contentType()); - boolean includeDefaults = params.paramAsBoolean("include_defaults", false); getMergeBuilder().toXContent(builder, includeDefaults); multiFields.toXContent(builder, params); copyTo.toXContent(builder, params); - return builder.endObject(); } /**