Add: ResponseBody and ResponseBodyBuilder classes for building response body
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
package ch.unibas.dmi.dbis.cs108.casono.server.network.response;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ResponseBody {
|
||||
private final List<ResponseNode> nodes;
|
||||
|
||||
ResponseBody(List<ResponseNode> nodes) {
|
||||
this.nodes = List.copyOf(nodes);
|
||||
}
|
||||
|
||||
public static ResponseBodyBuilder builder() {
|
||||
return new ResponseBodyBuilder();
|
||||
}
|
||||
|
||||
public List<ResponseNode> nodes() {
|
||||
return nodes;
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package ch.unibas.dmi.dbis.cs108.casono.server.network.response;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ResponseBodyBuilder {
|
||||
private final List<ResponseNode> nodes = new ArrayList<>();
|
||||
|
||||
public ResponseBodyBuilder param(String key, Object value) {
|
||||
nodes.add(new ResponseParameter(key, value));
|
||||
return this;
|
||||
}
|
||||
|
||||
public ResponseBodyBuilder block(String tag, Consumer<ResponseBodyBuilder> content) {
|
||||
ResponseBodyBuilder childBuilder = new ResponseBodyBuilder();
|
||||
content.accept(childBuilder);
|
||||
nodes.add(new ResponseBlock(tag, childBuilder.build().nodes()));
|
||||
return this;
|
||||
}
|
||||
|
||||
public ResponseBody build() {
|
||||
return new ResponseBody(nodes);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user