Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java37
1 files changed, 30 insertions, 7 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java
index 5cccda0ea2..88b674503b 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java
@@ -323,20 +323,40 @@ public final class CDORevisionUtil
return true;
}
- InternalCDORevision parent = getParentRevision(child, provider);
+ CDORevision parent = getParentRevision(child, provider);
if (parent != null)
{
- return isContained(parent, container, provider);
+ return isContained((InternalCDORevision)parent, container, provider);
}
return false;
}
- private static InternalCDORevision getParentRevision(InternalCDORevision revision, CDORevisionProvider provider)
+ /**
+ * @since 4.5
+ */
+ public static void handleParentRevisions(CDORevision revision, CDORevisionProvider provider,
+ CDORevisionHandler handler)
+ {
+ CDORevision parentRevision = getParentRevision(revision, provider);
+ if (parentRevision != null)
+ {
+ if (handler.handleRevision(parentRevision))
+ {
+ handleParentRevisions(parentRevision, provider, handler);
+ }
+ }
+ }
+
+ /**
+ * @since 4.5
+ */
+ public static CDORevision getParentRevision(CDORevision revision, CDORevisionProvider provider)
{
CDOID parentID;
+ CDORevisionData data = revision.data();
- Object containerID = revision.getContainerID();
+ Object containerID = data.getContainerID();
if (containerID instanceof CDOWithID)
{
parentID = ((CDOWithID)containerID).cdoID();
@@ -348,7 +368,7 @@ public final class CDORevisionUtil
if (CDOIDUtil.isNull(parentID))
{
- parentID = revision.getResourceID();
+ parentID = data.getResourceID();
if (CDOIDUtil.isNull(parentID))
{
return null;
@@ -361,10 +381,13 @@ public final class CDORevisionUtil
}
}
- return (InternalCDORevision)provider.getRevision(parentID);
+ return provider.getRevision(parentID);
}
/**
+ * @since 4.5
+ */
+ /**
* @since 4.4
*/
public static List<CDORevision> getChildRevisions(CDOID container, CDORevisionProvider provider)
@@ -485,7 +508,7 @@ public final class CDORevisionUtil
}
else
{
- container = getParentRevision(revision, provider);
+ container = (InternalCDORevision)getParentRevision(revision, provider);
}
if (container != null)

Back to the top