@Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(Fields.COUNT); counts.toXContent(builder, params); builder.endObject(); builder.startArray(Fields.VERSIONS); for (Version v : versions) { builder.value(v.toString()); } builder.endArray(); builder.startObject(Fields.OS); os.toXContent(builder, params); builder.endObject(); builder.startObject(Fields.PROCESS); process.toXContent(builder, params); builder.endObject(); builder.startObject(Fields.JVM); jvm.toXContent(builder, params); builder.endObject(); builder.field(Fields.FS); fs.toXContent(builder, params); builder.startArray(Fields.PLUGINS); for (PluginInfo pluginInfo : plugins) { pluginInfo.toXContent(builder, params); } builder.endArray(); return builder; }