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