diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java index 2fd235072b..c383b33d99 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOCollectionLoadingPolicyImpl.java @@ -11,6 +11,7 @@ */ package org.eclipse.emf.internal.cdo.session; +import org.eclipse.emf.cdo.common.revision.CDOElementProxy; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.session.CDOCollectionLoadingPolicy; import org.eclipse.emf.cdo.session.CDOSession; @@ -19,7 +20,6 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.net4j.util.collection.MoveableList; import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.spi.cdo.CDOElementProxy; import org.eclipse.emf.spi.cdo.CDOSessionProtocol; import org.eclipse.emf.spi.cdo.InternalCDOSession; @@ -49,13 +49,14 @@ public class CDOCollectionLoadingPolicyImpl implements CDOCollectionLoadingPolic return resolveChunkSize; } + public void resolveAllProxies(CDOSession session, CDORevision revision, EStructuralFeature feature) + { + doResolveProxy(session, revision, feature, 0, 0, Integer.MAX_VALUE); + } + public Object resolveProxy(CDOSession session, CDORevision rev, EStructuralFeature feature, int accessIndex, int serverIndex) { - // Get proxy values - InternalCDORevision revision = (InternalCDORevision)rev; - int fetchIndex = serverIndex; - int chunkSize = resolveChunkSize; if (chunkSize == CDORevision.UNCHUNKED) { @@ -63,6 +64,16 @@ public class CDOCollectionLoadingPolicyImpl implements CDOCollectionLoadingPolic chunkSize = Integer.MAX_VALUE; } + return doResolveProxy(session, rev, feature, accessIndex, serverIndex, chunkSize); + } + + private Object doResolveProxy(CDOSession session, CDORevision rev, EStructuralFeature feature, int accessIndex, + int serverIndex, int chunkSize) + { + // Get proxy values + InternalCDORevision revision = (InternalCDORevision)rev; + int fetchIndex = serverIndex; + MoveableList<Object> list = revision.getList(feature); int size = list.size(); int fromIndex = accessIndex; |