[New] Added StrolchElementToJsonVisitor.bagHook()

This commit is contained in:
Robert von Burg 2019-01-07 13:56:55 +01:00
parent 3bbfcab345
commit 9636be57c7
1 changed files with 15 additions and 3 deletions

View File

@ -34,6 +34,7 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor<JsonEl
private Set<String> ignoredTimedStates; private Set<String> ignoredTimedStates;
private Set<String> ignoredBagTypes; private Set<String> ignoredBagTypes;
private BiConsumer<ParameterBag, JsonObject> bagHook;
private BiConsumer<Resource, JsonObject> resourceHook; private BiConsumer<Resource, JsonObject> resourceHook;
private BiConsumer<Order, JsonObject> orderHook; private BiConsumer<Order, JsonObject> orderHook;
private BiConsumer<Activity, JsonObject> activityHook; private BiConsumer<Activity, JsonObject> activityHook;
@ -141,6 +142,11 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor<JsonEl
return this; return this;
} }
public StrolchElementToJsonVisitor bagHook(BiConsumer<ParameterBag, JsonObject> hook) {
this.bagHook = hook;
return this;
}
public StrolchElementToJsonVisitor resourceHook(BiConsumer<Resource, JsonObject> hook) { public StrolchElementToJsonVisitor resourceHook(BiConsumer<Resource, JsonObject> hook) {
this.resourceHook = hook; this.resourceHook = hook;
return this; return this;
@ -291,12 +297,15 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor<JsonEl
if (isFlat()) { if (isFlat()) {
JsonObject rootJ = new JsonObject(); JsonObject bagJ = new JsonObject();
Set<String> ignoredParamIds = this.ignoredKeys.getSet(bag.getId()); Set<String> ignoredParamIds = this.ignoredKeys.getSet(bag.getId());
addParameterBagFlat(rootJ, ignoredParamIds, bag); addParameterBagFlat(bagJ, ignoredParamIds, bag);
return rootJ; if (this.bagHook != null)
this.bagHook.accept(bag, bagJ);
return bagJ;
} }
return parameterBagToJsonFull(bag); return parameterBagToJsonFull(bag);
@ -552,6 +561,9 @@ public class StrolchElementToJsonVisitor implements StrolchElementVisitor<JsonEl
paramsJ.add(paramKey, paramToJsonFull(param)); paramsJ.add(paramKey, paramToJsonFull(param));
} }
if (this.bagHook != null)
this.bagHook.accept(bag, bagJ);
return bagJ; return bagJ;
} }