Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrschnekenbu2013-08-05 15:24:14 +0000
committerrschnekenbu2013-08-05 15:24:14 +0000
commita8c7e08886617513e552f0ae28aa0bd577d74cc2 (patch)
treedd2fba79050856187a5d162459174d250d2314dc
parent7930eeaf5707a5083f209d1fa0ce9c83dbad12c6 (diff)
downloadorg.eclipse.papyrus-a8c7e08886617513e552f0ae28aa0bd577d74cc2.tar.gz
org.eclipse.papyrus-a8c7e08886617513e552f0ae28aa0bd577d74cc2.tar.xz
org.eclipse.papyrus-a8c7e08886617513e552f0ae28aa0bd577d74cc2.zip
First version of the module to manage profile application in different
resources
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.classpath7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.project28
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/META-INF/MANIFEST.MF18
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/OSGI-INF/l10n/bundle.properties3
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/build.properties7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/plugin.xml12
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResource.ctx1078
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResourceEnvironment.xmi15
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/ui/SinglePackageProfile.xwt13
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/Activator.java61
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/OneResourceOnlyStrategyLocationPropertyEditor.java53
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/ResourcePerProfileStrategyLocationPropertyEditor.java46
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.classpath7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.project28
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/META-INF/MANIFEST.MF15
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/build.properties6
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/org.eclipse.papyrus.uml.profile.externalresource.tests.launch41
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/plugin.xml19
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.di23
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.notation202
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.uml158
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.ExternalResourcesTestProfileProfile9
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.di17
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.notation97
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.uml23
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.di17
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.notation97
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.profiles9
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.uml23
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.ExternalResourcesTestProfileProfile2
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.SysMLProfile4
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.di17
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.notation143
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.uml32
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/icons/testProfile.gifbin0 -> 553 bytes
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/Activator.java62
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/AllTests.java29
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/resourceloading/ResourceLoading.java29
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.classpath7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.project28
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/META-INF/MANIFEST.MF19
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/about.html28
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/build.properties7
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/conception.textile27
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/documentation.pdoc4
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/plugin.xml16
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/Activator.java55
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/AbstractStereotypeApplicationLocationStrategy.java35
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ExtendedProfileApplicationHelper.java34
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/IStereotypeApplicationLocationStrategy.java44
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/OneResourceOnlyStrategy.java104
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/PapyrusStereotypeApplicationHelper.java93
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ResourcePerProfileStrategy.java253
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StandardApplicationLocationStrategy.java64
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StrategyRegistry.java62
-rw-r--r--sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/model/StereotypeApplicationExternalResourceModel.java238
59 files changed, 3589 insertions, 0 deletions
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.classpath b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.classpath
new file mode 100644
index 00000000000..64c5e31b7a2
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.project b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.project
new file mode 100644
index 00000000000..bd86b07e265
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.profile.externalresource.properties</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.settings/org.eclipse.jdt.core.prefs b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..af0f20f97a5
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/META-INF/MANIFEST.MF b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..6f6eecc640a
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.papyrus.uml.profile.externalresource.properties;singleton:=true
+Bundle-Version: 0.10.1.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.profile.externalresource.properties.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.views.properties;bundle-version="0.10.1",
+ org.eclipse.uml2.uml;bundle-version="4.1.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="0.10.1",
+ org.eclipse.papyrus.infra.widgets;bundle-version="0.10.1",
+ org.eclipse.papyrus.uml.properties;bundle-version="0.10.1",
+ org.eclipse.core.databinding.observable;bundle-version="1.4.1",
+ org.eclipse.core.databinding;bundle-version="1.4.1"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/OSGI-INF/l10n/bundle.properties b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 00000000000..41a869673c4
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.uml.profile.externalresource.properties
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = Property view for External Stereotype applications Plugin (Incubation) \ No newline at end of file
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/build.properties b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/build.properties
new file mode 100644
index 00000000000..99c582ea623
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ resources/,\
+ OSGI-INF/
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/plugin.xml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/plugin.xml
new file mode 100644
index 00000000000..c95214422da
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+<extension point="org.eclipse.papyrus.views.properties.environment">
+ <environment environmentModel="resources/UMLStereotypeApplicationExternalResourceEnvironment.xmi">
+ </environment>
+ </extension>
+ <extension point="org.eclipse.papyrus.views.properties.context">
+ <context contextModel="resources/UMLStereotypeApplicationExternalResource.ctx">
+ </context>
+ </extension>
+</plugin>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResource.ctx b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResource.ctx
new file mode 100644
index 00000000000..cff6449b453
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResource.ctx
@@ -0,0 +1,1078 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<contexts:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9" name="UMLStereotypeApplicationExternalResource">
+ <dependencies href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#/"/>
+ <tabs label="Profile" id="profile" category="org.eclipse.papyrus" priority="50">
+ <sections name="SinglePackageProfile" sectionFile="ui/SinglePackageProfile.xwt">
+ <widget href="ui/SinglePackageProfile.xwt#/"/>
+ </sections>
+ <sections name="SingleElement" sectionFile="ui/SingleElement.xwt">
+ <widget href="ui/SingleElement.xwt#/"/>
+ </sections>
+ </tabs>
+ <views name="SinglePackageProfile" sections="//@tabs.0/@sections.0" automaticContext="true">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSinglePackage" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="umlClassName" value="Package"/>
+ </constraints>
+ </views>
+ <dataContexts name="UML" label="UML">
+ <elements name="Comment" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="body" description="Specifies a string that is the comment."/>
+ <properties name="annotatedElement" type="Reference" description="References the Element(s) being commented."/>
+ </elements>
+ <elements name="Element" supertypes="//@dataContexts.0/@elements.241">
+ <properties name="ownedElement" type="Reference" description="The Elements owned by this element."/>
+ <properties name="owner" type="Reference" description="The Element that owns this element."/>
+ <properties name="ownedComment" type="Reference" description="The Comments owned by this element."/>
+ </elements>
+ <elements name="Package" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.3 //@dataContexts.0/@elements.18">
+ <properties name="ownedType" type="Reference" description="References the packaged elements that are Types."/>
+ <properties name="packageMerge" type="Reference" description="References the PackageMerges that are owned by this Package."/>
+ <properties name="packagedElement" type="Reference" description="Specifies the packageable elements that are owned by this Package."/>
+ <properties name="nestedPackage" type="Reference" description="References the packaged elements that are Packages."/>
+ <properties name="nestingPackage" type="Reference" description="References the Package that owns this Package."/>
+ <properties name="profileApplication" type="Reference" description="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
+ <properties name="ownedStereotype" type="Reference" multiplicity="-1" description=""/>
+ <properties name="URI" description="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
+ </elements>
+ <elements name="PackageableElement" supertypes="//@dataContexts.0/@elements.4 //@dataContexts.0/@elements.22"/>
+ <elements name="NamedElement" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="name" description="The name of the NamedElement."/>
+ <properties name="visibility" type="Enumeration" description="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
+ <properties name="qualifiedName" description="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
+ <properties name="clientDependency" type="Reference" description="Indicates the dependencies that reference the client."/>
+ <properties name="namespace" type="Reference" description="Specifies the namespace that owns the NamedElement."/>
+ <properties name="nameExpression" type="Reference" description="The string expression used to define the name of this named element."/>
+ </elements>
+ <elements name="Dependency" supertypes="//@dataContexts.0/@elements.3 //@dataContexts.0/@elements.6">
+ <properties name="supplier" type="Reference" description="The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific."/>
+ <properties name="client" type="Reference" description="The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation."/>
+ </elements>
+ <elements name="DirectedRelationship" supertypes="//@dataContexts.0/@elements.7">
+ <properties name="source" type="Reference" description="Specifies the sources of the DirectedRelationship."/>
+ <properties name="target" type="Reference" description="Specifies the targets of the DirectedRelationship."/>
+ </elements>
+ <elements name="Relationship" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="relatedElement" type="Reference" description="Specifies the elements related by the Relationship."/>
+ </elements>
+ <elements name="Namespace" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="elementImport" type="Reference" description="References the ElementImports owned by the Namespace."/>
+ <properties name="packageImport" type="Reference" description="References the PackageImports owned by the Namespace."/>
+ <properties name="ownedRule" type="Reference" description="Specifies a set of Constraints owned by this Namespace."/>
+ <properties name="member" type="Reference" description="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
+ <properties name="importedMember" type="Reference" description="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
+ <properties name="ownedMember" type="Reference" description="A collection of NamedElements owned by the Namespace."/>
+ </elements>
+ <elements name="ElementImport" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="visibility" type="Enumeration" description="Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import."/>
+ <properties name="alias" description="Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used."/>
+ <properties name="importedElement" type="Reference" description="Specifies the PackageableElement whose name is to be added to a Namespace."/>
+ <properties name="importingNamespace" type="Reference" description="Specifies the Namespace that imports a PackageableElement from another Package."/>
+ </elements>
+ <elements name="PackageImport" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="visibility" type="Enumeration" description="Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not."/>
+ <properties name="importedPackage" type="Reference" description="Specifies the Package whose members are imported into a Namespace."/>
+ <properties name="importingNamespace" type="Reference" description="Specifies the Namespace that imports the members from a Package."/>
+ </elements>
+ <elements name="Constraint" supertypes="//@dataContexts.0/@elements.3">
+ <properties name="constrainedElement" type="Reference" description="The ordered set of Elements referenced by this Constraint."/>
+ <properties name="specification" type="Reference" description="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+ <properties name="context" type="Reference" description="Specifies the namespace that owns the NamedElement."/>
+ </elements>
+ <elements name="ValueSpecification" supertypes="//@dataContexts.0/@elements.3 //@dataContexts.0/@elements.13"/>
+ <elements name="TypedElement" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="type" type="Reference" description="This information is derived from the return result for this Operation.&#xD;&#xA;The type of the TypedElement."/>
+ </elements>
+ <elements name="Type" supertypes="//@dataContexts.0/@elements.3">
+ <properties name="package" type="Reference" description="Specifies the owning package of this classifier, if any."/>
+ </elements>
+ <elements name="Association" supertypes="//@dataContexts.0/@elements.16 //@dataContexts.0/@elements.7">
+ <properties name="ownedEnd" type="Reference" description="The ends that are owned by the association itself."/>
+ <properties name="memberEnd" type="Reference" description="Each end represents participation of instances of the classifier connected to the end in links of the association."/>
+ <properties name="isDerived" description="Specifies whether the association is derived from other model elements such as other associations or constraints."/>
+ <properties name="endType" type="Reference" description="References the classifiers that are used as types of the ends of the association."/>
+ <properties name="navigableOwnedEnd" type="Reference" description="The navigable ends that are owned by the association itself."/>
+ </elements>
+ <elements name="Classifier" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.17 //@dataContexts.0/@elements.14 //@dataContexts.0/@elements.18">
+ <properties name="isAbstract" type="Boolean" description="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xD;&#xA;"/>
+ <properties name="generalization" type="Reference" description="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
+ <properties name="powertypeExtent" type="Reference" description="Designates the GeneralizationSet of which the associated Classifier is a power type."/>
+ <properties name="feature" type="Reference" description="Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.&#xD;&#xA;Specifies each feature defined in the classifier."/>
+ <properties name="inheritedMember" type="Reference" description="Specifies all elements inherited by this classifier from the general classifiers."/>
+ <properties name="redefinedClassifier" type="Reference" description="References the Classifiers that are redefined by this Classifier."/>
+ <properties name="general" type="Reference" description="References the general classifier in the Generalization relationship.&#xD;&#xA;Specifies the general Classifiers for this Classifier."/>
+ <properties name="substitution" type="Reference" description="References the substitutions that are owned by this Classifier."/>
+ <properties name="attribute" type="Reference" description="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
+ <properties name="representation" type="Reference" description="References a collaboration use which indicates the collaboration that represents this classifier."/>
+ <properties name="collaborationUse" type="Reference" description="References the collaboration uses owned by the classifier."/>
+ <properties name="ownedUseCase" type="Reference" description="References the use cases owned by this classifier."/>
+ <properties name="useCase" type="Reference" description="The set of use cases for which this Classifier is the subject."/>
+ <properties name="isFinalSpecialization" type="Boolean" description="If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization=false. Default is false."/>
+ </elements>
+ <elements name="RedefinableElement" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="isLeaf" description="Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement."/>
+ <properties name="redefinedElement" type="Reference" description="The redefinable element that is being redefined by this element."/>
+ <properties name="redefinitionContext" type="Reference" description="References the contexts that this element may be redefined from."/>
+ </elements>
+ <elements name="TemplateableElement" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="templateBinding" type="Reference" description="The optional bindings from this element to templates."/>
+ <properties name="ownedTemplateSignature" type="Reference" description="The optional template signature specifying the formal template parameters."/>
+ </elements>
+ <elements name="TemplateBinding" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="signature" type="Reference" description="The template signature for the template that is the target of the binding."/>
+ <properties name="parameterSubstitution" type="Reference" description="The parameter substitutions owned by this template binding."/>
+ <properties name="boundElement" type="Reference" description="The element that is bound by this binding."/>
+ </elements>
+ <elements name="TemplateSignature" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="parameter" type="Reference" description="The ordered set of all formal template parameters for this template signature."/>
+ <properties name="ownedParameter" type="Reference" description="The formal template parameters that are owned by this template signature."/>
+ <properties name="template" type="Reference" description="The element that owns this template signature."/>
+ </elements>
+ <elements name="TemplateParameter" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="signature" type="Reference" description="The template signature that owns this template parameter."/>
+ <properties name="parameteredElement" type="Reference" description="The element exposed by this template parameter."/>
+ <properties name="ownedParameteredElement" type="Reference" description="The element that is owned by this template parameter."/>
+ <properties name="default" type="Reference" description="The element that is the default for this formal template parameter."/>
+ <properties name="ownedDefault" type="Reference" description="The element that is owned by this template parameter for the purpose of providing a default."/>
+ </elements>
+ <elements name="ParameterableElement" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="owningTemplateParameter" type="Reference" description="The formal template parameter that owns this element."/>
+ <properties name="templateParameter" type="Reference" description="The template parameter that exposes this element as a formal parameter."/>
+ </elements>
+ <elements name="TemplateParameterSubstitution" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="formal" type="Reference" description="The formal template parameter that is associated with this substitution."/>
+ <properties name="actual" type="Reference" description="The element that is the actual parameter for this substitution."/>
+ <properties name="ownedActual" type="Reference" description="The actual parameter that is owned by this substitution."/>
+ <properties name="templateBinding" type="Reference" description="The optional bindings from this element to templates."/>
+ </elements>
+ <elements name="Generalization" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="isSubstitutable" description="Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier."/>
+ <properties name="general" type="Reference" description="References the general classifier in the Generalization relationship."/>
+ <properties name="generalizationSet" type="Reference" description="Designates a set in which instances of Generalization is considered members."/>
+ <properties name="specific" type="Reference" description="References the specializing classifier in the Generalization relationship."/>
+ </elements>
+ <elements name="GeneralizationSet" supertypes="//@dataContexts.0/@elements.3">
+ <properties name="isCovering" description="Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet."/>
+ <properties name="isDisjoint" description="Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager."/>
+ <properties name="powertype" type="Reference" description="Designates the Classifier that is defined as the power type for the associated GeneralizationSet."/>
+ <properties name="generalization" type="Reference" description="Designates the instances of Generalization which are members of a given GeneralizationSet."/>
+ </elements>
+ <elements name="Feature" supertypes="//@dataContexts.0/@elements.17">
+ <properties name="isStatic" description="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true)."/>
+ <properties name="featuringClassifier" type="Reference" description="The Classifiers that have this Feature as a feature."/>
+ </elements>
+ <elements name="Substitution" supertypes="//@dataContexts.0/@elements.28">
+ <properties name="contract" type="Reference" description="The contract with which the substituting classifier complies."/>
+ <properties name="substitutingClassifier" type="Reference" description="Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected."/>
+ </elements>
+ <elements name="Realization" supertypes="//@dataContexts.0/@elements.29"/>
+ <elements name="Abstraction" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="mapping" type="Reference" description="An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified."/>
+ </elements>
+ <elements name="OpaqueExpression" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="body" description="The text of the expression, possibly in multiple languages."/>
+ <properties name="language" description="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order."/>
+ <properties name="result" type="Reference" description="Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior."/>
+ <properties name="behavior" type="Reference" description="Specifies the behavior of the opaque expression."/>
+ </elements>
+ <elements name="Parameter" supertypes="//@dataContexts.0/@elements.33 //@dataContexts.0/@elements.32">
+ <properties name="parameterSet" type="Reference" description="The parameter sets containing the parameter. See ParameterSet."/>
+ <properties name="operation" type="Reference" description="References the Operation owning this parameter."/>
+ <properties name="direction" type="Enumeration" description="Indicates whether a parameter is being sent into or out of a behavioral element."/>
+ <properties name="default" description="Specifies a String that represents a value to be used when no argument is supplied for the Parameter."/>
+ <properties name="defaultValue" type="Reference" description="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter."/>
+ <properties name="isException" description="Tells whether an output parameter may emit a value to the exclusion of the other outputs."/>
+ <properties name="isStream" description="Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing."/>
+ <properties name="effect" type="Enumeration" description="Specifies the effect that the owner of the parameter has on values passed in or out of the parameter."/>
+ </elements>
+ <elements name="MultiplicityElement" supertypes="//@dataContexts.0/@elements.1 //@dataContexts.1 //@dataContexts.2">
+ <properties name="isOrdered" description="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered."/>
+ <properties name="isUnique" description="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique."/>
+ <properties name="upper" description="Specifies the upper bound of the multiplicity interval."/>
+ <properties name="lower" description="Specifies the lower bound of the multiplicity interval."/>
+ <properties name="upperValue" type="Reference" description="The specification of the upper bound for this multiplicity."/>
+ <properties name="lowerValue" type="Reference" description="The specification of the lower bound for this multiplicity."/>
+ </elements>
+ <elements name="ConnectableElement" supertypes="//@dataContexts.0/@elements.13 //@dataContexts.0/@elements.22">
+ <properties name="end" type="Reference" description="Denotes a connector that attaches to this connectable element."/>
+ </elements>
+ <elements name="ConnectorEnd" supertypes="//@dataContexts.0/@elements.32">
+ <properties name="definingEnd" type="Reference" description="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.&#xD;&#xA;"/>
+ <properties name="role" type="Reference" description="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.&#xD;&#xA;"/>
+ <properties name="partWithPort" type="Reference" description="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
+ </elements>
+ <elements name="Property" supertypes="//@dataContexts.0/@elements.75 //@dataContexts.0/@elements.33 //@dataContexts.0/@elements.36">
+ <properties name="class" type="Reference" description="References the Class that owns the Property."/>
+ <properties name="datatype" type="Reference" description="The DataType that owns this Property."/>
+ <properties name="isDerived" description="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xD;&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
+ <properties name="isDerivedUnion" description="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it."/>
+ <properties name="default" description="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xD;&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+ <properties name="aggregation" type="Enumeration" description="Specifies the kind of aggregation that applies to the Property."/>
+ <properties name="isComposite" description="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xD;&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not."/>
+ <properties name="redefinedProperty" type="Reference" description="References the properties that are redefined by this property."/>
+ <properties name="owningAssociation" type="Reference" description="References the owning association of this property, if any."/>
+ <properties name="defaultValue" type="Reference" description="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+ <properties name="opposite" type="Reference" description="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end."/>
+ <properties name="subsettedProperty" type="Reference" description="References the properties of which this property is constrained to be a subset."/>
+ <properties name="association" type="Reference" description="References the association of which this property is a member, if any."/>
+ <properties name="qualifier" type="Reference" description="An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified."/>
+ <properties name="associationEnd" type="Reference" description="Designates the optional association end that owns a qualifier attribute."/>
+ <properties name="interface" type="Reference"/>
+ <properties name="isID" type="Boolean"/>
+ </elements>
+ <elements name="DeploymentTarget" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="deployment" type="Reference" description="The set of Deployments for a DeploymentTarget."/>
+ <properties name="deployedElement" type="Reference" description="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
+ </elements>
+ <elements name="Deployment" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="deployedArtifact" type="Reference" description="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
+ <properties name="configuration" type="Reference" description="The specification of properties that parameterize the deployment and execution of one or more Artifacts."/>
+ <properties name="location" type="Reference" description="The DeployedTarget which is the target of a Deployment."/>
+ </elements>
+ <elements name="DeployedArtifact" supertypes="//@dataContexts.0/@elements.4"/>
+ <elements name="DeploymentSpecification" supertypes="//@dataContexts.0/@elements.40">
+ <properties name="deploymentLocation" description="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
+ <properties name="executionLocation" description="The location where a component Artifact executes. This may be a local or remote location."/>
+ <properties name="deployment" type="Reference" description="The deployment with which the DeploymentSpecification is associated."/>
+ </elements>
+ <elements name="Artifact" supertypes="//@dataContexts.0/@elements.16 //@dataContexts.0/@elements.38">
+ <properties name="fileName" description="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
+ <properties name="nestedArtifact" type="Reference" description="The Artifacts that are defined (nested) within the Artifact.&#xD;&#xA;The association is a specialization of the ownedMember association from Namespace to NamedElement.&#xD;&#xA;"/>
+ <properties name="manifestation" type="Reference" description="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact."/>
+ <properties name="ownedOperation" type="Reference" description="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
+ <properties name="ownedAttribute" type="Reference" description="The attributes or association ends defined for the Artifact.&#xD;&#xA;The association is a specialization of the ownedMember association.&#xD;&#xA;"/>
+ </elements>
+ <elements name="Manifestation" supertypes="//@dataContexts.0/@elements.29">
+ <properties name="utilizedElement" type="Reference" description="The model element that is utilized in the manifestation in an Artifact."/>
+ </elements>
+ <elements name="Operation" supertypes="//@dataContexts.0/@elements.43 //@dataContexts.0/@elements.22 //@dataContexts.0/@elements.18">
+ <properties name="interface" type="Reference" description="The Interface that owns this Operation."/>
+ <properties name="class" type="Reference" description="The class that owns the operation."/>
+ <properties name="isQuery" description="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
+ <properties name="isOrdered" description="This information is derived from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is ordered or not, if present."/>
+ <properties name="isUnique" description="This information is derived from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is unique or not, if present."/>
+ <properties name="lower" description="This information is derived from the return result for this Operation.&#xD;&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
+ <properties name="upper" description="This information is derived from the return result for this Operation.&#xD;&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
+ <properties name="precondition" type="Reference" description="An optional set of Constraints on the state of the system when the Operation is invoked."/>
+ <properties name="postcondition" type="Reference" description="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
+ <properties name="redefinedOperation" type="Reference" description="References the Operations that are redefined by this Operation."/>
+ <properties name="datatype" type="Reference" description="The DataType that owns this Operation."/>
+ <properties name="bodyCondition" type="Reference" description="An optional Constraint on the result values of an invocation of this Operation."/>
+ <properties name="type" type="Reference" description="This information is derived from the return result for this Operation.&#xD;&#xA;Specifies the return result of the operation, if present."/>
+ </elements>
+ <elements name="BehavioralFeature" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.26">
+ <properties name="ownedParameter" type="Reference" description="Specifies the ordered set of formal parameters of this BehavioralFeature."/>
+ <properties name="isAbstract" description="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element."/>
+ <properties name="method" type="Reference" description="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior)."/>
+ <properties name="concurrency" type="Enumeration" description="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features."/>
+ <properties name="raisedException" type="Reference" description="References the Types representing exceptions that may be raised during an invocation of this feature.&#xD;&#xA;The signals that the behavioral feature raises as exceptions."/>
+ <properties name="ownedParameterSet" type="Reference" description="The ParameterSets owned by this BehavioralFeature."/>
+ </elements>
+ <elements name="Behavior" supertypes="//@dataContexts.0/@elements.45">
+ <properties name="isReentrant" description="Tells whether the behavior can be invoked while it is still executing from a previous invocation."/>
+ <properties name="redefinedBehavior" type="Reference" description="References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior."/>
+ <properties name="ownedParameter" type="Reference" description="References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution.&#xD;&#xA;"/>
+ <properties name="context" type="Reference" description="The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior."/>
+ <properties name="precondition" type="Reference" description="An optional set of Constraints specifying what must be fulfilled when the behavior is invoked."/>
+ <properties name="postcondition" type="Reference" description="An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation."/>
+ <properties name="ownedParameterSet" type="Reference" description="The ParameterSets owned by this Behavior."/>
+ <properties name="specification" type="Reference" description="Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier."/>
+ </elements>
+ <elements name="Class" supertypes="//@dataContexts.0/@elements.63 //@dataContexts.0/@elements.46">
+ <properties name="nestedClassifier" type="Reference" description="References all the Classifiers that are defined (nested) within the Class."/>
+ <properties name="ownedOperation" type="Reference" description="The operations owned by the class."/>
+ <properties name="superClass" type="Reference" description="This gives the superclasses of a class."/>
+ <properties name="isActive" description="Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class."/>
+ <properties name="ownedReception" type="Reference" description="Receptions that objects of this class are willing to accept."/>
+ <properties name="extension" type="Reference" description="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class."/>
+ </elements>
+ <elements name="BehavioredClassifier" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="ownedBehavior" type="Reference" description="References behavior specifications owned by a classifier."/>
+ <properties name="classifierBehavior" type="Reference" description="A behavior specification that specifies the behavior of the classifier itself."/>
+ <properties name="interfaceRealization" type="Reference" description="The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation."/>
+ </elements>
+ <elements name="InterfaceRealization" supertypes="//@dataContexts.0/@elements.28">
+ <properties name="contract" type="Reference" description="References the Interface specifying the conformance contract."/>
+ <properties name="implementingClassifier" type="Reference" description="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
+ </elements>
+ <elements name="Interface" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="ownedAttribute" type="Reference" description="The attributes (i.e. the properties) owned by the class."/>
+ <properties name="ownedOperation" type="Reference" description="The operations owned by the class."/>
+ <properties name="nestedClassifier" type="Reference" description="References all the Classifiers that are defined (nested) within the Class."/>
+ <properties name="redefinedInterface" type="Reference" description="References all the Interfaces redefined by this Interface."/>
+ <properties name="ownedReception" type="Reference" description="Receptions that objects providing this interface are willing to accept."/>
+ <properties name="protocol" type="Reference" description="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
+ </elements>
+ <elements name="Reception" supertypes="//@dataContexts.0/@elements.43">
+ <properties name="signal" type="Reference" description="The signal that this reception handles."/>
+ </elements>
+ <elements name="Signal" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="ownedAttribute" type="Reference" description="The attributes owned by the signal."/>
+ </elements>
+ <elements name="ProtocolStateMachine" supertypes="//@dataContexts.0/@elements.52">
+ <properties name="conformance" type="Reference" description="Conformance between protocol state machines."/>
+ </elements>
+ <elements name="StateMachine" supertypes="//@dataContexts.0/@elements.44">
+ <properties name="region" type="Reference" description="The regions owned directly by the state machine."/>
+ <properties name="submachineState" type="Reference" description="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
+ <properties name="connectionPoint" type="Reference" description="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
+ <properties name="extendedStateMachine" type="Reference" description="The state machines of which this is an extension."/>
+ </elements>
+ <elements name="Region" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.17">
+ <properties name="subvertex" type="Reference" description="The set of vertices that are owned by this region."/>
+ <properties name="transition" type="Reference" description="The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state."/>
+ <properties name="state" type="Reference" description="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
+ <properties name="extendedRegion" type="Reference" description="The region of which this region is an extension."/>
+ <properties name="stateMachine" type="Reference" description="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
+ </elements>
+ <elements name="Vertex" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="outgoing" type="Reference" description="Specifies the transitions departing from this vertex."/>
+ <properties name="incoming" type="Reference" description="Specifies the transitions entering this vertex."/>
+ <properties name="container" type="Reference" description="The region that contains this vertex."/>
+ </elements>
+ <elements name="Transition" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.17">
+ <properties name="kind" type="Enumeration" description="Indicates the precise type of the transition."/>
+ <properties name="container" type="Reference" description="Designates the region that owns this transition."/>
+ <properties name="source" type="Reference" description="Designates the originating vertex (state or pseudostate) of the transition."/>
+ <properties name="target" type="Reference" description="Designates the target vertex that is reached when the transition is taken."/>
+ <properties name="redefinedTransition" type="Reference" description="The transition that is redefined by this transition."/>
+ <properties name="guard" type="Reference" description="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
+ <properties name="effect" type="Reference" description="Specifies an optional behavior to be performed when the transition fires."/>
+ <properties name="trigger" type="Reference" description="Specifies the triggers that may fire the transition."/>
+ </elements>
+ <elements name="Trigger" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="event" type="Reference" description="The event that causes the trigger."/>
+ <properties name="port" type="Reference" description="A optional port of the receiver object on which the behavioral feature is invoked."/>
+ </elements>
+ <elements name="Event" supertypes="//@dataContexts.0/@elements.3"/>
+ <elements name="Port" supertypes="//@dataContexts.0/@elements.35">
+ <properties name="isBehavior" description="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain."/>
+ <properties name="isService" description="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation."/>
+ <properties name="required" type="Reference" description="References the interfaces specifying the set of operations and receptions which the classifier expects its environment to handle. This association is derived as the set of interfaces required by the type of the port or its supertypes."/>
+ <properties name="redefinedPort" type="Reference" description="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes."/>
+ <properties name="provided" type="Reference" description="References the interfaces specifying the set of operations and receptions which the classifier offers to its environment, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived from the interfaces realized by the type of the port or by the type of the port, if the port was typed by an interface.&#xD;&#xA;"/>
+ <properties name="protocol" type="Reference" description="References an optional protocol state machine which describes valid interactions at this interaction point."/>
+ <properties name="isConjugated" type="Boolean"/>
+ </elements>
+ <elements name="State" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.17 //@dataContexts.0/@elements.54">
+ <properties name="isComposite" description="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
+ <properties name="isOrthogonal" description="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
+ <properties name="isSimple" description="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
+ <properties name="isSubmachineState" description="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
+ <properties name="submachine" type="Reference" description="The state machine that is to be inserted in place of the (submachine) state."/>
+ <properties name="connection" type="Reference" description="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
+ <properties name="connectionPoint" type="Reference" description="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
+ <properties name="redefinedState" type="Reference" description="The state of which this state is a redefinition."/>
+ <properties name="stateInvariant" type="Reference" description="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions.&#xD;&#xA;"/>
+ <properties name="entry" type="Reference" description="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.&#xD;&#xA;"/>
+ <properties name="exit" type="Reference" description="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
+ <properties name="doActivity" type="Reference" description="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
+ <properties name="deferrableTrigger" type="Reference" description="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.&#xD;&#xA;"/>
+ <properties name="region" type="Reference" description="The regions owned directly by the state."/>
+ </elements>
+ <elements name="ConnectionPointReference" supertypes="//@dataContexts.0/@elements.54">
+ <properties name="entry" type="Reference" description="The entryPoint kind pseudo states corresponding to this connection point."/>
+ <properties name="exit" type="Reference" description="The exitPoints kind pseudo states corresponding to this connection point."/>
+ <properties name="state" type="Reference" description="The State in which the connection point refreshens are defined."/>
+ </elements>
+ <elements name="Pseudostate" supertypes="//@dataContexts.0/@elements.54">
+ <properties name="kind" type="Enumeration" description="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
+ <properties name="stateMachine" type="Reference" description="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
+ <properties name="state" type="Reference" description="The State that owns this pseudostate and in which it appears."/>
+ </elements>
+ <elements name="ProtocolConformance" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="generalMachine" type="Reference" description="Specifies the protocol state machine to which the specific state machine conforms."/>
+ <properties name="specificMachine" type="Reference" description="Specifies the state machine which conforms to the general state machine."/>
+ </elements>
+ <elements name="EncapsulatedClassifier" supertypes="//@dataContexts.0/@elements.64">
+ <properties name="ownedPort" type="Reference" description="References a set of ports that an encapsulated classifier owns."/>
+ </elements>
+ <elements name="StructuredClassifier" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="ownedAttribute" type="Reference" description="References the properties owned by the classifier."/>
+ <properties name="part" type="Reference" description="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
+ <properties name="role" type="Reference" description="References the roles that instances may play in this classifier."/>
+ <properties name="ownedConnector" type="Reference" description="References the connectors owned by the classifier."/>
+ </elements>
+ <elements name="Connector" supertypes="//@dataContexts.0/@elements.26">
+ <properties name="type" type="Reference" description="An optional association that specifies the link corresponding to this connector."/>
+ <properties name="redefinedConnector" type="Reference" description="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced."/>
+ <properties name="end" type="Reference" description="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered."/>
+ <properties name="kind" type="Enumeration" description="Indicates the kind of connector."/>
+ <properties name="contract" type="Reference" description="The set of Behaviors that specify the valid interaction patterns across the connector."/>
+ </elements>
+ <elements name="Extension" supertypes="//@dataContexts.0/@elements.15">
+ <properties name="isRequired" description="Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the multiplicity of the Property referenced by Extension::ownedEnd; a multiplicity of 1 means that isRequired is true, but otherwise it is false. Since the default multiplicity of an ExtensionEnd is 0..1, the default value of isRequired is false."/>
+ <properties name="metaclass" type="Reference" description="References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd."/>
+ </elements>
+ <elements name="ExtensionEnd" supertypes="//@dataContexts.0/@elements.35"/>
+ <elements name="Stereotype" supertypes="//@dataContexts.0/@elements.45">
+ <properties name="icon" type="Reference" description="Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements."/>
+ </elements>
+ <elements name="Image" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="content" description="This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based)."/>
+ <properties name="location" description="This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype."/>
+ <properties name="format" description="This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP.&#xD;&#xA;&#xD;&#xA;In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example &quot;SVG&quot; could instead be expressed as &quot;MIME: image/svg+xml&quot;."/>
+ </elements>
+ <elements name="Profile" supertypes="//@dataContexts.0/@elements.2">
+ <properties name="metaclassReference" type="Reference" description="References a metaclass that may be extended."/>
+ <properties name="metamodelReference" type="Reference" description="References a package containing (directly or indirectly) metaclasses that may be extended."/>
+ </elements>
+ <elements name="Model" supertypes="//@dataContexts.0/@elements.2">
+ <properties name="viewpoint" description="The name of the viewpoint that is expressed by a model (This name may refer to a profile definition)."/>
+ </elements>
+ <elements name="ParameterSet" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="parameter" type="Reference" description="Parameters in the parameter set."/>
+ <properties name="condition" type="Reference" description="Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied."/>
+ </elements>
+ <elements name="DataType" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="ownedAttribute" type="Reference" description="The Attributes owned by the DataType."/>
+ <properties name="ownedOperation" type="Reference" description="The Operations owned by the DataType."/>
+ </elements>
+ <elements name="OperationTemplateParameter" supertypes="//@dataContexts.0/@elements.21"/>
+ <elements name="StructuralFeature" supertypes="//@dataContexts.0/@elements.26 //@dataContexts.0/@elements.13 //@dataContexts.0/@elements.32">
+ <properties name="isReadOnly" description="States whether the feature's value may be modified by a client."/>
+ </elements>
+ <elements name="ConnectableElementTemplateParameter" supertypes="//@dataContexts.0/@elements.21"/>
+ <elements name="CollaborationUse" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="type" type="Reference" description="The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use."/>
+ <properties name="roleBinding" type="Reference" description="A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles).&#xD;&#xA;"/>
+ </elements>
+ <elements name="Collaboration" supertypes="//@dataContexts.0/@elements.46 //@dataContexts.0/@elements.64">
+ <properties name="collaborationRole" type="Reference" description="References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration."/>
+ </elements>
+ <elements name="UseCase" supertypes="//@dataContexts.0/@elements.46">
+ <properties name="include" type="Reference" description="References the Include relationships owned by this use case."/>
+ <properties name="extend" type="Reference" description="References the Extend relationships owned by this use case."/>
+ <properties name="extensionPoint" type="Reference" description="References the ExtensionPoints owned by the use case."/>
+ <properties name="subject" type="Reference" description="References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it."/>
+ </elements>
+ <elements name="Include" supertypes="//@dataContexts.0/@elements.4 //@dataContexts.0/@elements.6">
+ <properties name="addition" type="Reference" description="References the use case that is to be included.&#xD;&#xA;"/>
+ <properties name="includingCase" type="Reference" description="References the use case which will include the addition and owns the include relationship."/>
+ </elements>
+ <elements name="Extend" supertypes="//@dataContexts.0/@elements.4 //@dataContexts.0/@elements.6">
+ <properties name="extendedCase" type="Reference" description="References the use case that is being extended."/>
+ <properties name="condition" type="Reference" description="References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.&#xD;&#xA;"/>
+ <properties name="extensionLocation" type="Reference" description="An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)&#xD;&#xA;"/>
+ <properties name="extension" type="Reference" description="References the use case that represents the extension and owns the extend relationship."/>
+ </elements>
+ <elements name="ExtensionPoint" supertypes="//@dataContexts.0/@elements.17">
+ <properties name="useCase" type="Reference" description="References the use case that owns this extension point."/>
+ </elements>
+ <elements name="RedefinableTemplateSignature" supertypes="//@dataContexts.0/@elements.17 //@dataContexts.0/@elements.20">
+ <properties name="extendedSignature" type="Reference" description="The template signature that is extended by this template signature."/>
+ <properties name="inheritedParameter" type="Reference" description="The formal template parameters of the extendedSignature."/>
+ <properties name="classifier" type="Reference" description="The classifier that owns this template signature."/>
+ </elements>
+ <elements name="ClassifierTemplateParameter" supertypes="//@dataContexts.0/@elements.21">
+ <properties name="allowSubstitutable" description="Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter."/>
+ <properties name="constrainingClassifier" type="Reference" description="The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument."/>
+ </elements>
+ <elements name="StringExpression" supertypes="//@dataContexts.0/@elements.86 //@dataContexts.0/@elements.18">
+ <properties name="subExpression" type="Reference" description="The StringExpressions that constitute this StringExpression."/>
+ <properties name="owningExpression" type="Reference" description="The string expression of which this expression is a substring."/>
+ </elements>
+ <elements name="Expression" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="symbol" description="The symbol associated with the node in the expression tree."/>
+ <properties name="operand" type="Reference" description="Specifies a sequence of operands."/>
+ </elements>
+ <elements name="Usage" supertypes="//@dataContexts.0/@elements.5"/>
+ <elements name="PackageMerge" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="mergedPackage" type="Reference" description="References the Package that is to be merged with the receiving package of the PackageMerge."/>
+ <properties name="receivingPackage" type="Reference" description="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
+ </elements>
+ <elements name="ProfileApplication" supertypes="//@dataContexts.0/@elements.6">
+ <properties name="appliedProfile" type="Reference" description="References the Profiles that are applied to a Package through this ProfileApplication."/>
+ <properties name="isStrict" description="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied."/>
+ <properties name="applyingPackage" type="Reference" description="The package that owns the profile application."/>
+ </elements>
+ <elements name="Enumeration" supertypes="//@dataContexts.0/@elements.73">
+ <properties name="ownedLiteral" type="Reference" description="The ordered set of literals for this Enumeration."/>
+ </elements>
+ <elements name="EnumerationLiteral" supertypes="//@dataContexts.0/@elements.92">
+ <properties name="enumeration" type="Reference" description="The Enumeration that this EnumerationLiteral is a member of."/>
+ <properties name="classifier" type="Reference" description="The classifier of this EnumerationLiteral is derived to be equal to its enumeration. Redefines InstanceSpecification::classifier."/>
+ </elements>
+ <elements name="InstanceSpecification" supertypes="//@dataContexts.0/@elements.36 //@dataContexts.0/@elements.3 //@dataContexts.0/@elements.38">
+ <properties name="classifier" type="Reference" description="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
+ <properties name="slot" type="Reference" description="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description."/>
+ <properties name="specification" type="Reference" description="A specification of how to compute, derive, or construct the instance."/>
+ </elements>
+ <elements name="Slot" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="definingFeature" type="Reference" description="The structural feature that specifies the values that may be held by the slot."/>
+ <properties name="value" type="Reference" description="The value or values corresponding to the defining feature for the owning instance specification."/>
+ <properties name="owningInstance" type="Reference" description="The instance specification that owns this slot."/>
+ </elements>
+ <elements name="PrimitiveType" supertypes="//@dataContexts.0/@elements.73"/>
+ <elements name="LiteralSpecification" supertypes="//@dataContexts.0/@elements.12"/>
+ <elements name="LiteralInteger" supertypes="//@dataContexts.0/@elements.95">
+ <properties name="value" description="The specified Integer value."/>
+ </elements>
+ <elements name="LiteralString" supertypes="//@dataContexts.0/@elements.95">
+ <properties name="value" description="The specified String value."/>
+ </elements>
+ <elements name="LiteralBoolean" supertypes="//@dataContexts.0/@elements.95">
+ <properties name="value" description="The specified Boolean value."/>
+ </elements>
+ <elements name="LiteralNull" supertypes="//@dataContexts.0/@elements.95"/>
+ <elements name="InstanceValue" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="instance" type="Reference" description="The instance that is the specified value."/>
+ </elements>
+ <elements name="LiteralUnlimitedNatural" supertypes="//@dataContexts.0/@elements.95">
+ <properties name="value" description="The specified UnlimitedNatural value."/>
+ </elements>
+ <elements name="OpaqueBehavior" supertypes="//@dataContexts.0/@elements.44">
+ <properties name="body" description="Specifies the behavior in one or more languages."/>
+ <properties name="language" description="Languages the body strings use in the same order as the body strings."/>
+ </elements>
+ <elements name="FunctionBehavior" supertypes="//@dataContexts.0/@elements.102"/>
+ <elements name="OpaqueAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="body" description="Specifies the action in one or more languages."/>
+ <properties name="language" description="Languages the body strings use, in the same order as the body strings"/>
+ <properties name="inputValue" type="Reference" description="Provides input to the action."/>
+ <properties name="outputValue" type="Reference" description="Takes output from the action."/>
+ </elements>
+ <elements name="Action" supertypes="//@dataContexts.0/@elements.106">
+ <properties name="output" type="Reference" description="The ordered set of output pins connected to the Action. The action places its results onto pins in this set."/>
+ <properties name="input" type="Reference" description="The ordered set of input pins connected to the Action. These are among the total set of inputs."/>
+ <properties name="context" type="Reference" description="The classifier that owns the behavior of which this action is a part."/>
+ <properties name="localPrecondition" type="Reference" description="Constraint that must be satisfied when execution is started."/>
+ <properties name="localPostcondition" type="Reference" description="Constraint that must be satisfied when executed is completed."/>
+ <properties name="isLocallyReentrant" type="Boolean" description="If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed. The default is false."/>
+ </elements>
+ <elements name="ExecutableNode" supertypes="//@dataContexts.0/@elements.107">
+ <properties name="handler" type="Reference" description="A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node."/>
+ </elements>
+ <elements name="ActivityNode" supertypes="//@dataContexts.0/@elements.17">
+ <properties name="inStructuredNode" type="Reference" description="Structured activity node containing the node."/>
+ <properties name="activity" type="Reference" description="Activity containing the node."/>
+ <properties name="outgoing" type="Reference" description="Edges that have the node as source."/>
+ <properties name="incoming" type="Reference" description="Edges that have the node as target."/>
+ <properties name="inPartition" type="Reference" description="Partitions containing the node."/>
+ <properties name="inInterruptibleRegion" type="Reference" description="Interruptible regions containing the node."/>
+ <properties name="inGroup" type="Reference" description="Groups containing the node."/>
+ <properties name="redefinedNode" type="Reference" description="Inherited nodes replaced by this node in a specialization of the activity."/>
+ </elements>
+ <elements name="StructuredActivityNode" supertypes="//@dataContexts.0/@elements.105 //@dataContexts.0/@elements.8 //@dataContexts.0/@elements.109">
+ <properties name="variable" type="Reference" description="A variable defined in the scope of the structured activity node. It has no value and may not be accessed"/>
+ <properties name="edge" type="Reference" description="Edges immediately contained in the structured node."/>
+ <properties name="mustIsolate" description="If true, then the actions in the node execute in isolation from actions outside the node."/>
+ <properties name="node" type="Reference" description="Nodes immediately contained in the group."/>
+ <properties name="structuredNodeInput" type="Reference" multiplicity="-1"/>
+ <properties name="structuredNodeOutput" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="ActivityGroup" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="subgroup" type="Reference" description="Groups immediately contained in the group."/>
+ <properties name="superGroup" type="Reference" description="Group immediately containing the group."/>
+ <properties name="inActivity" type="Reference" description="Activity containing the group."/>
+ <properties name="containedEdge" type="Reference" description="Edges immediately contained in the group."/>
+ <properties name="containedNode" type="Reference" description="Nodes immediately contained in the group."/>
+ </elements>
+ <elements name="Activity" supertypes="//@dataContexts.0/@elements.44">
+ <properties name="structuredNode" type="Reference" description="Top-level structured nodes in the activity."/>
+ <properties name="variable" type="Reference" description="Top-level variables in the activity."/>
+ <properties name="node" type="Reference" description="Nodes coordinated by the activity."/>
+ <properties name="isReadOnly" description="If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes)."/>
+ <properties name="edge" type="Reference" description="Edges expressing flow between nodes of the activity."/>
+ <properties name="partition" type="Reference" description="Top-level partitions in the activity."/>
+ <properties name="isSingleExecution" description="If true, all invocations of the activity are handled by the same execution."/>
+ <properties name="group" type="Reference" description="Top-level groups in the activity."/>
+ </elements>
+ <elements name="Variable" supertypes="//@dataContexts.0/@elements.33 //@dataContexts.0/@elements.32">
+ <properties name="scope" type="Reference" description="A structured activity node that owns the variable."/>
+ <properties name="activityScope" type="Reference" description="An activity that owns the variable."/>
+ </elements>
+ <elements name="ActivityEdge" supertypes="//@dataContexts.0/@elements.17">
+ <properties name="source" type="Reference" description="Node from which tokens are taken when they traverse the edge."/>
+ <properties name="target" type="Reference" description="Node to which tokens are put when they traverse the edge."/>
+ <properties name="redefinedEdge" type="Reference" description="Inherited edges replaced by this edge in a specialization of the activity."/>
+ <properties name="inPartition" type="Reference" description="Partitions containing the edge."/>
+ <properties name="guard" type="Reference" description="Specification evaluated at runtime to determine if the edge can be traversed."/>
+ <properties name="weight" type="Reference" description="The minimum number of tokens that must traverse the edge at the same time."/>
+ <properties name="interrupts" type="Reference" description="Region that the edge can interrupt."/>
+ <properties name="inStructuredNode" type="Reference" description="Structured activity node containing the edge."/>
+ <properties name="inGroup" type="Reference" description="Groups containing the edge."/>
+ <properties name="activity" type="Reference" description="Activity containing the edge."/>
+ </elements>
+ <elements name="ActivityPartition" supertypes="//@dataContexts.0/@elements.4 //@dataContexts.0/@elements.109">
+ <properties name="isDimension" description="Tells whether the partition groups other partitions along a dimension."/>
+ <properties name="isExternal" description="Tells whether the partition represents an entity to which the partitioning structure does not apply."/>
+ <properties name="node" type="Reference" description="Nodes immediately contained in the group."/>
+ <properties name="subpartition" type="Reference" description="Partitions immediately contained in the partition."/>
+ <properties name="superPartition" type="Reference" description="Partition immediately containing the partition."/>
+ <properties name="represents" type="Reference" description="An element constraining behaviors invoked by nodes in the partition."/>
+ <properties name="edge" type="Reference" description="Edges immediately contained in the group."/>
+ </elements>
+ <elements name="InterruptibleActivityRegion" supertypes="//@dataContexts.0/@elements.109">
+ <properties name="node" type="Reference" description="Nodes immediately contained in the group."/>
+ <properties name="interruptingEdge" type="Reference" description="The edges leaving the region that will abort other tokens flowing in the region."/>
+ </elements>
+ <elements name="ExceptionHandler" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="handlerBody" type="Reference" description="A node that is executed if the handler satisfies an uncaught exception."/>
+ <properties name="exceptionInput" type="Reference" description="An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute."/>
+ <properties name="exceptionType" type="Reference" description="The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body."/>
+ <properties name="protectedNode" type="Reference" description="The node protected by the handler. The handler is examined if an exception propagates to the outside of the node."/>
+ </elements>
+ <elements name="ObjectNode" supertypes="//@dataContexts.0/@elements.107 //@dataContexts.0/@elements.13">
+ <properties name="ordering" type="Enumeration" description="Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node."/>
+ <properties name="isControlType" description="Tells whether the type of the object node is to be treated as control."/>
+ <properties name="upperBound" type="Reference" description="The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached."/>
+ <properties name="inState" type="Reference" description="The required states of the object available at this point in the activity."/>
+ <properties name="selection" type="Reference" description="Selects tokens for outgoing edges."/>
+ </elements>
+ <elements name="OutputPin" supertypes="//@dataContexts.0/@elements.118"/>
+ <elements name="Pin" supertypes="//@dataContexts.0/@elements.116 //@dataContexts.0/@elements.32">
+ <properties name="isControl" description="Tells whether the pins provide data to the actions, or just controls when it executes it."/>
+ </elements>
+ <elements name="InputPin" supertypes="//@dataContexts.0/@elements.118"/>
+ <elements name="CallAction" supertypes="//@dataContexts.0/@elements.121">
+ <properties name="isSynchronous" description="If true, the call is synchronous and the caller waits for completion of the invoked behavior.&#xD;&#xA;If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.&#xD;&#xA;"/>
+ <properties name="result" type="Reference" description="A list of output pins where the results of performing the invocation are placed."/>
+ </elements>
+ <elements name="InvocationAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="argument" type="Reference" description="Specification of the ordered set of argument values that appears during execution."/>
+ <properties name="onPort" type="Reference" description="A optional port of the receiver object on which the behavioral feature is invoked."/>
+ </elements>
+ <elements name="SendSignalAction" supertypes="//@dataContexts.0/@elements.121">
+ <properties name="target" type="Reference" description="The target object to which the signal is sent."/>
+ <properties name="signal" type="Reference" description="The type of signal transmitted to the target object."/>
+ </elements>
+ <elements name="CallOperationAction" supertypes="//@dataContexts.0/@elements.120">
+ <properties name="operation" type="Reference" description="The operation to be invoked by the action execution."/>
+ <properties name="target" type="Reference" description="The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation."/>
+ </elements>
+ <elements name="CallBehaviorAction" supertypes="//@dataContexts.0/@elements.120">
+ <properties name="behavior" type="Reference" description="The invoked behavior. It must be capable of accepting and returning control."/>
+ </elements>
+ <elements name="SequenceNode" supertypes="//@dataContexts.0/@elements.108">
+ <properties name="executableNode" type="Reference" description="An ordered set of executable nodes."/>
+ </elements>
+ <elements name="ControlNode" supertypes="//@dataContexts.0/@elements.107"/>
+ <elements name="ControlFlow" supertypes="//@dataContexts.0/@elements.112"/>
+ <elements name="InitialNode" supertypes="//@dataContexts.0/@elements.126"/>
+ <elements name="ActivityParameterNode" supertypes="//@dataContexts.0/@elements.116">
+ <properties name="parameter" type="Reference" description="The parameter the object node will be accepting or providing values for."/>
+ </elements>
+ <elements name="ValuePin" supertypes="//@dataContexts.0/@elements.119">
+ <properties name="value" type="Reference" description="Value that the pin will provide."/>
+ </elements>
+ <elements name="Message" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="messageKind" type="Enumeration" description="The derived kind of the Message (complete, lost, found or unknown)"/>
+ <properties name="messageSort" type="Enumeration" description="The sort of communication reflected by the Message"/>
+ <properties name="receiveEvent" type="Reference" description="References the Receiving of the Message"/>
+ <properties name="sendEvent" type="Reference" description="References the Sending of the Message."/>
+ <properties name="connector" type="Reference" description="The Connector on which this Message is sent."/>
+ <properties name="interaction" type="Reference" description="The enclosing Interaction owning the Message"/>
+ <properties name="argument" type="Reference" description="The arguments of the Message"/>
+ <properties name="signature" type="Reference" description="The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event."/>
+ </elements>
+ <elements name="MessageEnd" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="message" type="Reference" description="References a Message."/>
+ </elements>
+ <elements name="Interaction" supertypes="//@dataContexts.0/@elements.44 //@dataContexts.0/@elements.134">
+ <properties name="lifeline" type="Reference" description="Specifies the participants in this Interaction."/>
+ <properties name="fragment" type="Reference" description="The ordered set of fragments in the Interaction."/>
+ <properties name="action" type="Reference" description="Actions owned by the Interaction."/>
+ <properties name="formalGate" type="Reference" description="Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.&#xD;&#xA;"/>
+ <properties name="message" type="Reference" description="The Messages contained in this Interaction."/>
+ </elements>
+ <elements name="InteractionFragment" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="covered" type="Reference" description="References the Lifelines that the InteractionFragment involves."/>
+ <properties name="generalOrdering" type="Reference" description="The general ordering relationships contained in this fragment."/>
+ <properties name="enclosingInteraction" type="Reference" description="The Interaction enclosing this InteractionFragment."/>
+ <properties name="enclosingOperand" type="Reference" description="The operand enclosing this InteractionFragment (they may nest recursively)"/>
+ </elements>
+ <elements name="Lifeline" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="represents" type="Reference" description="References the ConnectableElement within the classifier that contains the enclosing interaction."/>
+ <properties name="interaction" type="Reference" description="References the Interaction enclosing this Lifeline."/>
+ <properties name="selector" type="Reference" description="If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set."/>
+ <properties name="decomposedAs" type="Reference" description="References the Interaction that represents the decomposition."/>
+ <properties name="coveredBy" type="Reference" description="References the InteractionFragments in which this Lifeline takes part."/>
+ </elements>
+ <elements name="PartDecomposition" supertypes="//@dataContexts.0/@elements.137"/>
+ <elements name="InteractionUse" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="refersTo" type="Reference" description="Refers to the Interaction that defines its meaning"/>
+ <properties name="actualGate" type="Reference" description="The actual gates of the InteractionUse"/>
+ <properties name="argument" type="Reference" description="The actual arguments of the Interaction"/>
+ <properties name="returnValue" type="Reference" description="The value of the executed Interaction."/>
+ <properties name="returnValueRecipient" type="Reference" description="The recipient of the return value."/>
+ </elements>
+ <elements name="Gate" supertypes="//@dataContexts.0/@elements.132"/>
+ <elements name="GeneralOrdering" supertypes="//@dataContexts.0/@elements.4">
+ <properties name="before" type="Reference" description="The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after."/>
+ <properties name="after" type="Reference" description="The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before."/>
+ </elements>
+ <elements name="OccurrenceSpecification" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="toBefore" type="Reference" description="References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification&#xD;&#xA;"/>
+ <properties name="toAfter" type="Reference" description="References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification&#xD;&#xA;"/>
+ </elements>
+ <elements name="InteractionOperand" supertypes="//@dataContexts.0/@elements.8 //@dataContexts.0/@elements.134">
+ <properties name="guard" type="Reference" description="Constraint of the operand."/>
+ <properties name="fragment" type="Reference" description="The fragments of the operand."/>
+ </elements>
+ <elements name="InteractionConstraint" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="minint" type="Reference" description="The minimum number of iterations of a loop"/>
+ <properties name="maxint" type="Reference" description="The maximum number of iterations of a loop"/>
+ </elements>
+ <elements name="ExecutionSpecification" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="start" type="Reference" description="References the OccurrenceSpecification that designates the start of the Action or Behavior"/>
+ <properties name="finish" type="Reference" description="References the OccurrenceSpecification that designates the finish of the Action or Behavior."/>
+ </elements>
+ <elements name="StateInvariant" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="invariant" type="Reference" description="A Constraint that should hold at runtime for this StateInvariant"/>
+ </elements>
+ <elements name="ActionExecutionSpecification" supertypes="//@dataContexts.0/@elements.143">
+ <properties name="action" type="Reference" description="Action whose execution is occurring."/>
+ </elements>
+ <elements name="BehaviorExecutionSpecification" supertypes="//@dataContexts.0/@elements.143">
+ <properties name="behavior" type="Reference" description="Behavior whose execution is occurring."/>
+ </elements>
+ <elements name="CreationEvent" supertypes="//@dataContexts.0/@elements.57"/>
+ <elements name="MessageEvent" supertypes="//@dataContexts.0/@elements.57"/>
+ <elements name="MessageOccurrenceSpecification" supertypes="//@dataContexts.0/@elements.140 //@dataContexts.0/@elements.132"/>
+ <elements name="ExecutionOccurrenceSpecification" supertypes="//@dataContexts.0/@elements.140">
+ <properties name="execution" type="Reference" multiplicity="2" description="References the execution specification describing the execution that is started or finished at this execution event."/>
+ </elements>
+ <elements name="Actor" supertypes="//@dataContexts.0/@elements.46"/>
+ <elements name="CallEvent" supertypes="//@dataContexts.0/@elements.148">
+ <properties name="operation" type="Reference" description="Designates the operation whose invocation raised the call event."/>
+ </elements>
+ <elements name="ChangeEvent" supertypes="//@dataContexts.0/@elements.57">
+ <properties name="changeExpression" type="Reference" description="A Boolean-valued expression that will result in a change event whenever its value changes from false to true."/>
+ </elements>
+ <elements name="SignalEvent" supertypes="//@dataContexts.0/@elements.148">
+ <properties name="signal" type="Reference" description="The specific signal that is associated with this event."/>
+ </elements>
+ <elements name="AnyReceiveEvent" supertypes="//@dataContexts.0/@elements.148"/>
+ <elements name="ForkNode" supertypes="//@dataContexts.0/@elements.126"/>
+ <elements name="FlowFinalNode" supertypes="//@dataContexts.0/@elements.158"/>
+ <elements name="FinalNode" supertypes="//@dataContexts.0/@elements.126"/>
+ <elements name="CentralBufferNode" supertypes="//@dataContexts.0/@elements.116"/>
+ <elements name="MergeNode" supertypes="//@dataContexts.0/@elements.126"/>
+ <elements name="DecisionNode" supertypes="//@dataContexts.0/@elements.126">
+ <properties name="decisionInput" type="Reference" description="Provides input to guard specifications on edges outgoing from the decision node."/>
+ <properties name="decisionInputFlow" type="Reference" description="An additional edge incoming to the decision node that provides a decision input value."/>
+ </elements>
+ <elements name="ObjectFlow" supertypes="//@dataContexts.0/@elements.112">
+ <properties name="isMulticast" description="Tells whether the objects in the flow are passed by multicasting."/>
+ <properties name="isMultireceive" description="Tells whether the objects in the flow are gathered from respondents to multicasting."/>
+ <properties name="transformation" type="Reference" description="Changes or replaces data tokens flowing along edge."/>
+ <properties name="selection" type="Reference" description="Selects tokens from a source object node."/>
+ </elements>
+ <elements name="ActivityFinalNode" supertypes="//@dataContexts.0/@elements.158"/>
+ <elements name="ComponentRealization" supertypes="//@dataContexts.0/@elements.28">
+ <properties name="abstraction" type="Reference" description="The Component that owns this ComponentRealization and which is implemented by its realizing classifiers."/>
+ <properties name="realizingClassifier" type="Reference" description="The classifiers that are involved in the implementation of the Component that owns this Realization."/>
+ </elements>
+ <elements name="Component" supertypes="//@dataContexts.0/@elements.45">
+ <properties name="isIndirectlyInstantiated" description="The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at runtime (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute, e.g. &lt;&lt;specification>>, &lt;&lt;focus>>, &lt;&lt;subsystem>>."/>
+ <properties name="required" type="Reference" description="The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports."/>
+ <properties name="provided" type="Reference" description="The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports."/>
+ <properties name="packagedElement" type="Reference" description="The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts."/>
+ <properties name="realization" type="Reference" description="The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior."/>
+ </elements>
+ <elements name="Node" supertypes="//@dataContexts.0/@elements.45 //@dataContexts.0/@elements.36">
+ <properties name="nestedNode" type="Reference" description="The Nodes that are defined (nested) within the Node."/>
+ </elements>
+ <elements name="CommunicationPath" supertypes="//@dataContexts.0/@elements.15"/>
+ <elements name="Device" supertypes="//@dataContexts.0/@elements.166"/>
+ <elements name="ExecutionEnvironment" supertypes="//@dataContexts.0/@elements.166"/>
+ <elements name="CombinedFragment" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="interactionOperator" type="Enumeration" description="Specifies the operation which defines the semantics of this combination of InteractionFragments."/>
+ <properties name="operand" type="Reference" description="The set of operands of the combined fragment."/>
+ <properties name="cfragmentGate" type="Reference" description="Specifies the gates that form the interface between this CombinedFragment and its surroundings"/>
+ </elements>
+ <elements name="Continuation" supertypes="//@dataContexts.0/@elements.134">
+ <properties name="setting" description="True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning."/>
+ </elements>
+ <elements name="ConsiderIgnoreFragment" supertypes="//@dataContexts.0/@elements.170">
+ <properties name="message" type="Reference" description="The set of messages that apply to this fragment"/>
+ </elements>
+ <elements name="CreateObjectAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="classifier" type="Reference" description="Classifier to be instantiated."/>
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="DestroyObjectAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="isDestroyLinks" description="Specifies whether links in which the object participates are destroyed along with the object."/>
+ <properties name="isDestroyOwnedObjects" description="Specifies whether objects owned by the object are destroyed along with the object."/>
+ <properties name="target" type="Reference" description="The input pin providing the object to be destroyed."/>
+ </elements>
+ <elements name="TestIdentityAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="first" type="Reference" description="Gives the pin on which an object is placed."/>
+ <properties name="second" type="Reference" description="Gives the pin on which an object is placed."/>
+ <properties name="result" type="Reference" description="Tells whether the two input objects are identical."/>
+ </elements>
+ <elements name="ReadSelfAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="result" type="Reference" description="Gives the output pin on which the hosting object is placed."/>
+ </elements>
+ <elements name="StructuralFeatureAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="structuralFeature" type="Reference" description="Structural feature to be read."/>
+ <properties name="object" type="Reference" description="Gives the input pin from which the object whose structural feature is to be read or written is obtained.&#xD;&#xA;"/>
+ </elements>
+ <elements name="ReadStructuralFeatureAction" supertypes="//@dataContexts.0/@elements.177">
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="WriteStructuralFeatureAction" supertypes="//@dataContexts.0/@elements.177">
+ <properties name="value" type="Reference" description="Value to be added or removed from the structural feature."/>
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="ClearStructuralFeatureAction" supertypes="//@dataContexts.0/@elements.177">
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="RemoveStructuralFeatureValueAction" supertypes="//@dataContexts.0/@elements.179">
+ <properties name="isRemoveDuplicates" description="Specifies whether to remove duplicates of the value in nonunique structural features."/>
+ <properties name="removeAt" type="Reference" description="Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited."/>
+ </elements>
+ <elements name="AddStructuralFeatureValueAction" supertypes="//@dataContexts.0/@elements.179">
+ <properties name="isReplaceAll" description="Specifies whether existing values of the structural feature of the object should be removed before adding the new value."/>
+ <properties name="insertAt" type="Reference" description="Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features."/>
+ </elements>
+ <elements name="LinkAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="endData" type="Reference" description="Data identifying one end of a link by the objects on its ends and qualifiers."/>
+ <properties name="inputValue" type="Reference" description="Pins taking end objects and qualifier values as input."/>
+ </elements>
+ <elements name="LinkEndData" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="value" type="Reference" description="Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading."/>
+ <properties name="end" type="Reference" description="Association end for which this link-end data specifies values."/>
+ <properties name="qualifier" type="Reference" description="List of qualifier values"/>
+ </elements>
+ <elements name="QualifierValue" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="qualifier" type="Reference" description="Attribute representing the qualifier for which the value is to be specified."/>
+ <properties name="value" type="Reference" description="Input pin from which the specified value for the qualifier is taken."/>
+ </elements>
+ <elements name="ReadLinkAction" supertypes="//@dataContexts.0/@elements.183">
+ <properties name="result" type="Reference" description="The pin on which are put the objects participating in the association at the end not specified by the inputs.&#xD;&#xA;"/>
+ </elements>
+ <elements name="LinkEndCreationData" supertypes="//@dataContexts.0/@elements.184">
+ <properties name="isReplaceAll" description="Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link."/>
+ <properties name="insertAt" type="Reference" description="Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered."/>
+ </elements>
+ <elements name="CreateLinkAction" supertypes="//@dataContexts.0/@elements.189"/>
+ <elements name="WriteLinkAction" supertypes="//@dataContexts.0/@elements.183"/>
+ <elements name="DestroyLinkAction" supertypes="//@dataContexts.0/@elements.189"/>
+ <elements name="LinkEndDestructionData" supertypes="//@dataContexts.0/@elements.184">
+ <properties name="isDestroyDuplicates" description="Specifies whether to destroy duplicates of the value in nonunique association ends."/>
+ <properties name="destroyAt" type="Reference" description="Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited."/>
+ </elements>
+ <elements name="ClearAssociationAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="object" type="Reference" description="Gives the input pin from which is obtained the object whose participation in the association is to be cleared."/>
+ <properties name="association" type="Reference" description="Association to be cleared."/>
+ </elements>
+ <elements name="BroadcastSignalAction" supertypes="//@dataContexts.0/@elements.121">
+ <properties name="signal" type="Reference" description="The specification of signal object transmitted to the target objects."/>
+ </elements>
+ <elements name="SendObjectAction" supertypes="//@dataContexts.0/@elements.121">
+ <properties name="target" type="Reference" description="The target object to which the object is sent."/>
+ <properties name="request" type="Reference" description="The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved."/>
+ </elements>
+ <elements name="ValueSpecificationAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="value" type="Reference" description="Value specification to be evaluated."/>
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="TimeExpression" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="expr" type="Reference" description="The value of the time expression."/>
+ <properties name="observation" type="Reference" description="Refers to the time and duration observations that are involved in expr."/>
+ </elements>
+ <elements name="Observation" supertypes="//@dataContexts.0/@elements.3"/>
+ <elements name="Duration" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="expr" type="Reference" description="The value of the Duration."/>
+ <properties name="observation" type="Reference" description="Refers to the time and duration observations that are involved in expr."/>
+ </elements>
+ <elements name="DurationInterval" supertypes="//@dataContexts.0/@elements.200"/>
+ <elements name="Interval" supertypes="//@dataContexts.0/@elements.12">
+ <properties name="min" type="Reference" description="Refers to the ValueSpecification denoting the minimum value of the range."/>
+ <properties name="max" type="Reference" description="Refers to the ValueSpecification denoting the maximum value of the range."/>
+ </elements>
+ <elements name="TimeConstraint" supertypes="//@dataContexts.0/@elements.202">
+ <properties name="firstEvent" description="The value of firstEvent is related to constrainedElement. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters constrainedElement. If firstEvent is false, then the corresponding observation event is the last time instant the execution is within constrainedElement."/>
+ </elements>
+ <elements name="IntervalConstraint" supertypes="//@dataContexts.0/@elements.11"/>
+ <elements name="TimeInterval" supertypes="//@dataContexts.0/@elements.200"/>
+ <elements name="DurationConstraint" supertypes="//@dataContexts.0/@elements.202">
+ <properties name="firstEvent" description="The value of firstEvent[i] is related to constrainedElement[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters constrainedElement[i]. If firstEvent[i] is false, then the corresponding observation event is the last time instant the execution is within constrainedElement[i]. Default value is true applied when constrainedElement[i] refers an element that represents only one time instant."/>
+ </elements>
+ <elements name="TimeObservation" supertypes="//@dataContexts.0/@elements.197">
+ <properties name="event" type="Reference" description="The observation is determined by the entering or exiting of the event element during execution."/>
+ <properties name="firstEvent" description="The value of firstEvent is related to event. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters event. If firstEvent is false, then the corresponding observation event is the time instant the execution exits event."/>
+ </elements>
+ <elements name="DurationObservation" supertypes="//@dataContexts.0/@elements.197">
+ <properties name="event" type="Reference" description="The observation is determined by the entering or exiting of the event element during execution."/>
+ <properties name="firstEvent" description="The value of firstEvent[i] is related to event[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters event[i]. If firstEvent[i] is false, then the corresponding observation event is the time instant the execution exits event[i]. Default value is true applied when event[i] refers an element that represents only one time instant."/>
+ </elements>
+ <elements name="FinalState" supertypes="//@dataContexts.0/@elements.59"/>
+ <elements name="TimeEvent" supertypes="//@dataContexts.0/@elements.57">
+ <properties name="isRelative" description="Specifies whether it is relative or absolute time."/>
+ <properties name="when" type="Reference" description="Specifies the corresponding time deadline."/>
+ </elements>
+ <elements name="VariableAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="variable" type="Reference" description="Variable to be read."/>
+ </elements>
+ <elements name="ReadVariableAction" supertypes="//@dataContexts.0/@elements.209">
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="WriteVariableAction" supertypes="//@dataContexts.0/@elements.209">
+ <properties name="value" type="Reference" description="Value to be added or removed from the variable."/>
+ </elements>
+ <elements name="ClearVariableAction" supertypes="//@dataContexts.0/@elements.209"/>
+ <elements name="AddVariableValueAction" supertypes="//@dataContexts.0/@elements.211">
+ <properties name="isReplaceAll" description="Specifies whether existing values of the variable should be removed before adding the new value."/>
+ <properties name="insertAt" type="Reference" description="Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables."/>
+ </elements>
+ <elements name="RemoveVariableValueAction" supertypes="//@dataContexts.0/@elements.211">
+ <properties name="isRemoveDuplicates" description="Specifies whether to remove duplicates of the value in nonunique variables."/>
+ <properties name="removeAt" type="Reference" description="Specifies the position of an existing value to remove in ordered nonunique variables. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited."/>
+ </elements>
+ <elements name="RaiseExceptionAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="exception" type="Reference" description="An input pin whose value becomes an exception object."/>
+ </elements>
+ <elements name="ActionInputPin" supertypes="//@dataContexts.0/@elements.119">
+ <properties name="fromAction" type="Reference" description="The action used to provide values."/>
+ </elements>
+ <elements name="InformationItem" supertypes="//@dataContexts.0/@elements.16">
+ <properties name="represented" type="Reference" description="Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers."/>
+ </elements>
+ <elements name="InformationFlow" supertypes="//@dataContexts.0/@elements.3 //@dataContexts.0/@elements.6">
+ <properties name="realization" type="Reference" description="Determines which Relationship will realize the specified flow"/>
+ <properties name="conveyed" type="Reference" description="Specifies the information items that may circulate on this information flow."/>
+ <properties name="informationSource" type="Reference" description="Defines from which source the conveyed InformationItems are initiated."/>
+ <properties name="informationTarget" type="Reference" description="Defines to which target the conveyed InformationItems are directed."/>
+ <properties name="realizingActivityEdge" type="Reference" description="Determines which ActivityEdges will realize the specified flow."/>
+ <properties name="realizingConnector" type="Reference" description="Determines which Connectors will realize the specified flow."/>
+ <properties name="realizingMessage" type="Reference" description="Determines which Messages will realize the specified flow."/>
+ </elements>
+ <elements name="ReadExtentAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="result" type="Reference" description="The runtime instances of the classifier."/>
+ <properties name="classifier" type="Reference" description="The classifier whose instances are to be retrieved."/>
+ </elements>
+ <elements name="ReclassifyObjectAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="isReplaceAll" description="Specifies whether existing classifiers should be removed before adding the new classifiers."/>
+ <properties name="oldClassifier" type="Reference" description="A set of classifiers to be removed from the classifiers of the object."/>
+ <properties name="newClassifier" type="Reference" description="A set of classifiers to be added to the classifiers of the object."/>
+ <properties name="object" type="Reference" description="Holds the object to be reclassified."/>
+ </elements>
+ <elements name="ReadIsClassifiedObjectAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="isDirect" description="Indicates whether the classifier must directly classify the input object."/>
+ <properties name="classifier" type="Reference" description="The classifier against which the classification of the input object is tested."/>
+ <properties name="result" type="Reference" description="After termination of the action, will hold the result of the test."/>
+ <properties name="object" type="Reference" description="Holds the object whose classification is to be tested."/>
+ </elements>
+ <elements name="StartClassifierBehaviorAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="object" type="Reference" description="Holds the object on which to start the owned behavior."/>
+ </elements>
+ <elements name="ReadLinkObjectEndAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="object" type="Reference" description="Gives the input pin from which the link object is obtained."/>
+ <properties name="end" type="Reference" description="Link end to be read."/>
+ <properties name="result" type="Reference" description="Pin where the result value is placed."/>
+ </elements>
+ <elements name="ReadLinkObjectEndQualifierAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="object" type="Reference" description="Gives the input pin from which the link object is obtained."/>
+ <properties name="result" type="Reference" description="Pin where the result value is placed."/>
+ <properties name="qualifier" type="Reference" description="The attribute representing the qualifier to be read."/>
+ </elements>
+ <elements name="CreateLinkObjectAction" supertypes="//@dataContexts.0/@elements.188">
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ </elements>
+ <elements name="AcceptEventAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="isUnmarshall" description="Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event."/>
+ <properties name="result" type="Reference" description="Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved."/>
+ <properties name="trigger" type="Reference" description="The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted."/>
+ </elements>
+ <elements name="AcceptCallAction" supertypes="//@dataContexts.0/@elements.226">
+ <properties name="returnInformation" type="Reference" description="Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model."/>
+ </elements>
+ <elements name="ReplyAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="replyToCall" type="Reference" description="The trigger specifying the operation whose call is being replied to."/>
+ <properties name="returnInformation" type="Reference" description="A pin containing the return information value produced by an earlier AcceptCallAction."/>
+ <properties name="replyValue" type="Reference" description="A list of pins containing the reply values of the operation. These values are returned to the caller."/>
+ </elements>
+ <elements name="UnmarshallAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="result" type="Reference" description="The values of the structural features of the input object."/>
+ <properties name="unmarshallType" type="Reference" description="The type of the object to be unmarshalled."/>
+ <properties name="object" type="Reference" description="The object to be unmarshalled."/>
+ </elements>
+ <elements name="ReduceAction" supertypes="//@dataContexts.0/@elements.105">
+ <properties name="reducer" type="Reference" description="Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection."/>
+ <properties name="result" type="Reference" description="Gives the output pin on which the result is put."/>
+ <properties name="collection" type="Reference" description="The collection to be reduced."/>
+ <properties name="isOrdered" description="Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements."/>
+ </elements>
+ <elements name="StartObjectBehaviorAction" supertypes="//@dataContexts.0/@elements.120">
+ <properties name="object" type="Reference" description="Holds the object which is either a behavior to be started or has a classifier behavior to be started."/>
+ </elements>
+ <elements name="JoinNode" supertypes="//@dataContexts.0/@elements.126">
+ <properties name="isCombineDuplicate" description="Tells whether tokens having objects with the same identity are combined into one by the join."/>
+ <properties name="joinSpec" type="Reference" description="A specification giving the conditions under which the join with emit a token. Default is &quot;and&quot;."/>
+ </elements>
+ <elements name="DataStoreNode" supertypes="//@dataContexts.0/@elements.159"/>
+ <elements name="ConditionalNode" supertypes="//@dataContexts.0/@elements.108">
+ <properties name="isDeterminate" description="If true, the modeler asserts that at most one test will succeed."/>
+ <properties name="isAssured" description="If true, the modeler asserts that at least one test will succeed."/>
+ <properties name="clause" type="Reference" description="Set of clauses composing the conditional."/>
+ <properties name="result" type="Reference" description="A list of output pins that constitute the data flow outputs of the conditional."/>
+ </elements>
+ <elements name="Clause" supertypes="//@dataContexts.0/@elements.1">
+ <properties name="test" type="Reference" multiplicity="-1" description="A nested activity fragment with a designated output pin that specifies the result of the test."/>
+ <properties name="body" type="Reference" description="A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true."/>
+ <properties name="predecessorClause" type="Reference" description="A set of clauses whose tests must all evaluate false before the current clause can be tested."/>
+ <properties name="successorClause" type="Reference" description="A set of clauses which may not be tested unless the current clause tests false."/>
+ <properties name="decider" type="Reference" description="An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed."/>
+ <properties name="bodyOutput" type="Reference" description="A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node after execution of the clause body."/>
+ </elements>
+ <elements name="LoopNode" supertypes="//@dataContexts.0/@elements.108">
+ <properties name="isTestedFirst" description="If true, the test is performed before the first execution of the body.&#xA;If false, the body is executed once before the test is performed.&#xA;"/>
+ <properties name="bodyPart" type="Reference" description="The set of nodes and edges that perform the repetitive computations of the loop. The body section is executed as long as the test section produces a true value."/>
+ <properties name="setupPart" type="Reference" description="The set of nodes and edges that initialize values or perform other setup computations for the loop."/>
+ <properties name="decider" type="Reference" description="An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body."/>
+ <properties name="test" type="Reference" multiplicity="-1" description="The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed."/>
+ <properties name="result" type="Reference" description="A list of output pins that constitute the data flow output of the entire loop."/>
+ <properties name="loopVariable" type="Reference" description="A list of output pins that hold the values of the loop variables during an execution of the loop. When the test fails, the values are movied to the result pins of the loop."/>
+ <properties name="bodyOutput" type="Reference" description="A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits."/>
+ <properties name="loopVariableInput" type="Reference" description="A list of values that are moved into the loop variable pins before the first iteration of the loop."/>
+ </elements>
+ <elements name="ExpansionNode" supertypes="//@dataContexts.0/@elements.116">
+ <properties name="regionAsOutput" type="Reference" description="The expansion region for which the node is an output."/>
+ <properties name="regionAsInput" type="Reference" description="The expansion region for which the node is an input."/>
+ </elements>
+ <elements name="ExpansionRegion" supertypes="//@dataContexts.0/@elements.108">
+ <properties name="mode" type="Enumeration" description="The way in which the executions interact:&#xD;&#xA;parallel: all interactions are independent&#xD;&#xA;iterative: the interactions occur in order of the elements&#xD;&#xA;stream: a stream of values flows into a single execution&#xD;&#xA;"/>
+ <properties name="inputElement" type="Reference" description="An object node that holds a separate element of the input collection during each of the multiple executions of the region."/>
+ <properties name="outputElement" type="Reference" description="An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete."/>
+ </elements>
+ <elements name="ProtocolTransition" supertypes="//@dataContexts.0/@elements.55">
+ <properties name="postCondition" type="Reference" description="Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition.&#xD;&#xA;"/>
+ <properties name="referred" type="Reference" description="This association refers to the associated operation. It is derived from the operation of the call trigger when applicable."/>
+ <properties name="preCondition" type="Reference" description="Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation referred by the transition if any."/>
+ </elements>
+ <elements name="AssociationClass" supertypes="//@dataContexts.0/@elements.45 //@dataContexts.0/@elements.15"/>
+ <elements name="EModelElement">
+ <properties name="eAnnotations" type="Reference"/>
+ </elements>
+ <elements name="LiteralReal" supertypes="//@dataContexts.0/@elements.95">
+ <properties name="value" label="" description="The specified Real value."/>
+ </elements>
+ <elements name="DestructionOccurrenceSpecification" supertypes="//@dataContexts.0/@elements.149"/>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.1"/>
+ </dataContexts>
+ <dataContexts name="MemberEnd" label="Multiplicity">
+ <properties name="owner" label="Owner" type="Enumeration"/>
+ <properties name="navigable" label="Navigable" type="Boolean"/>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.0"/>
+ </dataContexts>
+ <dataContexts name="Multiplicity" label="Multiplicity">
+ <properties name="multiplicity" label="Multiplicity"/>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.0"/>
+ </dataContexts>
+ <dataContexts name="StereotypeApplication" label="Stereotype application">
+ <properties name="stereotypeApplication" label="Stereotype application" type="Reference" multiplicity="-1"/>
+ <properties name="profileApplication" label="Profile application" type="Reference" multiplicity="-1"/>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.3"/>
+ </dataContexts>
+ <dataContexts name="CustomImage" label="Custom Image">
+ <elements name="Image">
+ <properties name="kind" type="Enumeration" description="The kind of image to be used. If icon is set, the image will be displayed on the stereotyped element. If shape is used, the image will be used as the graphical element. "/>
+ <properties name="expression" description="A boolean expression to determine under which condition this image should be displayed."/>
+ <properties name="name" label="" description="The image's name. This is a virtual property, used only for label display."/>
+ </elements>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.5"/>
+ </dataContexts>
+</contexts:Context>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResourceEnvironment.xmi b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResourceEnvironment.xmi
new file mode 100644
index 00000000000..a0a3ff2c595
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/UMLStereotypeApplicationExternalResourceEnvironment.xmi
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ASCII"?>
+<environment:Environment
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:environment="http://www.eclipse.org/papyrus/properties/environment/0.9">
+ <propertyEditorTypes
+ label="External Resource Profile Application Editor"
+ widgetClass="ProfileApplicationPropertyEditor"
+ namespace="//@namespaces.0"
+ type="Reference"
+ multiplicity="-1"/>
+ <namespaces
+ name="umlprofileexternalresource"
+ value="org.eclipse.papyrus.uml.profile.externalresource.properties.widget"/>
+</environment:Environment>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/ui/SinglePackageProfile.xwt b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/ui/SinglePackageProfile.xwt
new file mode 100644
index 00000000000..2507f0c30e4
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/resources/ui/SinglePackageProfile.xwt
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns:uml="clr-namespace:org.eclipse.papyrus.uml.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <uml:ProfileApplicationPropertyEditor
+ input="{Binding}" property="StereotypeApplication:profileApplication">
+ </uml:ProfileApplicationPropertyEditor>
+</Composite> \ No newline at end of file
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/Activator.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/Activator.java
new file mode 100644
index 00000000000..b9692fb91e2
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/Activator.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.properties;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.uml.profile.externalresource.properties"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/OneResourceOnlyStrategyLocationPropertyEditor.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/OneResourceOnlyStrategyLocationPropertyEditor.java
new file mode 100644
index 00000000000..d0f03043f38
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/OneResourceOnlyStrategyLocationPropertyEditor.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.properties.widgets;
+
+import org.eclipse.papyrus.uml.properties.widgets.ProfileApplicationEditor;
+import org.eclipse.papyrus.uml.properties.widgets.ProfileApplicationPropertyEditor;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A Property editor for Profile Application, extended to support external resource for profile applications
+ */
+public class OneResourceOnlyStrategyLocationPropertyEditor extends ProfileApplicationPropertyEditor {
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * @param style
+ */
+ public OneResourceOnlyStrategyLocationPropertyEditor(Composite parent, int style) {
+ super(parent, style);
+ setEditor(new ResourcePerProfileStrategyLocationEditor(parent, style));
+ }
+
+
+
+ /**
+ * Location editor for the common resource where stereotype application are stored
+ *
+ * ---------------------------------------
+ * Stereotype Application Location | | |+| |X|
+ * ---------------------------------------
+ */
+ public class ResourcePerProfileStrategyLocationEditor extends ProfileApplicationEditor {
+
+ /**
+ * @param parent
+ * @param style
+ */
+ public ResourcePerProfileStrategyLocationEditor(Composite parent, int style) {
+ super(parent, style);
+ }
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/ResourcePerProfileStrategyLocationPropertyEditor.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/ResourcePerProfileStrategyLocationPropertyEditor.java
new file mode 100644
index 00000000000..6e8838cf7a2
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.properties/src/org/eclipse/papyrus/uml/profile/externalresource/properties/widgets/ResourcePerProfileStrategyLocationPropertyEditor.java
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.properties.widgets;
+
+import org.eclipse.papyrus.uml.properties.widgets.ProfileApplicationEditor;
+import org.eclipse.papyrus.uml.properties.widgets.ProfileApplicationPropertyEditor;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A Property editor for Profile Application, extended to support external resource for profile applications
+ */
+public class ResourcePerProfileStrategyLocationPropertyEditor extends ProfileApplicationPropertyEditor {
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * @param style
+ */
+ public ResourcePerProfileStrategyLocationPropertyEditor(Composite parent, int style) {
+ super(parent, style);
+ setEditor(new ResourcePerProfileStrategyLocationEditor(parent, style));
+ }
+
+
+ public class ResourcePerProfileStrategyLocationEditor extends ProfileApplicationEditor {
+
+ /**
+ * @param parent
+ * @param style
+ */
+ public ResourcePerProfileStrategyLocationEditor(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.classpath b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.project b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.project
new file mode 100644
index 00000000000..f90bdf8616c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.profile.externalresource.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.settings/org.eclipse.jdt.core.prefs b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/META-INF/MANIFEST.MF b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..5f2a1b82ef1
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Profil in External Resources plugin project
+Bundle-SymbolicName: org.eclipse.papyrus.uml.profile.externalresource.tests;singleton:=true
+Bundle-Version: 0.10.1.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.profile.externalresource.tests.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.junit,
+ org.eclipse.papyrus.uml.extensionpoints,
+ org.eclipse.emf.ecore
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.uml.profile.externalresource.tests,
+ org.eclipse.papyrus.uml.profile.externalresource.tests.resourceloading
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/build.properties b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/build.properties
new file mode 100644
index 00000000000..f15497ee40c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ resources/,\
+ plugin.xml
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/org.eclipse.papyrus.uml.profile.externalresource.tests.launch b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/org.eclipse.papyrus.uml.profile.externalresource.tests.launch
new file mode 100644
index 00000000000..7c572e9f2e6
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/org.eclipse.papyrus.uml.profile.externalresource.tests.launch
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.papyrus.uml.profile.externalresource.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.uml.profile.externalresource.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -Xms768m -Xmx1200m -XX:PermSize=256M -XX:MaxPermSize=512M -Dorg.eclipse.uml2.uml.util.UMLUtil$StereotypeApplicationHelper.INSTANCE=org.eclipse.papyrus.uml.profile.externalresource.helper.PapyrusStereotypeApplicationHelper"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/plugin.xml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/plugin.xml
new file mode 100644
index 00000000000..1af20507cbc
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/plugin.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/"
+ target="platform:/plugin/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/"/>
+ </extension>
+ <extension point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ iconpath="resources/icons/testProfile.gif"
+ name="ExternalResourcesTestProfile (Test)"
+ path="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml"
+ provider="Eclipse Modeling Project">
+ </profile>
+ </extension>
+
+</plugin> \ No newline at end of file
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.di b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.di
new file mode 100644
index 00000000000..a898e8fd771
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="ExternalResourcesTestProfile.profile.notation#_yZ2kwPLPEeKxdJFsMzlLJA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ExternalResourcesTestProfile.profile.notation#_bpFtQPLQEeKxdJFsMzlLJA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="ExternalResourcesTestProfile.profile.notation#_yZ2kwPLPEeKxdJFsMzlLJA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ExternalResourcesTestProfile.profile.notation#_bpFtQPLQEeKxdJFsMzlLJA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.notation b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.notation
new file mode 100644
index 00000000000..1c08fb5bb8c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.notation
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_yZ2kwPLPEeKxdJFsMzlLJA" type="PapyrusUMLProfileDiagram" name="Main" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BRB0YPLQEeKxdJFsMzlLJA" type="1031" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BRV9cPLQEeKxdJFsMzlLJA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRXyoPLQEeKxdJFsMzlLJA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRYZsPLQEeKxdJFsMzlLJA" key="StereotypeList" value="StandardProfileL2::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRZAwPLQEeKxdJFsMzlLJA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRZAwfLQEeKxdJFsMzlLJA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRZAwvLQEeKxdJFsMzlLJA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BRP20PLQEeKxdJFsMzlLJA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BZNgAPLQEeKxdJFsMzlLJA" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BZNgAfLQEeKxdJFsMzlLJA" showTitle="true"/>
+ <element xmi:type="l2:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BZNgAvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BZU0wPLQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BZVb0PLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BZWC4PLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BZU0wfLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BZU0wvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BRP20fLQEeKxdJFsMzlLJA" x="30" y="30" width="171" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BRdSMPLQEeKxdJFsMzlLJA" type="1031" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BRegUPLQEeKxdJFsMzlLJA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRegUfLQEeKxdJFsMzlLJA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRegUvLQEeKxdJFsMzlLJA" key="StereotypeList" value="StandardProfileL2::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRfHYPLQEeKxdJFsMzlLJA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRfHYfLQEeKxdJFsMzlLJA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BRfHYvLQEeKxdJFsMzlLJA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BRdSMvLQEeKxdJFsMzlLJA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaerUPLQEeKxdJFsMzlLJA" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaerUfLQEeKxdJFsMzlLJA" showTitle="true"/>
+ <element xmi:type="l2:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sk8N0KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaerUvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaerU_LQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BafSYPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BafSYfLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaerVPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaerVfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BRdSM_LQEeKxdJFsMzlLJA" x="260" y="30" width="171" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cm2X0PLQEeKxdJFsMzlLJA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cm2X0vLQEeKxdJFsMzlLJA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cm8ecPLQEeKxdJFsMzlLJA" type="1071">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CnOLQPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CnOyUPLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_RvgZAPLQEeKxdJFsMzlLJA" type="3002">
+ <element xmi:type="uml:Property" href="ExternalResourcesTestProfile.profile.uml#_RuBLQPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RvgZAfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cm8ecfLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cm8ecvLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cm8ec_LQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cm8edPLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cm9FgPLQEeKxdJFsMzlLJA" visible="false" type="1019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CnScsPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CnScsfLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cm9FgfLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cm9FgvLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cm9Fg_LQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cm9FhPLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CntTcPLQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Cnt6gPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Cnt6gfLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CntTcfLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CntTcvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="ExternalResourcesTestProfile.profile.uml#_CmLCYPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cm2X0fLQEeKxdJFsMzlLJA" x="30" y="230" width="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FvT9kPLQEeKxdJFsMzlLJA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FvUkoPLQEeKxdJFsMzlLJA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FvUkofLQEeKxdJFsMzlLJA" type="1071">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FvVLsPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FvVywPLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FvUkovLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FvUko_LQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FvUkpPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FvUkpfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FvUkpvLQEeKxdJFsMzlLJA" visible="false" type="1019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FvVywfLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FvVywvLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FvUkp_LQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FvUkqPLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FvUkqfLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FvUkqvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Fvgx4PLQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fvgx4_LQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fvgx5PLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Fvgx4fLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fvgx4vLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="ExternalResourcesTestProfile.profile.uml#_Fu-mYPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FvT9kfLQEeKxdJFsMzlLJA" x="260" y="230" width="171"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_yZ2kwfLPEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Profile" href="ExternalResourcesTestProfile.profile.uml#_yW4wUPLPEeKxdJFsMzlLJA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_OjUJ0PLQEeKxdJFsMzlLJA" type="1013" source="_Cm2X0PLQEeKxdJFsMzlLJA" target="_BRB0YPLQEeKxdJFsMzlLJA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_OjUJ0fLQEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Extension" href="ExternalResourcesTestProfile.profile.uml#_Oi-LkPLQEeKxdJFsMzlLJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OjUJ0vLQEeKxdJFsMzlLJA" points="[-5, -8, -5, 150]$[-5, -108, -5, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OkJQQPLQEeKxdJFsMzlLJA" id="(0.49645390070921985,0.08)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_PnT9cPLQEeKxdJFsMzlLJA" type="1013" source="_FvT9kPLQEeKxdJFsMzlLJA" target="_BRdSMPLQEeKxdJFsMzlLJA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_PnT9cfLQEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Extension" href="ExternalResourcesTestProfile.profile.uml#_PnHJIPLQEeKxdJFsMzlLJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PnT9cvLQEeKxdJFsMzlLJA" points="[-2, -10, 1, 150]$[-73, -151, -70, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PnZdAPLQEeKxdJFsMzlLJA" id="(0.5177304964539007,0.1)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_bpFtQPLQEeKxdJFsMzlLJA" type="PapyrusUMLProfileDiagram" name="SubProfile" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_gqIlQPLQEeKxdJFsMzlLJA" type="1031" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gqjcAPLQEeKxdJFsMzlLJA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqjcAfLQEeKxdJFsMzlLJA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqjcAvLQEeKxdJFsMzlLJA" key="StereotypeList" value="StandardProfileL2::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqjcA_LQEeKxdJFsMzlLJA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqjcBPLQEeKxdJFsMzlLJA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqjcBfLQEeKxdJFsMzlLJA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gqIlQvLQEeKxdJFsMzlLJA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gqfxoPLQEeKxdJFsMzlLJA" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gqfxofLQEeKxdJFsMzlLJA" showTitle="true"/>
+ <element xmi:type="l2:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_SjhRgKtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gqfxovLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gqgYsPLQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gqg_wPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gqg_wfLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gqgYsfLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gqgYsvLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gqIlQfLQEeKxdJFsMzlLJA" x="95" y="25" width="246" height="98"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hGOEUPLQEeKxdJFsMzlLJA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hGOrYPLQEeKxdJFsMzlLJA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hGOrYfLQEeKxdJFsMzlLJA" type="1071">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hGOra_LQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hGOrbPLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_qy_EkPLQEeKxdJFsMzlLJA" type="3002">
+ <element xmi:type="uml:Property" href="ExternalResourcesTestProfile.profile.uml#_qy0sgPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qy_EkfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tTggkPLQEeKxdJFsMzlLJA" type="3002">
+ <element xmi:type="uml:Property" href="ExternalResourcesTestProfile.profile.uml#_tTVhcPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tTggkfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hGOrYvLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hGOrY_LQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hGOrZPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hGOrZfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hGOrZvLQEeKxdJFsMzlLJA" visible="false" type="1019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hGPScPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hGPScfLQEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hGOrZ_LQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hGOraPLQEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hGOrafLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hGOravLQEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hGYcYPLQEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hGZqgPLQEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hGZqgfLQEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hGZDcPLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hGZDcfLQEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="ExternalResourcesTestProfile.profile.uml#_D86y4PLQEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hGOEUfLQEeKxdJFsMzlLJA" x="93" y="243" width="246" height="98"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_bpFtQfLQEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Profile" href="ExternalResourcesTestProfile.profile.uml#_8HJwgPLPEeKxdJFsMzlLJA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_hGgYMPLQEeKxdJFsMzlLJA" type="1013" source="_hGOEUPLQEeKxdJFsMzlLJA" target="_gqIlQPLQEeKxdJFsMzlLJA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_hGgYMfLQEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Extension" href="ExternalResourcesTestProfile.profile.uml#_PJRWkPLQEeKxdJFsMzlLJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hGgYMvLQEeKxdJFsMzlLJA" points="[0, 0, -196, -157]$[164, 132, -32, -25]"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.uml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.uml
new file mode 100644
index 00000000000..82254c7c111
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/ExternalResourcesTestProfile.profile.uml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_yW4wUPLPEeKxdJFsMzlLJA" name="ExternalResourcesTestProfile" metaclassReference="_BQMG4PLQEeKxdJFsMzlLJA _BQu5cPLQEeKxdJFsMzlLJA" metamodelReference="_yW5XYPLPEeKxdJFsMzlLJA">
+ <eAnnotations xmi:id="_7pf1EPLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_aPl0oPLZEeKxdJFsMzlLJA" name="ExternalResourcesTestProfile" nsURI="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1" nsPrefix="ExternalResourcesTestProfile">
+ <eAnnotations xmi:id="_aPl0ofLZEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_8HJwgPLPEeKxdJFsMzlLJA"/>
+ <eAnnotations xmi:id="_aP7L0PLZEeKxdJFsMzlLJA" source="PapyrusVersion">
+ <details xmi:id="_aP7L0fLZEeKxdJFsMzlLJA" key="Version" value="0.0.2"/>
+ <details xmi:id="_aP7L0vLZEeKxdJFsMzlLJA" key="Comment" value="update default values for existing properties"/>
+ <details xmi:id="_aP7L0_LZEeKxdJFsMzlLJA" key="Copyright" value=""/>
+ <details xmi:id="_aP7L1PLZEeKxdJFsMzlLJA" key="Date" value="2013-07-22"/>
+ <details xmi:id="_aP7L1fLZEeKxdJFsMzlLJA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aPl0ovLZEeKxdJFsMzlLJA" name="ClassStereotype">
+ <eAnnotations xmi:id="_aPl0o_LZEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CmLCYPLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aPl0pPLZEeKxdJFsMzlLJA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aPl0pvLZEeKxdJFsMzlLJA" name="stringValue" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aPl0qPLZEeKxdJFsMzlLJA" name="PackageStereotype">
+ <eAnnotations xmi:id="_aPl0qfLZEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Fu-mYPLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aPl0qvLZEeKxdJFsMzlLJA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_7pnw4PLYEeKxdJFsMzlLJA" name="ExternalResourcesTestProfile" nsURI="http:///schemas/ExternalResourcesTestProfile/_7pa8kPLYEeKxdJFsMzlLJA/0" nsPrefix="ExternalResourcesTestProfile">
+ <eAnnotations xmi:id="_7pnw4fLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_8HJwgPLPEeKxdJFsMzlLJA"/>
+ <eAnnotations xmi:id="_7qR4MPLYEeKxdJFsMzlLJA" source="PapyrusVersion">
+ <details xmi:id="_7qR4MfLYEeKxdJFsMzlLJA" key="Version" value="0.0.1"/>
+ <details xmi:id="_7qR4MvLYEeKxdJFsMzlLJA" key="Comment" value="First version of this test profile"/>
+ <details xmi:id="_7qR4M_LYEeKxdJFsMzlLJA" key="Copyright" value=""/>
+ <details xmi:id="_7qR4NPLYEeKxdJFsMzlLJA" key="Date" value="2013-07-22"/>
+ <details xmi:id="_7qR4NfLYEeKxdJFsMzlLJA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7pnw4vLYEeKxdJFsMzlLJA" name="ClassStereotype">
+ <eAnnotations xmi:id="_7pnw4_LYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CmLCYPLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7pnw5PLYEeKxdJFsMzlLJA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7pnw5vLYEeKxdJFsMzlLJA" name="stringValue" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7pnw6PLYEeKxdJFsMzlLJA" name="PackageStereotype">
+ <eAnnotations xmi:id="_7pnw6fLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Fu-mYPLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7pnw6vLYEeKxdJFsMzlLJA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_BQMG4PLQEeKxdJFsMzlLJA" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_BQu5cPLQEeKxdJFsMzlLJA" alias="Package">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </elementImport>
+ <packageImport xmi:id="_yW5XYPLPEeKxdJFsMzlLJA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_yW5XYfLPEeKxdJFsMzlLJA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_8HJwgPLPEeKxdJFsMzlLJA" name="SubProfile">
+ <eAnnotations xmi:id="_7pspYfLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_aPpfAfLZEeKxdJFsMzlLJA" name="SubProfile" nsURI="http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1" nsPrefix="SubProfile">
+ <eAnnotations xmi:id="_aQIAIPLZEeKxdJFsMzlLJA" source="PapyrusVersion">
+ <details xmi:id="_aQIAIfLZEeKxdJFsMzlLJA" key="Version" value="0.0.2"/>
+ <details xmi:id="_aQIAIvLZEeKxdJFsMzlLJA" key="Comment" value="update default values for existing properties"/>
+ <details xmi:id="_aQIAI_LZEeKxdJFsMzlLJA" key="Copyright" value=""/>
+ <details xmi:id="_aQIAJPLZEeKxdJFsMzlLJA" key="Date" value="2013-07-22"/>
+ <details xmi:id="_aQIAJfLZEeKxdJFsMzlLJA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aPpfAvLZEeKxdJFsMzlLJA" name="ElementStereotype">
+ <eAnnotations xmi:id="_aPpfA_LZEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_D86y4PLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aPpfBPLZEeKxdJFsMzlLJA" name="base_Element" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aPpfBvLZEeKxdJFsMzlLJA" name="stringSimple" ordered="false" lowerBound="1" defaultValueLiteral="defaultValue">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aPpfCPLZEeKxdJFsMzlLJA" name="intSimple" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="0">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_7pz-IPLYEeKxdJFsMzlLJA" name="SubProfile" nsURI="http://ExternalResourcesTestProfile/schemas/SubProfile/_7pspYPLYEeKxdJFsMzlLJA/0" nsPrefix="SubProfile">
+ <eAnnotations xmi:id="_7qdeYPLYEeKxdJFsMzlLJA" source="PapyrusVersion">
+ <details xmi:id="_7qdeYfLYEeKxdJFsMzlLJA" key="Version" value="0.0.1"/>
+ <details xmi:id="_7qdeYvLYEeKxdJFsMzlLJA" key="Comment" value="First version of this test profile"/>
+ <details xmi:id="_7qdeY_LYEeKxdJFsMzlLJA" key="Copyright" value=""/>
+ <details xmi:id="_7qdeZPLYEeKxdJFsMzlLJA" key="Date" value="2013-07-22"/>
+ <details xmi:id="_7qdeZfLYEeKxdJFsMzlLJA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7pz-IfLYEeKxdJFsMzlLJA" name="ElementStereotype">
+ <eAnnotations xmi:id="_7pz-IvLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_D86y4PLQEeKxdJFsMzlLJA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7pz-I_LYEeKxdJFsMzlLJA" name="base_Element" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7pz-JfLYEeKxdJFsMzlLJA" name="stringSimple" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7pz-J_LYEeKxdJFsMzlLJA" name="intSimple" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_BQg3APLQEeKxdJFsMzlLJA" alias="Element">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_D86y4PLQEeKxdJFsMzlLJA" name="ElementStereotype">
+ <ownedAttribute xmi:id="_PJJawPLQEeKxdJFsMzlLJA" name="base_Element" association="_PJRWkPLQEeKxdJFsMzlLJA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_qy0sgPLQEeKxdJFsMzlLJA" name="stringSimple" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03cwPLQEeKxdJFsMzlLJA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s1E4IPLQEeKxdJFsMzlLJA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_s1l1gPLQEeKxdJFsMzlLJA" name="defaultValueStringSimple" value="defaultValue"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_tTVhcPLQEeKxdJFsMzlLJA" name="intSimple" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_unGPYPLQEeKxdJFsMzlLJA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_unTDsPLQEeKxdJFsMzlLJA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_NukkEPLZEeKxdJFsMzlLJA" name="defaultIntegerValue"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_PJRWkPLQEeKxdJFsMzlLJA" name="E_ElementStereotype_Element1" memberEnd="_PJRWkfLQEeKxdJFsMzlLJA _PJJawPLQEeKxdJFsMzlLJA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PJRWkfLQEeKxdJFsMzlLJA" name="extension_ElementStereotype" type="_D86y4PLQEeKxdJFsMzlLJA" aggregation="composite" association="_PJRWkPLQEeKxdJFsMzlLJA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_CmLCYPLQEeKxdJFsMzlLJA" name="ClassStereotype">
+ <ownedAttribute xmi:id="_Oi3d4PLQEeKxdJFsMzlLJA" name="base_Class" association="_Oi-LkPLQEeKxdJFsMzlLJA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_RuBLQPLQEeKxdJFsMzlLJA" name="stringValue" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UqimwPLQEeKxdJFsMzlLJA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Uqx3UPLQEeKxdJFsMzlLJA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Urg3IPLQEeKxdJFsMzlLJA" name="stringValueDefautValue" value="default"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Fu-mYPLQEeKxdJFsMzlLJA" name="PackageStereotype">
+ <ownedAttribute xmi:id="_PnBpkPLQEeKxdJFsMzlLJA" name="base_Package" association="_PnHJIPLQEeKxdJFsMzlLJA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Oi-LkPLQEeKxdJFsMzlLJA" name="E_ClassStereotype_Class1" memberEnd="_Oi-yoPLQEeKxdJFsMzlLJA _Oi3d4PLQEeKxdJFsMzlLJA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Oi-yoPLQEeKxdJFsMzlLJA" name="extension_ClassStereotype" type="_CmLCYPLQEeKxdJFsMzlLJA" aggregation="composite" association="_Oi-LkPLQEeKxdJFsMzlLJA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_PnHJIPLQEeKxdJFsMzlLJA" name="E_PackageStereotype_Package1" memberEnd="_PnHJIfLQEeKxdJFsMzlLJA _PnBpkPLQEeKxdJFsMzlLJA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PnHJIfLQEeKxdJFsMzlLJA" name="extension_PackageStereotype" type="_Fu-mYPLQEeKxdJFsMzlLJA" aggregation="composite" association="_PnHJIPLQEeKxdJFsMzlLJA"/>
+ </packagedElement>
+</uml:Profile>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.ExternalResourcesTestProfileProfile b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.ExternalResourcesTestProfileProfile
new file mode 100644
index 00000000000..f61655dbe97
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.ExternalResourcesTestProfileProfile
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ExternalResourcesTestProfile="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1" xmlns:SubProfile="http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1 pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1 pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA">
+ <ExternalResourcesTestProfile:ClassStereotype xmi:id="_QmeWQPuVEeKClrtZiAiidQ">
+ <base_Class xmi:type="uml:Class" href="oneProfileApplied.uml#_6e1LAPVEEeKWG-T5DC87Xw"/>
+ </ExternalResourcesTestProfile:ClassStereotype>
+ <SubProfile:ElementStereotype xmi:id="_XPG3IPuVEeKClrtZiAiidQ">
+ <base_Element xmi:type="uml:Class" href="oneProfileApplied.uml#_kyl8EPXIEeKjvqrMhLLWTg"/>
+ </SubProfile:ElementStereotype>
+</xmi:XMI>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.di b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.di
new file mode 100644
index 00000000000..94f0ac19f7f
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="oneProfileApplied.notation#_LLO-QPVCEeKaxaN6QZe_iw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="oneProfileApplied.notation#_LLO-QPVCEeKaxaN6QZe_iw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.notation b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.notation
new file mode 100644
index 00000000000..aa1c4f793d3
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.notation
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_LLO-QPVCEeKaxaN6QZe_iw" type="PapyrusUMLClassDiagram" name="Main" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_6g19MPVEEeKWG-T5DC87Xw" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bIBcPVEEeKWG-T5DC87Xw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmngMPuVEeKClrtZiAiidQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmngMfuVEeKClrtZiAiidQ" key="StereotypeList" value="ExternalResourcesTestProfile::ClassStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmngMvuVEeKClrtZiAiidQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmngM_uVEeKClrtZiAiidQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmngNPuVEeKClrtZiAiidQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6g61sPVEEeKWG-T5DC87Xw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HIPVEEeKWG-T5DC87Xw" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hqckPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hqckfVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HIfVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HIvVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HI_VEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HJPVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HJfVEEeKWG-T5DC87Xw" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hrqsPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hrqsfVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HJvVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HJ_VEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HKPVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HKfVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HKvVEEeKWG-T5DC87Xw" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hsRwPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hs40PVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HK_VEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HLPVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HLfVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HLvVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6mWvUPVEEeKWG-T5DC87Xw" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6mX9cPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6mX9cfVEEeKWG-T5DC87Xw" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6mWvUfVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6mWvUvVEEeKWG-T5DC87Xw"/>
+ </children>
+ <element xmi:type="uml:Class" href="oneProfileApplied.uml#_6e1LAPVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g19MfVEEeKWG-T5DC87Xw" x="40" y="25" width="321" height="331"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k19ZIPXIEeKjvqrMhLLWTg" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_my94YPXIEeKjvqrMhLLWTg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XPLvoPuVEeKClrtZiAiidQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XPLvofuVEeKClrtZiAiidQ" key="StereotypeList" value="ExternalResourcesTestProfile::SubProfile::ElementStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XPLvovuVEeKClrtZiAiidQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XPLvo_uVEeKClrtZiAiidQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XPLvpPuVEeKClrtZiAiidQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k1_OUPXIEeKjvqrMhLLWTg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1YPXIEeKjvqrMhLLWTg" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2AccPXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2AccfXIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1YfXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1YvXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1Y_XIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1ZPXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1ZfXIEeKjvqrMhLLWTg" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2AccvXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2Acc_XIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1ZvXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1Z_XIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1aPXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1afXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1avXIEeKjvqrMhLLWTg" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2BDgPXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2BDgfXIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1a_XIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1bPXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1bfXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1bvXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k2MpsPXIEeKjvqrMhLLWTg" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2Mps_XIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2MptPXIEeKjvqrMhLLWTg" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k2MpsfXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k2MpsvXIEeKjvqrMhLLWTg"/>
+ </children>
+ <element xmi:type="uml:Class" href="oneProfileApplied.uml#_kyl8EPXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k19ZIfXIEeKjvqrMhLLWTg" x="575" y="30" width="336" height="331"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_LLO-QfVCEeKaxaN6QZe_iw"/>
+ <element xmi:type="uml:Model" href="oneProfileApplied.uml#_LK5nEPVCEeKaxaN6QZe_iw"/>
+</notation:Diagram>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.uml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.uml
new file mode 100644
index 00000000000..697bc938578
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourcePerProfile/oneProfileApplied.uml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_LK5nEPVCEeKaxaN6QZe_iw" name="Model">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zB4P8PuUEeKClrtZiAiidQ" source="http://www.eclipse.org/papyrus/uml/profile/externalresource">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zB4P8fuUEeKClrtZiAiidQ" key="locationStrategy" value="ResourcePerProfileStrategy"/>
+ </eAnnotations>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_LK5nEfVCEeKaxaN6QZe_iw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6e1LAPVEEeKWG-T5DC87Xw" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kyl8EPXIEeKjvqrMhLLWTg" name="Class2"/>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_5JIjYPVEEeKWG-T5DC87Xw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5JehoPVEEeKWG-T5DC87Xw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_yW4wUPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_5JmdcPVEEeKWG-T5DC87Xw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5J1G8PVEEeKWG-T5DC87Xw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_8HJwgPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+</uml:Model>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.di b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.di
new file mode 100644
index 00000000000..94f0ac19f7f
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="oneProfileApplied.notation#_LLO-QPVCEeKaxaN6QZe_iw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="oneProfileApplied.notation#_LLO-QPVCEeKaxaN6QZe_iw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.notation b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.notation
new file mode 100644
index 00000000000..67884c42ae1
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.notation
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_LLO-QPVCEeKaxaN6QZe_iw" type="PapyrusUMLClassDiagram" name="Main" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_6g19MPVEEeKWG-T5DC87Xw" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bIBcPVEEeKWG-T5DC87Xw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyPhgPksEeK1io5hEcSdZA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyQIkPksEeK1io5hEcSdZA" key="StereotypeList" value="ExternalResourcesTestProfile::ClassStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyQIkfksEeK1io5hEcSdZA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyQIkvksEeK1io5hEcSdZA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyQIk_ksEeK1io5hEcSdZA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6g61sPVEEeKWG-T5DC87Xw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HIPVEEeKWG-T5DC87Xw" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hqckPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hqckfVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HIfVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HIvVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HI_VEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HJPVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HJfVEEeKWG-T5DC87Xw" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hrqsPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hrqsfVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HJvVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HJ_VEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HKPVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HKfVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6g_HKvVEEeKWG-T5DC87Xw" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hsRwPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hs40PVEEeKWG-T5DC87Xw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6g_HK_VEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6g_HLPVEEeKWG-T5DC87Xw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6g_HLfVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g_HLvVEEeKWG-T5DC87Xw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6mWvUPVEEeKWG-T5DC87Xw" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6mX9cPVEEeKWG-T5DC87Xw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6mX9cfVEEeKWG-T5DC87Xw" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6mWvUfVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6mWvUvVEEeKWG-T5DC87Xw"/>
+ </children>
+ <element xmi:type="uml:Class" href="oneProfileApplied.uml#_6e1LAPVEEeKWG-T5DC87Xw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6g19MfVEEeKWG-T5DC87Xw" x="280" y="185" width="321" height="331"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k19ZIPXIEeKjvqrMhLLWTg" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_my94YPXIEeKjvqrMhLLWTg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlsXsPksEeK1io5hEcSdZA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qls-wPksEeK1io5hEcSdZA" key="StereotypeList" value="ExternalResourcesTestProfile::SubProfile::ElementStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qls-wfksEeK1io5hEcSdZA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qltl0PksEeK1io5hEcSdZA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qltl0fksEeK1io5hEcSdZA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k1_OUPXIEeKjvqrMhLLWTg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1YPXIEeKjvqrMhLLWTg" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2AccPXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2AccfXIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1YfXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1YvXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1Y_XIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1ZPXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1ZfXIEeKjvqrMhLLWTg" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2AccvXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2Acc_XIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1ZvXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1Z_XIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1aPXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1afXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1_1avXIEeKjvqrMhLLWTg" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2BDgPXIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2BDgfXIEeKjvqrMhLLWTg" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1_1a_XIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1_1bPXIEeKjvqrMhLLWTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1_1bfXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1_1bvXIEeKjvqrMhLLWTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k2MpsPXIEeKjvqrMhLLWTg" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k2Mps_XIEeKjvqrMhLLWTg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2MptPXIEeKjvqrMhLLWTg" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k2MpsfXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k2MpsvXIEeKjvqrMhLLWTg"/>
+ </children>
+ <element xmi:type="uml:Class" href="oneProfileApplied.uml#_kyl8EPXIEeKjvqrMhLLWTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k19ZIfXIEeKjvqrMhLLWTg" x="725" y="180" width="336" height="331"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_LLO-QfVCEeKaxaN6QZe_iw"/>
+ <element xmi:type="uml:Model" href="oneProfileApplied.uml#_LK5nEPVCEeKaxaN6QZe_iw"/>
+</notation:Diagram>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.profiles b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.profiles
new file mode 100644
index 00000000000..8e465a27624
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.profiles
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ExternalResourcesTestProfile="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1" xmlns:SubProfile="http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1 pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1 pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA">
+ <ExternalResourcesTestProfile:ClassStereotype stringValue="class1Value&#xD;&#xA;">
+ <base_Class xmi:type="uml:Class" href="oneProfileApplied.uml#_6e1LAPVEEeKWG-T5DC87Xw"/>
+ </ExternalResourcesTestProfile:ClassStereotype>
+ <SubProfile:ElementStereotype stringSimple="Class2Value" intSimple="3">
+ <base_Element xmi:type="uml:Class" href="oneProfileApplied.uml#_kyl8EPXIEeKjvqrMhLLWTg"/>
+ </SubProfile:ElementStereotype>
+</xmi:XMI>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.uml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.uml
new file mode 100644
index 00000000000..38a4dd005eb
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/OneResourceforAllProfiles/oneProfileApplied.uml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_LK5nEPVCEeKaxaN6QZe_iw" name="Model">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytmUkP2uEeKClrtZiAiidQ" source="http://www.eclipse.org/papyrus/uml/profile/externalresource">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytmUkf2uEeKClrtZiAiidQ" key="locationStrategy" value="OneResourceOnlyStrategy"/>
+ </eAnnotations>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_LK5nEfVCEeKaxaN6QZe_iw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6e1LAPVEEeKWG-T5DC87Xw" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kyl8EPXIEeKjvqrMhLLWTg" name="Class2"/>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_5JIjYPVEEeKWG-T5DC87Xw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5JehoPVEEeKWG-T5DC87Xw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_yW4wUPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_5JmdcPVEEeKWG-T5DC87Xw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5J1G8PVEEeKWG-T5DC87Xw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://EXTERNAL_RESOURCE_TEST_PATHMAP/ExternalResourcesTestProfile.profile.uml#_8HJwgPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+</uml:Model>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.ExternalResourcesTestProfileProfile b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.ExternalResourcesTestProfileProfile
new file mode 100644
index 00000000000..07ce2c43014
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.ExternalResourcesTestProfileProfile
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701"/>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.SysMLProfile b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.SysMLProfile
new file mode 100644
index 00000000000..4737d17bfb9
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.SysMLProfile
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Blocks:Block xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Blocks="http://www.eclipse.org/papyrus/0.7.0/SysML/Blocks" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/0.7.0/SysML/Blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks" xmi:id="_UuaJwPqJEeKrCKXbcChcTw">
+ <base_Class xmi:type="uml:Class" href="SimpleTestModel.uml#_kdOGQPLZEeKxdJFsMzlLJA"/>
+</Blocks:Block>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.di b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.di
new file mode 100644
index 00000000000..f8aefec2d0d
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="SimpleTestModel.notation#_YTWm4PLYEeKxdJFsMzlLJA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="SimpleTestModel.notation#_YTWm4PLYEeKxdJFsMzlLJA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.notation b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.notation
new file mode 100644
index 00000000000..68b202b2187
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.notation
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_YTWm4PLYEeKxdJFsMzlLJA" type="PapyrusUMLClassDiagram" name="Main" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_djz-cPLZEeKxdJFsMzlLJA" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eth_kPLZEeKxdJFsMzlLJA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NaiigPnkEeK6o8XJ3nuIOQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NaiigfnkEeK6o8XJ3nuIOQ" key="StereotypeList" value="ExternalResourcesTestProfile::ClassStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NaiigvnkEeK6o8XJ3nuIOQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Naiig_nkEeK6o8XJ3nuIOQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NajJkPnkEeK6o8XJ3nuIOQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_djz-cvLZEeKxdJFsMzlLJA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_djz-c_LZEeKxdJFsMzlLJA" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dj9IYPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dj9IYfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_djz-dPLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_djz-dfLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_djz-dvLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_djz-d_LZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dj0lgPLZEeKxdJFsMzlLJA" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dj-9kPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dj-9kfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dj0lgfLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dj0lgvLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dj0lg_LZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dj0lhPLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dj0lhfLZEeKxdJFsMzlLJA" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkALsPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkALsfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dj0lhvLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dj0lh_LZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dj0liPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dj0lifLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dkt9YPLZEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkt9Y_LZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkt9ZPLZEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dkt9YfLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkt9YvLZEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="SimpleTestModel.uml#_djpmYPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_djz-cfLZEeKxdJFsMzlLJA" x="55" y="35" width="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fQ5LUPLZEeKxdJFsMzlLJA" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gaKggPLZEeKxdJFsMzlLJA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gal-UPLZEeKxdJFsMzlLJA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gal-UfLZEeKxdJFsMzlLJA" key="StereotypeList" value="ExternalResourcesTestProfile::SubProfile::ElementStereotype,ExternalResourcesTestProfile::ClassStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gal-UvLZEeKxdJFsMzlLJA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gal-U_LZEeKxdJFsMzlLJA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gal-VPLZEeKxdJFsMzlLJA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fQ5LUvLZEeKxdJFsMzlLJA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fQ5yYPLZEeKxdJFsMzlLJA" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fQ5yb_LZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fQ5ycPLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fQ5yYfLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fQ5yYvLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fQ5yY_LZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fQ5yZPLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fQ5yZfLZEeKxdJFsMzlLJA" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fQ6ZcPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fQ6ZcfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fQ5yZvLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fQ5yZ_LZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fQ5yaPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fQ5yafLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fQ5yavLZEeKxdJFsMzlLJA" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fQ6ZcvLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fQ6Zc_LZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fQ5ya_LZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fQ5ybPLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fQ5ybfLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fQ5ybvLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fRHNwPLZEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fRHNw_LZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fRHNxPLZEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fRHNwfLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fRHNwvLZEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="SimpleTestModel.uml#_fQs-EPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fQ5LUfLZEeKxdJFsMzlLJA" x="55" y="155" width="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kdaTgPLZEeKxdJFsMzlLJA" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wE_goPnqEeK6o8XJ3nuIOQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2w0gPqJEeKrCKXbcChcTw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2w0gfqJEeKrCKXbcChcTw" key="StereotypeList" value="SysML::Blocks::Block"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2w0gvqJEeKrCKXbcChcTw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2w0g_qJEeKrCKXbcChcTw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2w0hPqJEeKrCKXbcChcTw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kda6kPLZEeKxdJFsMzlLJA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kda6kfLZEeKxdJFsMzlLJA" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kdcIsPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kdcIsfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kda6kvLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kda6k_LZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kda6lPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kda6lfLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kda6lvLZEeKxdJFsMzlLJA" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kdcvwPLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kdcvwfLZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kda6l_LZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kda6mPLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kda6mfLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kda6mvLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kdbhoPLZEeKxdJFsMzlLJA" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kdcvwvLZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kdcvw_LZEeKxdJFsMzlLJA" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kdbhofLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kdbhovLZEeKxdJFsMzlLJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kdbho_LZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kdbhpPLZEeKxdJFsMzlLJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kdnu4PLZEeKxdJFsMzlLJA" visible="false" type="compartment_shape_display">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kdnu4_LZEeKxdJFsMzlLJA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kdnu5PLZEeKxdJFsMzlLJA" key="mutable" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kdnu4fLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kdnu4vLZEeKxdJFsMzlLJA"/>
+ </children>
+ <element xmi:type="uml:Class" href="SimpleTestModel.uml#_kdOGQPLZEeKxdJFsMzlLJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kdaTgfLZEeKxdJFsMzlLJA" x="55" y="280" width="266" height="104"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_YTWm4fLYEeKxdJFsMzlLJA"/>
+ <element xmi:type="uml:Model" href="SimpleTestModel.uml#_YTUKoPLYEeKxdJFsMzlLJA"/>
+</notation:Diagram>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.uml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.uml
new file mode 100644
index 00000000000..d85de22b2a8
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/SimpleTestModel.uml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ExternalResourcesTestProfile="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1" xmlns:SubProfile="http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http:///schemas/ExternalResourcesTestProfile/_aPlNkPLZEeKxdJFsMzlLJA/1 ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA http://ExternalResourcesTestProfile/schemas/SubProfile/_aPpfAPLZEeKxdJFsMzlLJA/1 ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA">
+ <uml:Model xmi:id="_YTUKoPLYEeKxdJFsMzlLJA" name="SimpleTestModel">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_YTUKofLYEeKxdJFsMzlLJA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_djpmYPLZEeKxdJFsMzlLJA" name="ClassStereotypeApplied"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fQs-EPLZEeKxdJFsMzlLJA" name="TwoStereotypesApplied"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kdOGQPLZEeKxdJFsMzlLJA" name="NoStereotype"/>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9xv7APLYEeKxdJFsMzlLJA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9yoEwPLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="ExternalResourcesTestProfile.profile.uml#_aPl0oPLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="ExternalResourcesTestProfile.profile.uml#_yW4wUPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9y0SAPLYEeKxdJFsMzlLJA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9zjR0PLYEeKxdJFsMzlLJA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="ExternalResourcesTestProfile.profile.uml#_aPpfAfLZEeKxdJFsMzlLJA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="ExternalResourcesTestProfile.profile.uml#_8HJwgPLPEeKxdJFsMzlLJA"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_kzznYPqGEeKrCKXbcChcTw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k0XBAPqGEeKrCKXbcChcTw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ </uml:Model>
+ <ExternalResourcesTestProfile:ClassStereotype xmi:id="_etI-APLZEeKxdJFsMzlLJA" base_Class="_djpmYPLZEeKxdJFsMzlLJA"/>
+ <SubProfile:ElementStereotype xmi:id="_gZ2-gPLZEeKxdJFsMzlLJA" base_Element="_fQs-EPLZEeKxdJFsMzlLJA"/>
+ <ExternalResourcesTestProfile:ClassStereotype xmi:id="_gaQAEPLZEeKxdJFsMzlLJA" base_Class="_fQs-EPLZEeKxdJFsMzlLJA" stringValue="wantedValue"/>
+</xmi:XMI>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/icons/testProfile.gif b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/icons/testProfile.gif
new file mode 100644
index 00000000000..542dddca3f2
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/resources/icons/testProfile.gif
Binary files differ
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/Activator.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/Activator.java
new file mode 100644
index 00000000000..6e3ffab829f
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/Activator.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.uml.profile.externalresource.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/AllTests.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/AllTests.java
new file mode 100644
index 00000000000..06a4b841610
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.tests;
+
+import org.eclipse.papyrus.uml.profile.externalresource.tests.resourceloading.ResourceLoading;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+
+/**
+ * Main tests suite for this plugin
+ */
+@RunWith(Suite.class)
+@SuiteClasses({
+ ResourceLoading.class
+})
+public class AllTests {
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/resourceloading/ResourceLoading.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/resourceloading/ResourceLoading.java
new file mode 100644
index 00000000000..30a277784e4
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource.tests/src/org/eclipse/papyrus/uml/profile/externalresource/tests/resourceloading/ResourceLoading.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.tests.resourceloading;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+
+/**
+ * Tests on Resource Loading
+ */
+public class ResourceLoading {
+
+ @Test
+ public void test() {
+ fail("Not yet implemented");
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.classpath b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.project b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.project
new file mode 100644
index 00000000000..ac80b81cd93
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.profile.externalresource</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.settings/org.eclipse.jdt.core.prefs b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/META-INF/MANIFEST.MF b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..bda54b83e1d
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: UML2 Profile Management in External Resources (Incubation)
+Bundle-SymbolicName: org.eclipse.papyrus.uml.profile.externalresource;singleton:=true
+Bundle-Version: 0.10.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.profile.externalresource.Activator
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.core.log;bundle-version="0.10.0",
+ org.eclipse.uml2.uml;bundle-version="4.1.0",
+ org.eclipse.papyrus.infra.core;bundle-version="0.10.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="0.10.1",
+ org.eclipse.papyrus.uml.tools;bundle-version="0.10.1",
+ org.eclipse.emf.transaction;bundle-version="1.4.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.uml.profile.externalresource,
+ org.eclipse.papyrus.uml.profile.externalresource.helper
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/about.html b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/about.html
new file mode 100644
index 00000000000..d35d5aed64c
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/build.properties b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/build.properties
new file mode 100644
index 00000000000..4b957fe857b
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ documentation.pdoc,\
+ plugin.xml
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/conception.textile b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/conception.textile
new file mode 100644
index 00000000000..eb6708f2bab
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/conception.textile
@@ -0,0 +1,27 @@
+
+h1. Conception of the external profile application management module
+
+
+h2. Context
+
+Currently, profile applications are serialized within the same file as the model itself. This feature will enable to serialize profile applications within a dedicated file. This feature will be an option that the user may configure within the Papyrus preferences. If one applies several profiles on a model, each profile application is serialized within its own resource. It has to be possible to switch from one configuration to the other, i.e. either to externalize profile applications or to internalize them.
+Control mode shall be taken into consideration here and should continue to work correctly.
+
+Enable external profile application
+The purpose of this task will consist in patching the UML2 component in order this latter can fully support the possibility to apply profiles on UML models by serializing this profile application in a separate file and vice-versa. Papyrus UI has also to be enriched in order to enable the user to configure Papyrus in order to enable or disable this option. The process will be reversible, i.e. profiles would be serializable individually in or out the model resources. In addition, the tool will also support the ability to apply several times the same profile. In case of a profile has been applied several time (values of the stereotype properties would be possibly different in that case), only one profile application is defined as part of the current configuration.
+Control mode extension
+This task will consist in analyzing the impact of the externalization of profile serialization and update its design in order the control mode can still run correctly in that case. The test set of the control mode will also be extended to cover this new use case.
+
+h2. Thoughts
+
+# currently, the profile application themselves are part of the model (this is a real element in the UML metamodel). the stereotype applications are located in the same resource as the model, at the same level as the model itself. The goal of this module is to separate the stereotype applications from the model resource and to put them in one or several external resources.
+# Several strategies are possible to manage profile applications in external resources. Each profile application can be saved in a separated resource, or all profile applications can have their own resource. This would ease the management of view points on the model (loading or not a given profile would be easy, and so specific domain concepts would be present or not. The sub profiles should also be taken into account: do each sub-profile need its own resource, or the resource is managed by the main profile (example of SysML)
+# The naming of the resource: name of the profile should be present. the name of the UML element on which the profile is applied should be used, in order to be able to have several external resources for the same profile in case of control mode. Should the version of the profile be present also ?
+# integration with the control mode: should one/several new resource be created when splitting the model?
+# integration with rename/copy files
+# integration with copy paste: does the current extension of the copy/paste work with this module?
+
+h2. Current external mechanism limitations
+
+UML2 module provides a framework for externalization of the stereotype applications, but this mechanism is rather basic. It relies with a singleton helper, referenced in the java system properties. If the externalization is done, it will be done for all components in the installation relying on UML2 metamodel, not only Papyrus models. Moreover, only one Eclipse component can provide a customization. If another component that Papyrus relies on that extension mechanism, only one will work at the same time.
+
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/documentation.pdoc b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/documentation.pdoc
new file mode 100644
index 00000000000..a971d3ea382
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/documentation.pdoc
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<doc:Documentation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:doc="http://www.eclipse.org/papyrus/documentation/plugin/documentation" description="Plugin to manage profile and stereotype application in external resources">
+ <referent firstName="Remi" lastName="Schnekenburger" eMail="remi.schnekenburger@cea.fr" currentCompany="CEA LIST"/>
+</doc:Documentation>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/plugin.xml b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/plugin.xml
new file mode 100644
index 00000000000..59f092516b4
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.infra.core.model">
+ <model
+ classname="org.eclipse.papyrus.uml.profile.externalresource.model.StereotypeApplicationExternalResourceModel">
+ <dependency>
+ <loadAfter
+ identifier="org.eclipse.papyrus.infra.core.resource.uml.UmlModel">
+ </loadAfter>
+ </dependency>
+ </model>
+ </extension>
+
+</plugin>
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/Activator.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/Activator.java
new file mode 100644
index 00000000000..5875dc1d46a
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/Activator.java
@@ -0,0 +1,55 @@
+package org.eclipse.papyrus.uml.profile.externalresource;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.uml.profile.externalresource"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /** logger helper */
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ log = null;
+ super.stop(context);
+ }
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/AbstractStereotypeApplicationLocationStrategy.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/AbstractStereotypeApplicationLocationStrategy.java
new file mode 100644
index 00000000000..f6521a180a6
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/AbstractStereotypeApplicationLocationStrategy.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * Abstract strategy class for stereotype application location
+ */
+public abstract class AbstractStereotypeApplicationLocationStrategy implements IStereotypeApplicationLocationStrategy {
+
+ /**
+ * @param element
+ * @param definition
+ * @return
+ */
+ protected EList<EObject> getDefaultContainmentList(Element element, EClass definition) {
+ return element.eResource().getContents();
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ExtendedProfileApplicationHelper.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ExtendedProfileApplicationHelper.java
new file mode 100644
index 00000000000..d95aab82d65
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ExtendedProfileApplicationHelper.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil.ProfileApplicationHelper;
+
+
+/**
+ * Extended profile application helper for Papyrus tool.
+ * <P>
+ * When this helper is activated, profiles are located in external resources
+ * </P>
+ */
+public class ExtendedProfileApplicationHelper extends ProfileApplicationHelper {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Iterable<Package> getOtherApplyingPackages(Package package_) {
+ return super.getOtherApplyingPackages(package_);
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/IStereotypeApplicationLocationStrategy.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/IStereotypeApplicationLocationStrategy.java
new file mode 100644
index 00000000000..2f880b9db54
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/IStereotypeApplicationLocationStrategy.java
@@ -0,0 +1,44 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * Interface implemented by all strategies in charge of the management of resources for stereotype applications
+ */
+public interface IStereotypeApplicationLocationStrategy {
+
+ /**
+ * Returns the containment list in which stereotype applications should be read/added.
+ * @param element the stereotyped element
+ * @param definition the definition of the stereotype to apply
+ * @return the containment list for the new stereotype application. if any problem, this will be the default location (direct content of the resource containing the element)
+ */
+ public EList<EObject> getContainmentList(Element element, EClass definition);
+
+ /**
+ * Returns the list of URIs of the resources in which stereotype applications are placed.
+ * @param root element of the model from which all profile applications are found
+ * @return the list of URIS, an empty collection if not URIs are found.
+ */
+ public Set<URI> getProfileApplicationResourceURIs(EObject root);
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/OneResourceOnlyStrategy.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/OneResourceOnlyStrategy.java
new file mode 100644
index 00000000000..1ea97abe14a
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/OneResourceOnlyStrategy.java
@@ -0,0 +1,104 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.ModelUtils;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * Strategy for only one resource for all profile applications
+ */
+public class OneResourceOnlyStrategy extends AbstractStereotypeApplicationLocationStrategy {
+
+ /** identifier of this strategy */
+ public static final String ID = "OneResourceOnlyStrategy"; //$NON-NLS-1$
+
+ /** default extension for the profile URI */
+ public static final String PROFILE_DEFAULT_EXTENSION = "profiles";
+
+ /** singleton instance */
+ private static OneResourceOnlyStrategy instance;
+
+ /**
+ * Returns the singleton instance for this strategy
+ *
+ * @return the singleton instance for this strategy
+ */
+ public static OneResourceOnlyStrategy getInstance() {
+ if(instance == null) {
+ instance = new OneResourceOnlyStrategy();
+ }
+ return instance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public EList<EObject> getContainmentList(Element element, EClass definition) {
+ // 1. only one resource => look if there is a custom name. Otherwise, use a standard name for the resource
+ // compute the URI of the resource
+ Resource baseResource = element.eResource();
+ if(baseResource == null) {
+ return null;
+ }
+ URI newURI = getProfileResourceURI(element, definition);
+ ResourceSet resourceSet = baseResource.getResourceSet();
+ if(resourceSet instanceof ModelSet && newURI != null) {
+ ModelSet modelSet = (ModelSet)resourceSet;
+ Resource resource = ModelUtils.getOrCreateResource(modelSet, true, newURI, UMLResource.UML_CONTENT_TYPE_IDENTIFIER);
+ return resource.getContents();
+ }
+ // by default, return the resource containing the element
+ return getDefaultContainmentList(element, definition);
+ }
+
+ /**
+ * @param element
+ * @param definition
+ * @return
+ */
+ protected URI getProfileResourceURI(Element element, EClass definition) {
+ if(element.eResource() !=null) {
+ URI uri = element.eResource().getURI();
+ if(uri !=null) {
+ return uri.trimFileExtension().appendFileExtension(PROFILE_DEFAULT_EXTENSION);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<URI> getProfileApplicationResourceURIs(EObject root) {
+ URI uri = root.eResource().getURI();
+ if(uri !=null) {
+ return Collections.singleton(uri.trimFileExtension().appendFileExtension(PROFILE_DEFAULT_EXTENSION));
+ }
+ return Collections.emptySet();
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/PapyrusStereotypeApplicationHelper.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/PapyrusStereotypeApplicationHelper.java
new file mode 100644
index 00000000000..f1398a885fe
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/PapyrusStereotypeApplicationHelper.java
@@ -0,0 +1,93 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+
+/**
+ * Specific Stereotype Application Helper for Papyrus tool. If it detects the model is not a model handled by Papyrus, it will delegate to the standard Stereotype application helper.
+ */
+public class PapyrusStereotypeApplicationHelper extends StereotypeApplicationHelper {
+
+ /** Key for the location strategy value */
+ public static final String LOCATION_STRATEGY_KEY = "locationStrategy";
+
+ /** source for the eannotation that is used to store specific URI for stereotype application resource */
+ public static final String PAPYRUS_EXTERNAL_RESOURCE_EANNOTATION_SOURCE = "http://www.eclipse.org/papyrus/uml/profile/externalresource"; //$NON-NLS-1$
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public EObject applyStereotype(Element element, EClass definition) {
+ return super.applyStereotype(element, definition);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean addToContainmentList(Element element, EObject stereotypeApplication) {
+ return super.addToContainmentList(element, stereotypeApplication);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected EList<EObject> getContainmentList(Element element, EClass definition) {
+ // 1. find the current strategy used for the model element
+ // 2. use the strategy to find the resource and the containment list
+ // 3. if no strategy found, return usual strategy ==> stereotype application are directly contained by the resource containing the stereotyped element.
+ IStereotypeApplicationLocationStrategy locationStrategy = getCurrentLocationStrategy(element);
+ if(locationStrategy ==null) {
+ return StandardApplicationLocationStrategy.getInstance().getContainmentList(element, definition);
+ }
+ return locationStrategy.getContainmentList(element, definition);
+ }
+
+ /**
+ * Returns the location strategy to use for the given couple element/definition
+ * @param element the stereotyped element
+ * @param definition the definition of the stereotype to be applied
+ * @return the location strategy or <code>null</code> if none was found
+ */
+ public static IStereotypeApplicationLocationStrategy getCurrentLocationStrategy(EObject element) {
+ EObject container = EcoreUtil.getRootContainer(element, true);
+ if(container instanceof Element) {
+ EAnnotation annotation = ((Element)container).getEAnnotation(PAPYRUS_EXTERNAL_RESOURCE_EANNOTATION_SOURCE);
+ if(annotation == null) {
+ return null;
+ }
+
+ String location = annotation.getDetails().get(LOCATION_STRATEGY_KEY);
+ if(location == null) {
+ return null;
+ }
+
+ IStereotypeApplicationLocationStrategy strategy = StrategyRegistry.getInstance().getStrategy(location);
+ if(strategy != null) {
+ return strategy;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ResourcePerProfileStrategy.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ResourcePerProfileStrategy.java
new file mode 100644
index 00000000000..6fb861b60f7
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/ResourcePerProfileStrategy.java
@@ -0,0 +1,253 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.ModelUtils;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.ProfileApplication;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * Strategy that uses one resource per profile application
+ */
+public class ResourcePerProfileStrategy implements IStereotypeApplicationLocationStrategy {
+
+ /** default resource name */
+ protected static final String DEFAULT_RESOURCE_NAME = "default"; //$NON-NLS-1$
+
+ /** default resource extension */
+ protected static final String DEFAULT_RESOURCE_EXTENSION = "profile"; //$NON-NLS-1$
+
+ /** key for the value of the eannotation that is used to store specific URI for stereotype application resource */
+ public static final String SPECIFIC_URI_EANNOTATION_KEY = "specificURI"; //$NON-NLS-1$
+
+ /** identifier of this strategy */
+ public static final String ID = "ResourcePerProfileStrategy"; //$NON-NLS-1$
+
+ /** singleton instance */
+ private static ResourcePerProfileStrategy instance;
+
+ /**
+ * Returns the singleton instance for this strategy
+ *
+ * @return the singleton instance for this strategy
+ */
+ public static ResourcePerProfileStrategy getInstance() {
+ if(instance == null) {
+ instance = new ResourcePerProfileStrategy();
+ }
+ return instance;
+ }
+
+ /**
+ * Returns the resource where the stereotype application should be added for the given couple element/stereotype
+ *
+ * @param element
+ * the stereotyped element
+ * @param definition
+ * the definition of the stereotype to apply
+ * @return the resource where the stereotype application should be added
+ */
+ public Resource getStereotypeApplicationResource(Element element, EClass definition) {
+ // in this case, the resource is specific to the profile application.
+ // the profile application should give the right path.
+ // 1. retrieve profile application
+ // 2. ask it for the resource name (by default, it should give the name of the profile)
+ // 3. compute the resource name
+ // 4. ask to create on demand ?
+ // 5. return the content of this resource
+ ProfileApplication profileApplication = getProfileApplication(element, definition);
+ Resource baseResource = element.eResource();
+ if(baseResource==null) {
+ return null;
+ }
+ ResourceSet resourceSet = baseResource.getResourceSet();
+ if(resourceSet instanceof ModelSet) {
+ ModelSet modelSet = (ModelSet)resourceSet;
+ URI newURI = getProfileApplicationResourceURI(profileApplication, baseResource);
+ Resource resource = ModelUtils.getOrCreateResource(modelSet, true, newURI, UMLResource.UML_CONTENT_TYPE_IDENTIFIER);
+ return resource;
+ }
+ // by default, return the resource containing the element
+ return element.eResource();
+ }
+
+ /**
+ * Returns the specific URI indicated on the profile application
+ *
+ * @param profileApplication
+ * the profile application that should have stereotype applications in resource with specific URI
+ * @return the specific URI or <code>null</code>
+ */
+ protected URI getSpecificURI(ProfileApplication profileApplication, Resource baseResource) {
+ EAnnotation annotation = profileApplication.getEAnnotation(PapyrusStereotypeApplicationHelper.PAPYRUS_EXTERNAL_RESOURCE_EANNOTATION_SOURCE);
+ if(annotation != null) {
+ String value = annotation.getDetails().get(SPECIFIC_URI_EANNOTATION_KEY);
+ URI newURI = baseResource.getURI();
+ newURI = newURI.trimSegments(1);
+ newURI = newURI.appendSegment(value);
+ return newURI;
+ }
+ return null;
+ }
+
+ /**
+ * Checks if the profile application should use a specific URI for the steroetype application resources
+ *
+ * @param profileApplication
+ * profile application that should have stereotype applications in resource with specific URI
+ * @return <code>true</code> if a specific URI is specified for the profile application
+ */
+ protected boolean hasSpecificURI(ProfileApplication profileApplication) {
+ EAnnotation annotation = profileApplication.getEAnnotation(PapyrusStereotypeApplicationHelper.PAPYRUS_EXTERNAL_RESOURCE_EANNOTATION_SOURCE);
+ return annotation != null;
+ }
+
+ protected String getStereotypeApplicationResourceExtension(ProfileApplication profileApplication, boolean basedOnMainProfile) {
+ // 1. check if nested profiles have the same resource or if each nested profile has its own resource
+ // 2. deduce the name from the profile application
+ // 3. return the string. This will be the extension of the file
+ String resourceExtension = null;
+ if(profileApplication != null) {
+ Profile profile = profileApplication.getAppliedProfile();
+ if(profile != null) {
+ // if based on main profile => retrieve the main profile name.
+ // otherwise, returns the name of the profile
+ if(basedOnMainProfile) {
+ Profile parentProfile = profile;
+ while(parentProfile.getNestingPackage() instanceof Profile) {
+ parentProfile = (Profile)parentProfile.getNestingPackage();
+ }
+ resourceExtension = parentProfile.getName() + "Profile"; // warning, can not return an extension which is linked to another factory than a UML Factory
+ } else {
+ resourceExtension = profile.getName() + "Profile";
+ }
+ }
+ }
+ if(resourceExtension == null) {
+ resourceExtension = DEFAULT_RESOURCE_EXTENSION;
+ }
+ return resourceExtension;
+ }
+
+ protected String getStereotypeApplicationResourceName(ProfileApplication profileApplication, boolean basedOnMainProfile) {
+ // 1. check if nested profiles have the same resource or if each nested profile has its own resource
+ // 2. deduce the name from the profile application.
+ // 3. return the string. This will be the extension of the file
+ String resourceName = null;
+ if(profileApplication != null) {
+ Package applyingPackage = profileApplication.getApplyingPackage();
+ if(applyingPackage != null) {
+ resourceName = applyingPackage.eResource().getURI().trimFileExtension().lastSegment();
+ }
+ }
+ if(resourceName == null) {
+ resourceName = DEFAULT_RESOURCE_NAME;
+ }
+ return resourceName;
+ }
+
+ /**
+ * Returns the profile application for the given element on which the stereotype with specified definition is or will be applied
+ *
+ * @param element
+ * the UML element on which stereotype is applied
+ * @return the profile application or <code>null</code> if none was found.
+ */
+ protected ProfileApplication getProfileApplication(Element element, EClass definition) {
+ Package nearestPackage = element.getNearestPackage();
+ if(nearestPackage == null) {
+ return null;
+ }
+ List<ProfileApplication> profileApplications = nearestPackage.getAllProfileApplications();
+ for(ProfileApplication profileApplication : profileApplications) {
+ EPackage appliedDefinition = profileApplication.getAppliedDefinition();
+ List<EClassifier> classifiers = appliedDefinition.getEClassifiers();
+ if(classifiers != null && !classifiers.isEmpty() && classifiers.contains(definition)) {
+ return profileApplication;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public EList<EObject> getContainmentList(Element element, EClass definition) {
+ Resource stereotypeApplicationResource = getStereotypeApplicationResource(element, definition);
+ if(stereotypeApplicationResource != null) {
+ return stereotypeApplicationResource.getContents();
+ }
+ // fallback: adds stereotype at the root of the UML resource.
+ Resource elementResource = element.eResource();
+ if(elementResource != null) {
+ return elementResource.getContents();
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<URI> getProfileApplicationResourceURIs(EObject root) {
+ Set<URI> uris = new HashSet<URI>();
+ // 1. retrieve all profile applications
+ // 2. retrieve all URI from all this profile applications
+ if(root instanceof Element && root.eResource()!=null) {
+ Package nearestPackage = ((Element)root).getNearestPackage();
+ if(nearestPackage != null) {
+ List<ProfileApplication> profileApplications = nearestPackage.getAllProfileApplications();
+ for(ProfileApplication profileApplication : profileApplications) {
+ URI newURI = getProfileApplicationResourceURI(profileApplication, root.eResource());
+ uris.add(newURI);
+ }
+ }
+ }
+ return uris;
+ }
+
+ protected URI getProfileApplicationResourceURI(ProfileApplication profileApplication, Resource baseResource) {
+ // test if it needs a specific name. Otherwise, it will use a default name
+ URI newURI = null;
+ if(hasSpecificURI(profileApplication)) {
+ newURI = getSpecificURI(profileApplication, baseResource);
+ }
+ if(newURI == null) {
+ URI baseURI = baseResource.getURI();
+ newURI = baseURI.trimSegments(1);
+ String resourceName = getStereotypeApplicationResourceName(profileApplication, true);
+ newURI = newURI.appendSegment(resourceName);
+ String extension = getStereotypeApplicationResourceExtension(profileApplication, true);
+ newURI = newURI.appendFileExtension(extension);
+ }
+ return newURI;
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StandardApplicationLocationStrategy.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StandardApplicationLocationStrategy.java
new file mode 100644
index 00000000000..1d75eaba828
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StandardApplicationLocationStrategy.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * Usual stereotype application strategy
+ */
+public class StandardApplicationLocationStrategy implements IStereotypeApplicationLocationStrategy {
+
+ /** identifier of this strategy */
+ public static final String ID = "standardStrategy"; //$NON-NLS-1$
+
+ /** singleton instance */
+ protected static StandardApplicationLocationStrategy instance;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public EList<EObject> getContainmentList(Element element, EClass definition) {
+ if(element.eResource() !=null) {
+ return element.eResource().getContents();
+ }
+ return null;
+ }
+
+ /**
+ * @return
+ */
+ public static StandardApplicationLocationStrategy getInstance() {
+ if(instance ==null) {
+ instance = new StandardApplicationLocationStrategy();
+ }
+ return instance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<URI> getProfileApplicationResourceURIs(EObject root) {
+ return Collections.emptySet();
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StrategyRegistry.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StrategyRegistry.java
new file mode 100644
index 00000000000..07af6bfd0b7
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/helper/StrategyRegistry.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.helper;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * Registry for all {@link IStereotypeApplicationLocationStrategy}.
+ */
+public class StrategyRegistry {
+
+ /** singleton instance */
+ private static StrategyRegistry instance;
+
+ /** map identifier - strategies */
+ private Map<String, IStereotypeApplicationLocationStrategy> registry;
+
+ /**
+ * Returns the singleton instance for this strategy
+ *
+ * @return the singleton instance for this strategy
+ */
+ public static StrategyRegistry getInstance() {
+ if(instance == null) {
+ instance = new StrategyRegistry();
+ instance.init();
+ }
+ return instance;
+ }
+
+ /**
+ * Initialize the strategy registry, reading extension points.
+ */
+ protected void init() {
+ // TODO: read extension points.
+ registry = new HashMap<String, IStereotypeApplicationLocationStrategy>();
+ registry.put(StandardApplicationLocationStrategy.ID, StandardApplicationLocationStrategy.getInstance());
+ registry.put(OneResourceOnlyStrategy.ID, OneResourceOnlyStrategy.getInstance());
+ registry.put(ResourcePerProfileStrategy.ID, ResourcePerProfileStrategy.getInstance());
+ }
+
+ /**
+ * Returns the strategy for the given identifier
+ * @param identifier identifier of the strategy
+ * @return the strategy found or <code>null</code> if none was found
+ */
+ public IStereotypeApplicationLocationStrategy getStrategy(String identifier) {
+ return registry.get(identifier);
+ }
+}
diff --git a/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/model/StereotypeApplicationExternalResourceModel.java b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/model/StereotypeApplicationExternalResourceModel.java
new file mode 100644
index 00000000000..60a2f0b5ecb
--- /dev/null
+++ b/sandbox/ExternalResourceStereotypeApplication/org.eclipse.papyrus.uml.profile.externalresource/src/org/eclipse/papyrus/uml/profile/externalresource/model/StereotypeApplicationExternalResourceModel.java
@@ -0,0 +1,238 @@
+/*****************************************************************************
+ * Copyright (c) 2013 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.profile.externalresource.model;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+import org.eclipse.papyrus.infra.core.resource.AbstractBaseModel;
+import org.eclipse.papyrus.infra.core.resource.AbstractModel;
+import org.eclipse.papyrus.infra.core.resource.IModel;
+import org.eclipse.papyrus.infra.core.resource.IModelSnippet;
+import org.eclipse.papyrus.infra.core.resource.ModelUtils;
+import org.eclipse.papyrus.infra.core.resource.NotFoundException;
+import org.eclipse.papyrus.uml.profile.externalresource.Activator;
+import org.eclipse.papyrus.uml.profile.externalresource.helper.IStereotypeApplicationLocationStrategy;
+import org.eclipse.papyrus.uml.profile.externalresource.helper.PapyrusStereotypeApplicationHelper;
+import org.eclipse.papyrus.uml.tools.model.UmlModel;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * Model to manage stereotype applications in external resources.
+ */
+public class StereotypeApplicationExternalResourceModel extends AbstractModel implements IModel {
+
+ /** identifier of this IModel */
+ public static final String ID = "ExternalStereotypeApplicationModel";
+
+ /** list of resources for stereotype applications */
+ List<Resource> profileApplicationResources = new ArrayList<Resource>();
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getIdentifier() {
+ return ID;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void createModel(IPath fullPath) {
+ throw new UnsupportedOperationException("CreateModel_IPath is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void createModel(URI uri) {
+ throw new UnsupportedOperationException("CreateModel_URI is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void loadModel(IPath path) {
+ loadModel(getPlatformURI(path));
+ }
+
+ /**
+ * Returns a platform resource URI of the given path
+ *
+ * @param path
+ * the path
+ * @return the uri
+ */
+ protected URI getPlatformURI(IPath path) {
+ return URI.createPlatformResourceURI(path.toString(), true);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void loadModel(URI uri) {
+ List<Resource> resources = getResources(true);
+ for(Resource resource : resources) {
+ try {
+ if(!resource.isLoaded()) {
+ resource.load(null);
+ }
+ configureResource(resource);
+ profileApplicationResources.add(resource);
+ } catch (IOException e) {
+ Activator.log.error(e);
+ }
+ }
+ // call registered snippets
+ snippets.performStart(this);
+ }
+
+ /**
+ * Returns the dynamically computed list of resources in which stereotype applications should be located
+ *
+ * @return the list of resources in which stereotype applications should be located
+ */
+ protected List<Resource> getResources(boolean loadOnDemand) {
+ List<Resource> resources = new ArrayList<Resource>();
+ // get all profile applications resource to load from the strategy. do not care of the URI ?
+ UmlModel umlModel = (UmlModel)modelSet.getModel(UmlModel.MODEL_ID);
+ try {
+ if(umlModel != null && umlModel.lookupRoot() != null) {
+ EObject root = umlModel.lookupRoot();
+ IStereotypeApplicationLocationStrategy strategy = PapyrusStereotypeApplicationHelper.getCurrentLocationStrategy(root);
+ if(strategy != null) {
+ Set<URI> profileApplicationResourceURIs = strategy.getProfileApplicationResourceURIs(root);
+ for(URI resourceURI : profileApplicationResourceURIs) {
+ Resource resource = ModelUtils.getOrCreateResource(modelSet, loadOnDemand, resourceURI, UMLResource.UML_CONTENT_TYPE_IDENTIFIER);
+ resources.add(resource);
+ }
+ }
+ }
+ } catch (NotFoundException e) {
+ Activator.log.debug(e.getMessage());
+ return Collections.emptyList();
+ }
+ return resources;
+ }
+
+ protected void configureResource(Resource resource) {
+ if(resource instanceof XMIResource) {
+ ((XMIResource)resource).getDefaultSaveOptions().putAll(getSaveOptions());
+ ((XMIResource)resource).setEncoding(AbstractBaseModel.ENCODING);
+ }
+ }
+
+ protected Map<Object, Object> getSaveOptions() {
+ Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ // default save options.
+ saveOptions.put(XMIResource.OPTION_DECLARE_XML, Boolean.TRUE);
+ saveOptions.put(XMIResource.OPTION_PROCESS_DANGLING_HREF, XMIResource.OPTION_PROCESS_DANGLING_HREF_DISCARD);
+ saveOptions.put(XMIResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ saveOptions.put(XMIResource.OPTION_USE_XMI_TYPE, Boolean.TRUE);
+ saveOptions.put(XMIResource.OPTION_SAVE_TYPE_INFORMATION, Boolean.TRUE);
+ saveOptions.put(XMIResource.OPTION_SKIP_ESCAPE_URI, Boolean.FALSE);
+ saveOptions.put(XMIResource.OPTION_ENCODING, "UTF-8");
+ //see bug 397987: [Core][Save] The referenced plugin models are saved using relative path
+ saveOptions.put(XMIResource.OPTION_URI_HANDLER, new org.eclipse.emf.ecore.xmi.impl.URIHandlerImpl.PlatformSchemeAware());
+ return saveOptions;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void importModel(IPath path) {
+ throw new UnsupportedOperationException("ImportModel_IPath is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void importModel(URI uri) {
+ throw new UnsupportedOperationException("ImportModel_URI is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void saveModel() throws IOException {
+ List<Resource> resources = getResources(true);
+ for(Resource resource : resources) {
+ if(!getModelManager().getTransactionalEditingDomain().isReadOnly(resource) && !ModelUtils.resourceFailedOnLoad(resource)) {
+ resource.save(getSaveOptions());
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void changeModelPath(IPath fullPath) {
+ throw new UnsupportedOperationException("changeModelPath is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void setModelURI(URI uri) {
+ throw new UnsupportedOperationException("setModelURI is not supported for " + getClass().getCanonicalName());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ // call registered snippets
+ snippets.performDispose(this);
+ List<Resource> resources = getResources(false);
+ for(Resource resource : resources) {
+ resource.unload();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void addModelSnippet(IModelSnippet snippet) {
+ snippets.add(snippet);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<URI> getModifiedURIs() {
+ return Collections.emptySet();
+ }
+}

Back to the top