Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java26
1 files changed, 8 insertions, 18 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
index db20245bf3..ca23110573 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
@@ -218,25 +218,14 @@ public class CDOPackageUnitImpl implements InternalCDOPackageUnit
public void dispose()
{
- for (InternalCDOPackageInfo packageInfo : packageInfos)
- {
- EPackage ePackage = packageInfo.getEPackage(false);
- if (ePackage != null)
- {
- synchronized (ePackage)
- {
- ePackage.eAdapters().remove(packageInfo);
- }
- }
- }
-
packageInfos = null;
setState(State.DISPOSED);
}
public synchronized void load(boolean resolve)
{
- load(packageRegistry.getPackageLoader(), resolve);
+ PackageLoader packageLoader = packageRegistry.getPackageLoader();
+ load(packageLoader, resolve);
}
public synchronized void load(PackageLoader packageLoader, boolean resolve)
@@ -254,10 +243,10 @@ public class CDOPackageUnitImpl implements InternalCDOPackageUnit
{
String packageURI = ePackage.getNsURI();
InternalCDOPackageInfo packageInfo = getPackageInfo(packageURI);
- synchronized (ePackage)
+ packageRegistry.registerPackageInfo(ePackage, packageInfo);
+ if (resolve)
{
- EMFUtil.addAdapter(ePackage, packageInfo);
- if (resolve)
+ synchronized (ePackage)
{
EcoreUtil.resolveAll(ePackage);
}
@@ -347,9 +336,10 @@ public class CDOPackageUnitImpl implements InternalCDOPackageUnit
packageInfo.setPackageUnit(this);
packageInfo.setPackageURI(ePackage.getNsURI());
packageInfo.setParentURI(ePackage.getESuperPackage() == null ? null : ePackage.getESuperPackage().getNsURI());
- EMFUtil.addAdapter(ePackage, packageInfo);
+ packageRegistry.registerPackageInfo(ePackage, packageInfo);
packageRegistry.basicPut(ePackage.getNsURI(), ePackage);
+
result.add(packageInfo);
for (EPackage subPackage : ePackage.getESubpackages())
{
@@ -362,7 +352,7 @@ public class CDOPackageUnitImpl implements InternalCDOPackageUnit
InternalCDOPackageInfo packageInfo = getPackageInfo(ePackage.getNsURI());
if (packageInfo != null)
{
- EMFUtil.addAdapter(ePackage, packageInfo);
+ packageRegistry.registerPackageInfo(ePackage, packageInfo);
}
for (EPackage subPackage : ePackage.getESubpackages())

Back to the top