Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java
index 2668cd0047..7dc455460e 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOFactoryImpl.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.emf.internal.cdo;
+import org.eclipse.emf.cdo.common.model.EMFUtil;
import org.eclipse.emf.cdo.util.CDOFactory;
import org.eclipse.emf.ecore.EClass;
@@ -32,4 +33,22 @@ public class CDOFactoryImpl extends EFactoryImpl implements CDOFactory
{
return new DynamicCDOObjectImpl(eClass);
}
+
+ /**
+ * @since 2.0
+ */
+ public static boolean prepareDynamicEPackage(Object value)
+ {
+ if (EMFUtil.isDynamicEPackage(value))
+ {
+ EPackage ePackage = (EPackage)value;
+ if (!(ePackage.getEFactoryInstance() instanceof CDOFactory))
+ {
+ ePackage.setEFactoryInstance(new CDOFactoryImpl(ePackage));
+ return true;
+ }
+ }
+
+ return false;
+ }
}

Back to the top