Exemplo n.º 1
0
  public XContentBuilder toXContentEmbedded(XContentBuilder builder, Params params)
      throws IOException {
    List<GetField> metaFields = new ArrayList<>();
    List<GetField> otherFields = new ArrayList<>();
    if (fields != null && !fields.isEmpty()) {
      for (GetField field : fields.values()) {
        if (field.getValues().isEmpty()) {
          continue;
        }
        if (field.isMetadataField()) {
          metaFields.add(field);
        } else {
          otherFields.add(field);
        }
      }
    }

    for (GetField field : metaFields) {
      builder.field(field.getName(), field.getValue());
    }

    builder.field(Fields.FOUND, exists);

    if (source != null) {
      XContentHelper.writeRawField("_source", source, builder, params);
    }

    if (!otherFields.isEmpty()) {
      builder.startObject(Fields.FIELDS);
      for (GetField field : otherFields) {
        builder.startArray(field.getName());
        for (Object value : field.getValues()) {
          builder.value(value);
        }
        builder.endArray();
      }
      builder.endObject();
    }
    return builder;
  }