Create components to respond to client request #200

Merged
lars.winzer merged 12 commits from feat/serverside-response into main 2026-03-24 15:02:16 +01:00
2 changed files with 44 additions and 0 deletions
Showing only changes of commit 796827cbb4 - Show all commits
@@ -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);
}
}