|
@@ -20,13 +20,14 @@
|
|
|
package org.elasticsearch.action.admin.cluster.repositories.get;
|
|
|
|
|
|
import org.elasticsearch.action.ActionResponse;
|
|
|
+import org.elasticsearch.cluster.metadata.RepositoriesMetaData;
|
|
|
import org.elasticsearch.cluster.metadata.RepositoryMetaData;
|
|
|
import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
|
-import org.elasticsearch.common.settings.Settings;
|
|
|
+import org.elasticsearch.common.xcontent.ToXContentObject;
|
|
|
+import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
@@ -34,15 +35,15 @@ import java.util.List;
|
|
|
/**
|
|
|
* Get repositories response
|
|
|
*/
|
|
|
-public class GetRepositoriesResponse extends ActionResponse implements Iterable<RepositoryMetaData> {
|
|
|
-
|
|
|
- private List<RepositoryMetaData> repositories = Collections.emptyList();
|
|
|
+public class GetRepositoriesResponse extends ActionResponse implements ToXContentObject {
|
|
|
|
|
|
+ private RepositoriesMetaData repositories;
|
|
|
|
|
|
GetRepositoriesResponse() {
|
|
|
+ repositories = new RepositoriesMetaData(Collections.emptyList());
|
|
|
}
|
|
|
|
|
|
- GetRepositoriesResponse(List<RepositoryMetaData> repositories) {
|
|
|
+ GetRepositoriesResponse(RepositoriesMetaData repositories) {
|
|
|
this.repositories = repositories;
|
|
|
}
|
|
|
|
|
@@ -52,43 +53,25 @@ public class GetRepositoriesResponse extends ActionResponse implements Iterable<
|
|
|
* @return list or repositories
|
|
|
*/
|
|
|
public List<RepositoryMetaData> repositories() {
|
|
|
- return repositories;
|
|
|
+ return repositories.repositories();
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public void readFrom(StreamInput in) throws IOException {
|
|
|
- super.readFrom(in);
|
|
|
- int size = in.readVInt();
|
|
|
- List<RepositoryMetaData> repositoryListBuilder = new ArrayList<>(size);
|
|
|
- for (int j = 0; j < size; j++) {
|
|
|
- repositoryListBuilder.add(new RepositoryMetaData(
|
|
|
- in.readString(),
|
|
|
- in.readString(),
|
|
|
- Settings.readSettingsFromStream(in))
|
|
|
- );
|
|
|
- }
|
|
|
- repositories = Collections.unmodifiableList(repositoryListBuilder);
|
|
|
+ repositories = new RepositoriesMetaData(in);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void writeTo(StreamOutput out) throws IOException {
|
|
|
- super.writeTo(out);
|
|
|
- out.writeVInt(repositories.size());
|
|
|
- for (RepositoryMetaData repository : repositories) {
|
|
|
- out.writeString(repository.name());
|
|
|
- out.writeString(repository.type());
|
|
|
- Settings.writeSettingsToStream(repository.settings(), out);
|
|
|
- }
|
|
|
+ repositories.writeTo(out);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Iterator over the repositories data
|
|
|
- *
|
|
|
- * @return iterator over the repositories data
|
|
|
- */
|
|
|
@Override
|
|
|
- public Iterator<RepositoryMetaData> iterator() {
|
|
|
- return repositories.iterator();
|
|
|
+ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
|
|
+ builder.startObject();
|
|
|
+ repositories.toXContent(builder, params);
|
|
|
+ builder.endObject();
|
|
|
+ return builder;
|
|
|
}
|
|
|
}
|