diff options
author | Kenn Hussey | 2012-03-14 01:25:59 +0000 |
---|---|---|
committer | Kenn Hussey | 2012-03-14 01:25:59 +0000 |
commit | 43d7204a03f464eba9bb6532554b4baae24be0d6 (patch) | |
tree | df7b1178dc9323c4caf0f68f538ef44fd0f60bca /plugins/org.eclipse.uml2.uml | |
parent | 03fb56e21ee537f8fa55cb08be0a7d6b69ec4dad (diff) | |
download | org.eclipse.uml2.git.040612-43d7204a03f464eba9bb6532554b4baae24be0d6.tar.gz org.eclipse.uml2.git.040612-43d7204a03f464eba9bb6532554b4baae24be0d6.tar.xz org.eclipse.uml2.git.040612-43d7204a03f464eba9bb6532554b4baae24be0d6.zip |
[364419] Adding a utility to initialize resource sets for UML2 use.
Diffstat (limited to 'plugins/org.eclipse.uml2.uml')
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java | 84 |
1 files changed, 82 insertions, 2 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java index e6d8756d..5302b748 100644 --- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others. + * Copyright (c) 2005, 2012 IBM Corporation, Embarcadero Technologies, CEA, and others. * 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 @@ -10,7 +10,7 @@ * Kenn Hussey (Embarcadero Technologies) - 199624, 184249, 204406, 208125, 204200, 213218, 213903, 220669, 208016, 226396, 271470 * Nicolas Rouquette (JPL) - 260120, 313837 * Kenn Hussey - 286329, 313601, 314971, 344907, 236184 - * Kenn Hussey (CEA) - 327039, 358792 + * Kenn Hussey (CEA) - 327039, 358792, 364419 * Yann Tanguy (CEA) - 350402 * */ @@ -63,6 +63,7 @@ import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.URIConverter; import org.eclipse.emf.ecore.util.EcoreSwitch; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.ExtendedMetaData; @@ -124,7 +125,20 @@ import org.eclipse.uml2.uml.UMLPackage; import org.eclipse.uml2.uml.UMLPlugin; import org.eclipse.uml2.uml.ValueSpecification; import org.eclipse.uml2.uml.VisibilityKind; +import org.eclipse.uml2.uml.resource.CMOF202UMLResource; +import org.eclipse.uml2.uml.resource.CMOF2UMLExtendedMetaData; +import org.eclipse.uml2.uml.resource.CMOF2UMLResource; +import org.eclipse.uml2.uml.resource.UML212UMLExtendedMetaData; +import org.eclipse.uml2.uml.resource.UML212UMLResource; +import org.eclipse.uml2.uml.resource.UML22UMLExtendedMetaData; +import org.eclipse.uml2.uml.resource.UML22UMLResource; +import org.eclipse.uml2.uml.resource.UML302UMLExtendedMetaData; +import org.eclipse.uml2.uml.resource.UML302UMLResource; import org.eclipse.uml2.uml.resource.UMLResource; +import org.eclipse.uml2.uml.resource.XMI212UMLResource; +import org.eclipse.uml2.uml.resource.XMI222UMLResource; +import org.eclipse.uml2.uml.resource.XMI2UMLExtendedMetaData; +import org.eclipse.uml2.uml.resource.XMI2UMLResource; /** * Utilities for working with UML elements and resources. @@ -10265,4 +10279,70 @@ public class UMLUtil return packages; } + /** + * Initializes the registries for the specified resource set (or the global + * registries if <code>null</code>) with the content type and extended + * metadata registrations needed to work with the various supported versions + * of UML, XMI, and CMOF. + * + * @param resourceSet + * The resource set whose registries to initialize, or + * <code>null</code>. + * @return The resource set (or <code>null</code>). + * + * @since 4.0 + */ + public static ResourceSet init(ResourceSet resourceSet) { + Map<String, Object> contentTypeToFactoryMap = (resourceSet == null + ? Resource.Factory.Registry.INSTANCE + : resourceSet.getResourceFactoryRegistry()) + .getContentTypeToFactoryMap(); + + contentTypeToFactoryMap.put( + UML302UMLResource.UML_3_0_0_CONTENT_TYPE_IDENTIFIER, + UML302UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + UML212UMLResource.UML_2_1_0_CONTENT_TYPE_IDENTIFIER, + UML212UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + UML22UMLResource.UML2_CONTENT_TYPE_IDENTIFIER, + UML22UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + XMI2UMLResource.UML_CONTENT_TYPE_IDENTIFIER, + XMI2UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + XMI2UMLResource.UML_2_4_CONTENT_TYPE_IDENTIFIER, + XMI2UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + XMI222UMLResource.UML_2_2_CONTENT_TYPE_IDENTIFIER, + XMI222UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + XMI212UMLResource.UML_2_1_1_CONTENT_TYPE_IDENTIFIER, + XMI212UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + XMI212UMLResource.UML_2_1_CONTENT_TYPE_IDENTIFIER, + XMI212UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + CMOF2UMLResource.CMOF_CONTENT_TYPE_IDENTIFIER, + CMOF2UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + CMOF2UMLResource.CMOF_2_4_CONTENT_TYPE_IDENTIFIER, + CMOF2UMLResource.Factory.INSTANCE); + contentTypeToFactoryMap.put( + CMOF202UMLResource.CMOF_2_0_CONTENT_TYPE_IDENTIFIER, + CMOF202UMLResource.Factory.INSTANCE); + + Map<URI, URI> uriMap = resourceSet == null + ? URIConverter.URI_MAP + : resourceSet.getURIConverter().getURIMap(); + + uriMap.putAll(UML302UMLExtendedMetaData.getURIMap()); + uriMap.putAll(UML212UMLExtendedMetaData.getURIMap()); + uriMap.putAll(UML22UMLExtendedMetaData.getURIMap()); + uriMap.putAll(XMI2UMLExtendedMetaData.getURIMap()); + uriMap.putAll(CMOF2UMLExtendedMetaData.getURIMap()); + + return resourceSet; + } + } |