diff --git a/li.strolch.model/src/main/java/li/strolch/model/json/ActivityToFlatJsonVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/json/ActivityToFlatJsonVisitor.java index 5dddbef95..c0f91d2f0 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/json/ActivityToFlatJsonVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/json/ActivityToFlatJsonVisitor.java @@ -1,5 +1,7 @@ package li.strolch.model.json; +import java.util.function.BiConsumer; + import com.google.gson.JsonObject; import li.strolch.model.activity.Activity; @@ -11,4 +13,28 @@ public class ActivityToFlatJsonVisitor extends ToFlatJsonVisitor imple public JsonObject visit(Activity element) { return toJson(element); } + + @Override + public ActivityToFlatJsonVisitor withoutElementName() { + super.withoutElementName(); + return this; + } + + @Override + public ActivityToFlatJsonVisitor setHook(BiConsumer hook) { + super.setHook(hook); + return this; + } + + @Override + public ActivityToFlatJsonVisitor ignoreBag(String bagId) { + super.ignoreBag(bagId); + return this; + } + + @Override + public ActivityToFlatJsonVisitor ignoreParameter(String bagId, String paramId) { + super.ignoreParameter(bagId, paramId); + return this; + } } diff --git a/li.strolch.model/src/main/java/li/strolch/model/json/OrderToFlatJsonVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/json/OrderToFlatJsonVisitor.java index 1ba93ebaf..323dde106 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/json/OrderToFlatJsonVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/json/OrderToFlatJsonVisitor.java @@ -1,5 +1,7 @@ package li.strolch.model.json; +import java.util.function.BiConsumer; + import com.google.gson.JsonObject; import li.strolch.model.Order; @@ -11,4 +13,28 @@ public class OrderToFlatJsonVisitor extends ToFlatJsonVisitor implements public JsonObject visit(Order element) { return toJson(element); } + + @Override + public OrderToFlatJsonVisitor withoutElementName() { + super.withoutElementName(); + return this; + } + + @Override + public OrderToFlatJsonVisitor setHook(BiConsumer hook) { + super.setHook(hook); + return this; + } + + @Override + public OrderToFlatJsonVisitor ignoreBag(String bagId) { + super.ignoreBag(bagId); + return this; + } + + @Override + public OrderToFlatJsonVisitor ignoreParameter(String bagId, String paramId) { + super.ignoreParameter(bagId, paramId); + return this; + } } diff --git a/li.strolch.model/src/main/java/li/strolch/model/json/ResourceToFlatJsonVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/json/ResourceToFlatJsonVisitor.java index ed441bd7f..bb693e615 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/json/ResourceToFlatJsonVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/json/ResourceToFlatJsonVisitor.java @@ -1,5 +1,7 @@ package li.strolch.model.json; +import java.util.function.BiConsumer; + import com.google.gson.JsonObject; import li.strolch.model.Resource; @@ -11,4 +13,28 @@ public class ResourceToFlatJsonVisitor extends ToFlatJsonVisitor imple public JsonObject visit(Resource element) { return toJson(element); } + + @Override + public ResourceToFlatJsonVisitor withoutElementName() { + super.withoutElementName(); + return this; + } + + @Override + public ResourceToFlatJsonVisitor setHook(BiConsumer hook) { + super.setHook(hook); + return this; + } + + @Override + public ResourceToFlatJsonVisitor ignoreBag(String bagId) { + super.ignoreBag(bagId); + return this; + } + + @Override + public ResourceToFlatJsonVisitor ignoreParameter(String bagId, String paramId) { + super.ignoreParameter(bagId, paramId); + return this; + } } diff --git a/li.strolch.model/src/main/java/li/strolch/model/json/ToFlatJsonVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/json/ToFlatJsonVisitor.java index e7965d8ca..802c16510 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/json/ToFlatJsonVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/json/ToFlatJsonVisitor.java @@ -45,6 +45,7 @@ public class ToFlatJsonVisitor { private MapOfSets ignoredKeys; private BiConsumer hook; + private boolean withoutElementName; public ToFlatJsonVisitor() { this.ignoredKeys = new MapOfSets<>(); @@ -54,16 +55,24 @@ public class ToFlatJsonVisitor { this.ignoredKeys = new MapOfSets<>(); } - public void setHook(BiConsumer hook) { + public ToFlatJsonVisitor withoutElementName() { + this.withoutElementName = true; + return this; + } + + public ToFlatJsonVisitor setHook(BiConsumer hook) { this.hook = hook; + return this; } - public void ignoreBag(String bagId) { + public ToFlatJsonVisitor ignoreBag(String bagId) { this.ignoredKeys.addSet(bagId, Collections.emptySet()); + return this; } - public void ignoreParameter(String bagId, String paramId) { + public ToFlatJsonVisitor ignoreParameter(String bagId, String paramId) { this.ignoredKeys.addElement(bagId, paramId); + return this; } public JsonObject toJson(T element) { @@ -71,7 +80,8 @@ public class ToFlatJsonVisitor { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty(ID, element.getId()); - jsonObject.addProperty(NAME, element.getName()); + if (!this.withoutElementName) + jsonObject.addProperty(NAME, element.getName()); jsonObject.addProperty(TYPE, element.getType()); jsonObject.addProperty(OBJECT_TYPE, element.getClass().getSimpleName()); @@ -93,7 +103,8 @@ public class ToFlatJsonVisitor { continue; if (jsonObject.has(paramId)) { - throw new StrolchModelException("JsonObject already has a member with ID " + paramId); + throw new StrolchModelException( + "JsonObject already has a member with ID " + paramId + ": " + parameterBag.getLocator()); } Parameter param = parameterBag.getParameter(paramId);