diff options
author | Eike Stepper | 2008-06-24 17:51:30 +0000 |
---|---|---|
committer | Eike Stepper | 2008-06-24 17:51:30 +0000 |
commit | 8aafb5876e65d3d2db007f5a491c7187d3f4626d (patch) | |
tree | a82cd153e33f21b55db61dc668c41ed38a8247fd | |
parent | e74c2317e4b97318439781fa47aae710ead885a4 (diff) | |
download | cdo-8aafb5876e65d3d2db007f5a491c7187d3f4626d.tar.gz cdo-8aafb5876e65d3d2db007f5a491c7187d3f4626d.tar.xz cdo-8aafb5876e65d3d2db007f5a491c7187d3f4626d.zip |
[238300] [Hibernate] CCE in TeneoHibernateMappingProvider
https://bugs.eclipse.org/bugs/show_bug.cgi?id=238300
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/TeneoHibernateMappingProvider.java | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/TeneoHibernateMappingProvider.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/TeneoHibernateMappingProvider.java index c1124692e3..507fe38884 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/TeneoHibernateMappingProvider.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/TeneoHibernateMappingProvider.java @@ -125,23 +125,26 @@ public class TeneoHibernateMappingProvider implements IHibernateMappingProvider // this will check the global package registry and read the epackages from // there if the epackage is already present there - protected List<EPackage> resolveSubPackages(EPackage epack) + protected List<EPackage> resolveSubPackages(EPackage ePackage) { - final List<EPackage> epacks = new ArrayList<EPackage>(); - if (EPackage.Registry.INSTANCE.get(epack.getNsURI()) != null) - { - epacks.add((EPackage)EPackage.Registry.INSTANCE.get(epack.getNsURI())); - } - else + final List<EPackage> result = new ArrayList<EPackage>(); + resolveSubPackages(ePackage, result); + return result; + } + + private void resolveSubPackages(EPackage ePackage, List<EPackage> result) + { + EPackage globalPackage = EPackage.Registry.INSTANCE.getEPackage(ePackage.getNsURI()); + if (globalPackage != null) { - epacks.add(epack); + ePackage = globalPackage; } - for (EPackage subEPackage : epack.getESubpackages()) + result.add(ePackage); + for (EPackage subEPackage : ePackage.getESubpackages()) { - epacks.addAll(resolveSubPackages(subEPackage)); + resolveSubPackages(subEPackage, result); } - return epacks; } public IHibernateStore getHibernateStore() |