Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java31
1 files changed, 14 insertions, 17 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java
index 93e02a670f..4a809527c6 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CommitIntegrityCheck.java
@@ -387,25 +387,22 @@ public class CommitIntegrityCheck
private void checkCurrentRefTargetsIncluded(CDOObject referencer, String msgFrag) throws CommitIntegrityException
{
- for (EReference eRef : referencer.eClass().getEAllReferences())
+ for (EReference eRef : ((InternalCDOObject)referencer).cdoClassInfo().getAllPersistentReferences())
{
- if (EMFUtil.isPersistent(eRef))
+ if (eRef.isMany())
{
- if (eRef.isMany())
+ EList<?> list = (EList<?>)referencer.eGet(eRef);
+ for (Object refTarget : list)
{
- EList<?> list = (EList<?>)referencer.eGet(eRef);
- for (Object refTarget : list)
- {
- checkBidiRefTargetOrNewNonBidiTargetIncluded(referencer, eRef, refTarget, msgFrag);
- }
+ checkBidiRefTargetOrNewNonBidiTargetIncluded(referencer, eRef, refTarget, msgFrag);
}
- else
+ }
+ else
+ {
+ Object refTarget = referencer.eGet(eRef);
+ if (refTarget != null)
{
- Object refTarget = referencer.eGet(eRef);
- if (refTarget != null)
- {
- checkBidiRefTargetOrNewNonBidiTargetIncluded(referencer, eRef, refTarget, msgFrag);
- }
+ checkBidiRefTargetOrNewNonBidiTargetIncluded(referencer, eRef, refTarget, msgFrag);
}
}
}
@@ -435,9 +432,9 @@ public class CommitIntegrityCheck
InternalCDORevision cleanRev = transaction.getCleanRevisions().get(referencer);
CheckUtil.checkState(cleanRev, "cleanRev");
- for (EReference eRef : referencer.eClass().getEAllReferences())
+ for (EReference eRef : ((InternalCDOObject)referencer).cdoClassInfo().getAllPersistentReferences())
{
- if (EMFUtil.isPersistent(eRef) && hasPersistentOpposite(eRef))
+ if (hasPersistentOpposite(eRef))
{
Object value = cleanRev.get(eRef, EStore.NO_INDEX);
if (value != null)
@@ -498,7 +495,7 @@ public class CommitIntegrityCheck
/**
* Designates an exception style for a {@link CommitIntegrityCheck}
- *
+ *
* @author Caspar De Groot
*/
public static enum Style

Back to the top