Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java207
1 files changed, 33 insertions, 174 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java
index 2e0e50d6a6..ec939d5c1e 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/EMFUtil.java
@@ -7,18 +7,16 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
- * Victor Roldan Betancort - http://bugs.eclipse.org/244801
+ * Victor Roldan Betancort - maintenance
* Simon McDuff - maintenance
*/
package org.eclipse.emf.cdo.common.model;
import org.eclipse.net4j.util.WrappedException;
-import org.eclipse.net4j.util.io.IORuntimeException;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
@@ -29,21 +27,16 @@ import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.EPackage.Registry;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -77,21 +70,6 @@ public final class EMFUtil
return array;
}
- public static void registerPackage(EPackage ePackage, EPackage.Registry... packageRegistries)
- {
- ePackage.getClass(); // Initialize package in standalone mode
- if (packageRegistries == null || packageRegistries.length == 0)
- {
- EPackage.Registry[] globalRegistry = { EPackage.Registry.INSTANCE };
- packageRegistries = globalRegistry;
- }
-
- for (EPackage.Registry packageRegistry : packageRegistries)
- {
- packageRegistry.put(ePackage.getNsURI(), ePackage);
- }
- }
-
public static EClassifier getClassifier(EPackage ePackage, int classifierID)
{
EList<EClassifier> classifiers = ePackage.getEClassifiers();
@@ -106,13 +84,6 @@ public final class EMFUtil
return null;
}
- public static String getParentURI(EPackage ePackage)
- {
- EPackage superPackage = ePackage.getESuperPackage();
- String parentURI = superPackage == null ? null : superPackage.getNsURI();
- return parentURI;
- }
-
public static EPackage getTopLevelPackage(EPackage ePackage)
{
EPackage superPackage = ePackage.getESuperPackage();
@@ -171,138 +142,6 @@ public final class EMFUtil
return eReference;
}
- public static ResourceSet newResourceSet(Resource.Factory resourceFactory)
- {
- ResourceSet resourceSet = new ResourceSetImpl();
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", resourceFactory); //$NON-NLS-1$
- return resourceSet;
- }
-
- public static ResourceSet newXMIResourceSet(EPackage... ePackages)
- {
- ResourceSet resourceSet = newResourceSet(new XMIResourceFactoryImpl());
- if (ePackages != null && ePackages.length != 0)
- {
- Registry packageRegistry = resourceSet.getPackageRegistry();
- for (EPackage ePackage : ePackages)
- {
- packageRegistry.put(ePackage.getNsURI(), ePackage);
- }
- }
-
- return resourceSet;
- }
-
- public static ResourceSet newEcoreResourceSet(EPackage.Registry packageRegistry)
- {
- ResourceSet resourceSet = newResourceSet(new EcoreResourceFactoryImpl());
- resourceSet.setPackageRegistry(packageRegistry);
- return resourceSet;
- }
-
- public static ResourceSet newEcoreResourceSet()
- {
- return newEcoreResourceSet(EPackage.Registry.INSTANCE);
- }
-
- public static EObject load(String fileName, ResourceSet resourceSet)
- {
- Resource resource = resourceSet.getResource(URI.createFileURI(fileName), true);
- return resource.getContents().get(0);
- }
-
- public static EObject loadXMI(String fileName, EPackage... ePackages)
- {
- ResourceSet resourceSet = newXMIResourceSet(ePackages);
- return load(fileName, resourceSet);
- }
-
- public static EObject loadXMI(String fileName, EPackage.Registry packageRegistry)
- {
- ResourceSet resourceSet = newXMIResourceSet();
- resourceSet.setPackageRegistry(packageRegistry);
- return load(fileName, resourceSet);
- }
-
- public static EObject loadEcore(String fileName, EPackage.Registry packageRegistry)
- {
- return load(fileName, newEcoreResourceSet(packageRegistry));
- }
-
- public static EObject loadEcore(String fileName)
- {
- return load(fileName, newEcoreResourceSet());
- }
-
- public static void save(String fileName, EObject root, ResourceSet resourceSet)
- {
- save(fileName, Collections.singletonList(root), resourceSet);
- }
-
- public static void save(String fileName, List<EObject> roots, ResourceSet resourceSet)
- {
- URI uri = URI.createURI(fileName);
- Resource resource = resourceSet.createResource(uri);
- for (EObject root : roots)
- {
- EObject copy = EcoreUtil.copy(root);
- resource.getContents().add(copy);
- }
-
- try
- {
- resource.save(null);
- }
- catch (IOException ex)
- {
- throw new IORuntimeException(ex);
- }
- }
-
- public static void saveXMI(String fileName, EObject root)
- {
- save(fileName, root, newXMIResourceSet());
- }
-
- public static void saveXMI(String fileName, List<EObject> roots)
- {
- save(fileName, roots, newXMIResourceSet());
- }
-
- public static void saveEcore(String fileName, EObject root)
- {
- save(fileName, root, newEcoreResourceSet());
- }
-
- public static int countAllContents(EObject eObject)
- {
- int count = 0;
- for (TreeIterator<EObject> it = eObject.eAllContents(); it.hasNext(); it.next())
- {
- ++count;
- }
-
- return count;
- }
-
- public static EClass[] getConcreteClasses(EPackage ePackage)
- {
- List<EClass> result = new ArrayList<EClass>(0);
- for (EClassifier classifier : ePackage.getEClassifiers())
- {
- if (classifier instanceof EClass)
- {
- EClass eClass = (EClass)classifier;
- if (!eClass.isAbstract() && !eClass.isInterface())
- {
- result.add(eClass);
- }
- }
- }
-
- return result.toArray(new EClass[result.size()]);
- }
-
public static EClass[] getPersistentClasses(EPackage ePackage)
{
List<EClass> result = new ArrayList<EClass>();
@@ -360,25 +199,26 @@ public final class EMFUtil
return value.getClass() == EPackageImpl.class;
}
- public static boolean isMany(EStructuralFeature eFeature)
- {
- return eFeature.isMany();
- }
-
- public static boolean isReference(EStructuralFeature eFeature)
+ public static String getParentURI(EPackage ePackage)
{
- return eFeature instanceof EReference;
+ EPackage superPackage = ePackage.getESuperPackage();
+ String parentURI = superPackage == null ? null : superPackage.getNsURI();
+ return parentURI;
}
- public static boolean isContainment(EStructuralFeature eFeature)
+ public static void registerPackage(EPackage ePackage, EPackage.Registry... packageRegistries)
{
- if (isReference(eFeature))
+ ePackage.getClass(); // Initialize package in standalone mode
+ if (packageRegistries == null || packageRegistries.length == 0)
{
- EReference ref = (EReference)eFeature;
- return ref.isContainment();
+ EPackage.Registry[] globalRegistry = { EPackage.Registry.INSTANCE };
+ packageRegistries = globalRegistry;
}
- return false;
+ for (EPackage.Registry packageRegistry : packageRegistries)
+ {
+ packageRegistry.put(ePackage.getNsURI(), ePackage);
+ }
}
public static byte[] getEPackageBytes(EPackage ePackage, boolean zipped, EPackage.Registry packageRegistry)
@@ -497,4 +337,23 @@ public final class EMFUtil
builder.append(classifier.getName());
return builder.toString();
}
+
+ public static ResourceSet newResourceSet(Resource.Factory resourceFactory)
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", resourceFactory); //$NON-NLS-1$
+ return resourceSet;
+ }
+
+ public static ResourceSet newEcoreResourceSet(EPackage.Registry packageRegistry)
+ {
+ ResourceSet resourceSet = newResourceSet(new EcoreResourceFactoryImpl());
+ resourceSet.setPackageRegistry(packageRegistry);
+ return resourceSet;
+ }
+
+ public static ResourceSet newEcoreResourceSet()
+ {
+ return newEcoreResourceSet(EPackage.Registry.INSTANCE);
+ }
}

Back to the top