Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java26
1 files changed, 21 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
index 73f451b239..116905abeb 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
@@ -58,6 +58,7 @@ import org.eclipse.emf.cdo.util.DanglingReferenceException;
import org.eclipse.emf.cdo.util.InvalidURIException;
import org.eclipse.emf.cdo.util.ObjectNotFoundException;
import org.eclipse.emf.cdo.util.ReadOnlyException;
+import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
import org.eclipse.emf.cdo.view.CDOObjectHandler;
import org.eclipse.emf.cdo.view.CDOQuery;
import org.eclipse.emf.cdo.view.CDOView;
@@ -75,6 +76,7 @@ import org.eclipse.net4j.util.CheckUtil;
import org.eclipse.net4j.util.ImplementationError;
import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.collection.CloseableIterator;
import org.eclipse.net4j.util.collection.ConcurrentArray;
import org.eclipse.net4j.util.collection.Pair;
@@ -111,6 +113,7 @@ import org.eclipse.emf.spi.cdo.InternalCDOViewSet;
import org.eclipse.core.runtime.Platform;
+import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
@@ -331,6 +334,15 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
rootResource = resource;
rootResource.setRoot(true);
registerObject(rootResource);
+
+ try
+ {
+ rootResource.load(null);
+ }
+ catch (IOException ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
}
public synchronized boolean isEmpty()
@@ -365,7 +377,7 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
return elements.toArray(new CDOResourceNode[elements.size()]);
}
- private void ensureContainerAdapter(CDOResource rootResource)
+ private void ensureContainerAdapter(final CDOResource rootResource)
{
EList<Adapter> adapters = rootResource.eAdapters();
ContainerAdapter adapter = getContainerAdapter(adapters);
@@ -373,6 +385,14 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
{
adapter = new ContainerAdapter();
adapters.add(adapter);
+
+ options().addChangeSubscriptionPolicy(new CDOAdapterPolicy()
+ {
+ public boolean isValid(EObject eObject, Adapter adapter)
+ {
+ return eObject == rootResource;
+ }
+ });
}
}
@@ -1987,10 +2007,6 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
// TODO
break;
- case Notification.SET:
- // TODO
- break;
-
case Notification.UNSET:
// TODO
break;

Back to the top