/******************************************************************************* * Copyright (c) 2007 CEA List. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * CEA List - initial API and implementation *******************************************************************************/ package org.eclipse.papyrus.uml.extensionpoints.utils; import java.util.Iterator; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.papyrus.uml.extensionpoints.Activator; import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.Stereotype; /** * Some utils extracted from com.cea.utils classes (package and element) */ public class Util { /** * Check if the StereotypedElement has the given stereotype. * * @param stereotypeName * name of the stereotype * @param elt * element to check * * @return true if a stereotype whith the same name was found */ public static boolean hasStereotype(Element elt, String stereotypeName) { boolean has = false; if(elt != null) { Iterator i = elt.getAppliedStereotypes().iterator(); Stereotype currentStereotype; while(i.hasNext() && !has) { currentStereotype = (Stereotype)i.next(); if(currentStereotype.getName().equals(stereotypeName)) { has = true; } } } return has; } /** * Returns the resourceSet associated to the specified EObject. If no eResource is associated to * the EObject, creates a new ResourceSet, using {@link ResourceSetImpl}. * * @param eObject * the object from which the ResourceSet is retrieved * @return the ResourceSet in which the eObject is managed, or a new one if no resource is * associated to the eObject */ public static ResourceSet getResourceSet(EObject eObject) { if(eObject != null && eObject.eResource() != null) { return eObject.eResource().getResourceSet(); } else { // standalone registrations /* * EPackage.Registry.INSTANCE.put("http://www.eclipse.org/uml2/1.0.0/UML", * UMLPackage.eINSTANCE); * Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("uml2", new * UMLResourceFactoryImpl()); * Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", new * EcoreResourceFactoryImpl()); * Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new * XMIResourceFactoryImpl()); */ Activator.log("should not create a new ResourceSetImpl"); return new ResourceSetImpl(); } } }