Tweak toXContent implementation of ParametrizedFieldMapper (#59968)

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.
This commit is contained in:
Luca Cavanna 2020-07-21 14:47:25 +02:00
parent 19fe3e511f
commit 5e17f00ecf
1 changed files with 5 additions and 3 deletions

View File

@ -109,13 +109,15 @@ public abstract class ParametrizedFieldMapper extends FieldMapper {
@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();
}
/**