diff options
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.java | 19 |
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; + } } |