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