[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 class ActivityToFlatJsonVisitor extends ToFlatJsonVisitor<Activity> implements ActivityVisitor<JsonObject> {
public ActivityToFlatJsonVisitor() {
super();
}
public ActivityToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override @Override
public JsonObject visit(Activity element) { public JsonObject visit(Activity element) {
return toJson(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 class OrderToFlatJsonVisitor extends ToFlatJsonVisitor<Order> implements OrderVisitor<JsonObject> {
public OrderToFlatJsonVisitor() {
super();
}
public OrderToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override @Override
public JsonObject visit(Order element) { public JsonObject visit(Order element) {
return toJson(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 class ResourceToFlatJsonVisitor extends ToFlatJsonVisitor<Resource> implements ResourceVisitor<JsonObject> {
public ResourceToFlatJsonVisitor() {
super();
}
public ResourceToFlatJsonVisitor(boolean withVersion) {
super(withVersion);
}
@Override @Override
public JsonObject visit(Resource element) { public JsonObject visit(Resource element) {
return toJson(element); return toJson(element);

View File

@ -168,14 +168,6 @@ public class StrolchElementToJsonVisitor implements StrolchRootElementVisitor<Js
return rootJ; 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) { protected void addPolicies(PolicyContainer policyContainer, JsonObject rootJ) {
if (!policyContainer.hasPolicyDefs() || !policyContainer.getPolicyDefs().hasPolicyDefs()) if (!policyContainer.hasPolicyDefs() || !policyContainer.getPolicyDefs().hasPolicyDefs())
return; 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()) if (!element.hasVersion())
return; return;
@ -294,4 +286,13 @@ public class StrolchElementToJsonVisitor implements StrolchRootElementVisitor<Js
versionJ.addProperty(Tags.Json.DELETED, version.isDeleted()); versionJ.addProperty(Tags.Json.DELETED, version.isDeleted());
rootJ.add(Tags.Json.VERSION, versionJ); 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.NAME;
import static li.strolch.model.Tags.Json.OBJECT_TYPE; import static li.strolch.model.Tags.Json.OBJECT_TYPE;
import static li.strolch.model.Tags.Json.TYPE; import static li.strolch.model.Tags.Json.TYPE;
import static li.strolch.model.json.StrolchElementToJsonVisitor.addVersion;
import java.util.Collections; import java.util.Collections;
import java.util.Set; import java.util.Set;
@ -46,12 +47,14 @@ public class ToFlatJsonVisitor<T extends StrolchRootElement> {
private MapOfSets<String, String> ignoredKeys; private MapOfSets<String, String> ignoredKeys;
private BiConsumer<T, JsonObject> hook; private BiConsumer<T, JsonObject> hook;
private boolean withoutElementName; private boolean withoutElementName;
private boolean withVersion;
public ToFlatJsonVisitor() { 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<>(); 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); this.hook.accept(element, jsonObject);
if (this.withVersion)
addVersion(element, jsonObject);
return jsonObject; return jsonObject;
} }
} }