diff --git a/li.strolch.model/src/main/java/li/strolch/model/json/StrolchElementToJsonVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/json/StrolchElementToJsonVisitor.java index 244959083..1f56d5392 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/json/StrolchElementToJsonVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/json/StrolchElementToJsonVisitor.java @@ -46,6 +46,7 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor flatBags; + private Set flatBagsByType; private boolean withoutElementName; private boolean withLocator; private boolean withoutVersion; @@ -58,14 +59,15 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor(); this.ignoredBagTypes = new HashSet<>(); this.flatBags = new HashSet<>(); + this.flatBagsByType = new HashSet<>(); } public boolean isFlat() { return this.flat; } - public boolean isBagFlat(String badId) { - return this.flatBags.contains(badId); + public boolean isBagFlat(ParameterBag bag) { + return this.flatBags.contains(bag.getId()) || this.flatBagsByType.contains(bag.getType()); } public boolean isWithVersion() { @@ -152,6 +154,11 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor { - private StrolchElementToJsonVisitor visitor = new StrolchElementToJsonVisitor(); + private final StrolchElementToJsonVisitor visitor = new StrolchElementToJsonVisitor(); @Override public JsonObject visitOrder(Order order) { @@ -114,6 +114,11 @@ public class StrolchRootElementToJsonVisitor implements StrolchRootElementVisito return this; } + public StrolchRootElementToJsonVisitor flatBagsByType(String... bagTypes) { + this.visitor.flatBagsByType(bagTypes); + return this; + } + public StrolchRootElementToJsonVisitor ignoreBag(String bagId) { this.visitor.ignoreBag(bagId); return this; @@ -134,7 +139,7 @@ public class StrolchRootElementToJsonVisitor implements StrolchRootElementVisito return this; } - public StrolchRootElementToJsonVisitor ignoreBagByType(String type) { + public StrolchRootElementToJsonVisitor ignoreBagByType(String... type) { this.visitor.ignoreBagByType(type); return this; }