Esempio n. 1
0
  @Override
  public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
    if (indexCreatedBefore2x == false) {
      return builder;
    }
    boolean includeDefaults = params.paramAsBoolean("include_defaults", false);

    // if all are defaults, no sense to write it at all
    if (!includeDefaults
        && fieldType().stored() == Defaults.FIELD_TYPE.stored()
        && fieldType().indexOptions() == Defaults.FIELD_TYPE.indexOptions()
        && path == Defaults.PATH
        && hasCustomFieldDataSettings() == false) {
      return builder;
    }
    builder.startObject(CONTENT_TYPE);
    if (includeDefaults || fieldType().stored() != Defaults.FIELD_TYPE.stored()) {
      builder.field("store", fieldType().stored());
    }
    if (includeDefaults || fieldType().indexOptions() != Defaults.FIELD_TYPE.indexOptions()) {
      builder.field(
          "index",
          indexTokenizeOptionToString(
              fieldType().indexOptions() != IndexOptions.NONE, fieldType().tokenized()));
    }
    if (includeDefaults || path != Defaults.PATH) {
      builder.field("path", path);
    }

    if (includeDefaults || hasCustomFieldDataSettings()) {
      builder.field("fielddata", (Map) fieldType().fieldDataType().getSettings().getAsMap());
    }
    builder.endObject();
    return builder;
  }
  @Override
  public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
    boolean includeDefaults = params.paramAsBoolean("include_defaults", false);

    // if all are defaults, no sense to write it at all
    boolean indexed = fieldType.indexOptions() != IndexOptions.NONE;
    boolean indexedDefault = Defaults.FIELD_TYPE.indexOptions() != IndexOptions.NONE;
    if (!includeDefaults
        && indexed == indexedDefault
        && fieldType.stored() == Defaults.FIELD_TYPE.stored()
        && required == Defaults.REQUIRED
        && path == Defaults.PATH) {
      return builder;
    }
    builder.startObject(CONTENT_TYPE);
    if (indexCreatedBefore2x && (includeDefaults || indexed != indexedDefault)) {
      builder.field("index", indexTokenizeOptionToString(indexed, fieldType.tokenized()));
    }
    if (indexCreatedBefore2x
        && (includeDefaults || fieldType.stored() != Defaults.FIELD_TYPE.stored())) {
      builder.field("store", fieldType.stored());
    }
    if (includeDefaults || required != Defaults.REQUIRED) {
      builder.field("required", required);
    }
    if (indexCreatedBefore2x && (includeDefaults || path != Defaults.PATH)) {
      builder.field("path", path);
    }
    builder.endObject();
    return builder;
  }