Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java21
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;

Back to the top