diff --git a/build/pom.xml b/build/pom.xml index 837c55ae7..919ec180b 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -3,7 +3,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 4.0.0 build diff --git a/ehri-cli/pom.xml b/ehri-cli/pom.xml index 7cc80ee30..670f57230 100644 --- a/ehri-cli/pom.xml +++ b/ehri-cli/pom.xml @@ -4,7 +4,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 ehri-cli Command Line Tools diff --git a/ehri-core/pom.xml b/ehri-core/pom.xml index 001399b7d..c75a4d1c2 100644 --- a/ehri-core/pom.xml +++ b/ehri-core/pom.xml @@ -6,7 +6,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 ehri-core jar diff --git a/ehri-core/src/main/java/eu/ehri/project/models/base/Versioned.java b/ehri-core/src/main/java/eu/ehri/project/models/base/Versioned.java index 7dc4d9850..06ed70588 100644 --- a/ehri-core/src/main/java/eu/ehri/project/models/base/Versioned.java +++ b/ehri-core/src/main/java/eu/ehri/project/models/base/Versioned.java @@ -25,13 +25,28 @@ import com.tinkerpop.frames.modules.javahandler.JavaHandler; import com.tinkerpop.frames.modules.javahandler.JavaHandlerContext; import eu.ehri.project.definitions.Ontology; +import eu.ehri.project.models.annotations.Meta; import eu.ehri.project.models.events.Version; import eu.ehri.project.models.utils.JavaHandlerUtils; +import static eu.ehri.project.models.utils.JavaHandlerUtils.hasEdge; + /** * An entity that may have prior versions. */ public interface Versioned extends Accessible { + String IS_VERSIONED = "isVersioned"; + + + /** + * Determine if this item has a prior version. + * + * @return true, if a prior version exists. + */ + @Meta(IS_VERSIONED) + @JavaHandler + boolean isVersioned(); + /** * Get the most recent version for this item, if one exists. * @@ -54,5 +69,10 @@ public Iterable getAllPriorVersions() { return frameVertices(gremlin().as("n").out(Ontology.ENTITY_HAS_PRIOR_VERSION) .loop("n", JavaHandlerUtils.noopLoopFunc, JavaHandlerUtils.noopLoopFunc)); } + + @Override + public boolean isVersioned() { + return hasEdge(it(), Direction.OUT, Ontology.ENTITY_HAS_PRIOR_VERSION); + } } } diff --git a/ehri-core/src/test/java/eu/ehri/project/models/events/VersionTest.java b/ehri-core/src/test/java/eu/ehri/project/models/events/VersionTest.java index 4fa3d72e2..d8563eabb 100644 --- a/ehri-core/src/test/java/eu/ehri/project/models/events/VersionTest.java +++ b/ehri-core/src/test/java/eu/ehri/project/models/events/VersionTest.java @@ -55,6 +55,8 @@ public void testVersioning() throws Exception { EventTypes.creation).commit(); assertEquals(1, Iterables.size(first.getSubjects())); + assertFalse(user.isVersioned()); + // Change the user twice in succession, with the data from userBundle2 // and userBundle3 SystemEvent second = actionManager.newEventContext(user, @@ -73,6 +75,9 @@ public void testVersioning() throws Exception { Mutation update2 = bundleManager.update(userBundle3, UserProfile.class); assertEquals(MutationState.UPDATED, update2.getState()); + // Ensure isVersioned works + assertTrue(user.isVersioned()); + // Now compare the values in the versions Version firstVersion = second.getPriorVersions().iterator().next(); assertEquals(second, firstVersion.getTriggeringEvent()); diff --git a/ehri-cypher/pom.xml b/ehri-cypher/pom.xml index 8507aa47a..5d71669b6 100644 --- a/ehri-cypher/pom.xml +++ b/ehri-cypher/pom.xml @@ -3,7 +3,7 @@ ehri-data eu.ehri-project - 0.15.4 + 0.15.5 4.0.0 diff --git a/ehri-definitions/pom.xml b/ehri-definitions/pom.xml index 029b10dad..809a26e9a 100644 --- a/ehri-definitions/pom.xml +++ b/ehri-definitions/pom.xml @@ -3,7 +3,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 .. ehri-definitions diff --git a/ehri-io/pom.xml b/ehri-io/pom.xml index 613ba18a7..5f90e0a74 100644 --- a/ehri-io/pom.xml +++ b/ehri-io/pom.xml @@ -4,7 +4,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 ehri-io diff --git a/ehri-ws-graphql/pom.xml b/ehri-ws-graphql/pom.xml index fdbd720e4..deb30e489 100644 --- a/ehri-ws-graphql/pom.xml +++ b/ehri-ws-graphql/pom.xml @@ -3,7 +3,7 @@ ehri-data eu.ehri-project - 0.15.4 + 0.15.5 4.0.0 diff --git a/ehri-ws-oaipmh/pom.xml b/ehri-ws-oaipmh/pom.xml index 5d9264d1b..5f81663cc 100644 --- a/ehri-ws-oaipmh/pom.xml +++ b/ehri-ws-oaipmh/pom.xml @@ -3,7 +3,7 @@ ehri-data eu.ehri-project - 0.15.4 + 0.15.5 4.0.0 diff --git a/ehri-ws/pom.xml b/ehri-ws/pom.xml index fbcdab12b..07305ca7d 100755 --- a/ehri-ws/pom.xml +++ b/ehri-ws/pom.xml @@ -5,7 +5,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 ehri-ws Web Service diff --git a/pom.xml b/pom.xml index 14afc23e6..7dd2a0fa9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ eu.ehri-project ehri-data - 0.15.4 + 0.15.5 pom EHRI Backend