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 | |
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')
3 files changed, 89 insertions, 119 deletions
diff --git a/plugins/org.eclipse.uml2.uml.ecore.importer/src/org/eclipse/uml2/uml/ecore/importer/UMLImporter.java b/plugins/org.eclipse.uml2.uml.ecore.importer/src/org/eclipse/uml2/uml/ecore/importer/UMLImporter.java index 637af61c..1d0063ba 100644 --- a/plugins/org.eclipse.uml2.uml.ecore.importer/src/org/eclipse/uml2/uml/ecore/importer/UMLImporter.java +++ b/plugins/org.eclipse.uml2.uml.ecore.importer/src/org/eclipse/uml2/uml/ecore/importer/UMLImporter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others. + * Copyright (c) 2006, 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 @@ -8,7 +8,7 @@ * Contributors: * IBM - initial API and implementation * Kenn Hussey (Embarcadero Technologies) - 156879, 220552, 226102 - * Kenn Hussey (CEA) - 327039, 351774 + * Kenn Hussey (CEA) - 327039, 351774, 364419 * */ package org.eclipse.uml2.uml.ecore.importer; @@ -41,19 +41,9 @@ import org.eclipse.uml2.common.util.UML2Util; import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.Stereotype; import org.eclipse.uml2.uml.UMLPackage; -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; import org.eclipse.uml2.uml.util.UMLUtil; @@ -322,54 +312,7 @@ public class UMLImporter @Override public ResourceSet createResourceSet() { - ResourceSet resourceSet = super.createResourceSet(); - - Map<String, Object> contentTypeToFactoryMap = 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_CONTENT_TYPE_IDENTIFIER, - CMOF202UMLResource.Factory.INSTANCE); - - Map<URI, URI> uriMap = 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; + return UMLUtil.init(super.createResourceSet()); } }
\ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/presentation/UMLEditor.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/presentation/UMLEditor.java index 2e2bcd8a..62da997d 100644 --- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/presentation/UMLEditor.java +++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/presentation/UMLEditor.java @@ -9,7 +9,7 @@ * IBM - initial API and implementation * Kenn Hussey (Embarcadero Technologies) - 204200, 215418, 156879, 227392, 226178, 232332, 247980 * Kenn Hussey - 286329, 323181 - * Kenn Hussey (CEA) - 327039, 351774 + * Kenn Hussey (CEA) - 327039, 351774, 364419 * */ package org.eclipse.uml2.uml.editor.presentation; @@ -186,20 +186,11 @@ import org.eclipse.ui.actions.WorkspaceModifyOperation; import org.eclipse.uml2.uml.editor.UMLEditorPlugin; -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; +import org.eclipse.uml2.uml.util.UMLUtil; /** * This is an example of a UML model editor. @@ -943,56 +934,12 @@ public class UMLEditor } public void createModel() { - ResourceSet resourceSet = editingDomain.getResourceSet(); - - Map<String, Object> contentTypeToFactoryMap = 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.getURIConverter().getURIMap(); - - uriMap.putAll(UML302UMLExtendedMetaData.getURIMap()); - uriMap.putAll(UML212UMLExtendedMetaData.getURIMap()); - uriMap.putAll(UML22UMLExtendedMetaData.getURIMap()); - uriMap.putAll(XMI2UMLExtendedMetaData.getURIMap()); - uriMap.putAll(CMOF2UMLExtendedMetaData.getURIMap()); + ResourceSet resourceSet = UMLUtil.init(editingDomain.getResourceSet()); createModelGen(); boolean saveNeeded = false; + Map<URI, URI> uriMap = resourceSet.getURIConverter().getURIMap(); Map<Resource, URI> resourceToURIMap = new HashMap<Resource, URI>(); EList<Resource> resources = resourceSet.getResources(); 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; + } + } |