[New] *To*JsonVisitor now support adding version to JSON result

This commit is contained in:
Robert von Burg 2017-04-13 12:10:30 +02:00
parent ffca077419
commit 05c2f8f09c
5 changed files with 43 additions and 12 deletions

View File

@ -9,6 +9,14 @@ import li.strolch.model.visitor.ActivityVisitor;
public class ActivityToFlatJsonVisitor extends ToFlatJsonVisitor<Activity> implements ActivityVisitor<JsonObject> {
public ActivityToFlatJsonVisitor() {
super();
}
public ActivityToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override
public JsonObject visit(Activity element) {
return toJson(element);

View File

@ -9,6 +9,14 @@ import li.strolch.model.visitor.OrderVisitor;
public class OrderToFlatJsonVisitor extends ToFlatJsonVisitor<Order> implements OrderVisitor<JsonObject> {
public OrderToFlatJsonVisitor() {
super();
}
public OrderToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override
public JsonObject visit(Order element) {
return toJson(element);

View File

@ -9,6 +9,14 @@ import li.strolch.model.visitor.ResourceVisitor;
public class ResourceToFlatJsonVisitor extends ToFlatJsonVisitor<Resource> implements ResourceVisitor<JsonObject> {
public ResourceToFlatJsonVisitor() {
super();
}
public ResourceToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override
public JsonObject visit(Resource element) {
return toJson(element);

View File

@ -168,14 +168,6 @@ public class StrolchElementToJsonVisitor implements StrolchRootElementVisitor<Js
return rootJ;
}
private String formatDate(Date date) {
return ISO8601FormatFactory.getInstance().formatDate(date);
}
private String formatDate(Long timestamp) {
return ISO8601FormatFactory.getInstance().formatDate(timestamp);
}
protected void addPolicies(PolicyContainer policyContainer, JsonObject rootJ) {
if (!policyContainer.hasPolicyDefs() || !policyContainer.getPolicyDefs().hasPolicyDefs())
return;
@ -281,7 +273,7 @@ public class StrolchElementToJsonVisitor implements StrolchRootElementVisitor<Js
}
}
private void addVersion(StrolchRootElement element, JsonObject rootJ) {
public static void addVersion(StrolchRootElement element, JsonObject rootJ) {
if (!element.hasVersion())
return;
@ -294,4 +286,13 @@ public class StrolchElementToJsonVisitor implements StrolchRootElementVisitor<Js
versionJ.addProperty(Tags.Json.DELETED, version.isDeleted());
rootJ.add(Tags.Json.VERSION, versionJ);
}
private static String formatDate(Date date) {
return ISO8601FormatFactory.getInstance().formatDate(date);
}
private static String formatDate(Long timestamp) {
return ISO8601FormatFactory.getInstance().formatDate(timestamp);
}
}

View File

@ -4,6 +4,7 @@ import static li.strolch.model.Tags.Json.ID;
import static li.strolch.model.Tags.Json.NAME;
import static li.strolch.model.Tags.Json.OBJECT_TYPE;
import static li.strolch.model.Tags.Json.TYPE;
import static li.strolch.model.json.StrolchElementToJsonVisitor.addVersion;
import java.util.Collections;
import java.util.Set;
@ -46,12 +47,14 @@ public class ToFlatJsonVisitor<T extends StrolchRootElement> {
private MapOfSets<String, String> ignoredKeys;
private BiConsumer<T, JsonObject> hook;
private boolean withoutElementName;
private boolean withVersion;
public ToFlatJsonVisitor() {
this.ignoredKeys = new MapOfSets<>();
this(false);
}
public ToFlatJsonVisitor(MapOfSets<String, String> ignoredParams) {
public ToFlatJsonVisitor(boolean withVersion) {
this.withVersion = withVersion;
this.ignoredKeys = new MapOfSets<>();
}
@ -120,9 +123,12 @@ public class ToFlatJsonVisitor<T extends StrolchRootElement> {
}
}
if (hook != null)
if (this.hook != null)
this.hook.accept(element, jsonObject);
if (this.withVersion)
addVersion(element, jsonObject);
return jsonObject;
}
}