Add: ResponseBody and ResponseBodyBuilder classes for building response body

This commit is contained in:
Lars Simon Winzer
2026-03-24 12:52:35 +01:00
parent e7c9063a5d
commit 796827cbb4
2 changed files with 44 additions and 0 deletions
@@ -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;
}
}
@@ -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);
}
}