diff options
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.java | 26 |
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()) |