[327039] Adding static implementation of standard L2 profile.
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/.classpath b/plugins/org.eclipse.uml2.uml.profile.l2/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <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="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/.project b/plugins/org.eclipse.uml2.uml.profile.l2/.project
new file mode 100644
index 0000000..39c29a1
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.uml2.uml.profile.l2</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.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/META-INF/MANIFEST.MF b/plugins/org.eclipse.uml2.uml.profile.l2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0ca1a50
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.uml2.uml.profile.l2;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.uml2.uml.profile.l2.L2Plugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.uml2.uml.profile.l2,
+ org.eclipse.uml2.uml.profile.l2.internal.impl,
+ org.eclipse.uml2.uml.profile.l2.internal.operations,
+ org.eclipse.uml2.uml.profile.l2.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/about.html b/plugins/org.eclipse.uml2.uml.profile.l2/about.html
new file mode 100755
index 0000000..598b368
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/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>May 12, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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>
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/build.properties b/plugins/org.eclipse.uml2.uml.profile.l2/build.properties
new file mode 100644
index 0000000..7147a64
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/build.properties
@@ -0,0 +1,22 @@
+# Copyright (c) 2011 CEA and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA - initial API and implementation
+#
+source.. = src/
+output.. = bin/
+bin.includes = about.html,\
+ plugin.*,\
+ .,\
+ model/*.ecore,\
+ model/*.genmodel,\
+ META-INF/
+src.includes = about.html,\
+ model/*.uml
+exclude.. = **/doc-files/**
+javacSource = 1.5
+javacTarget = 1.5
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.ecore b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.ecore
new file mode 100644
index 0000000..6eb303a
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.ecore
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="l2"
+ nsURI="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" nsPrefix="l2">
+ <eClassifiers xsi:type="ecore:EClass" name="Auxiliary">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class that supports another more central or fundamental class, typically by implementing secondary logic or control flow. The class that the auxiliary supports may be defined explicitly using a Focus class or implicitly as the supplier of dependency relationship whose client is an auxiliary class. Auxiliary classes are typically used together with Focus classes, and are particularly useful for specifying the secondary business logic or control flow of components during design. See also: «Focus»."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Call">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A usage dependency whose source is an operation and whose target is an operation. The relationship may also be subsumed to the class containing an operation, with the meaning that there exists an operation in the class to which the dependency applies. A call dependency specifies that the source operation or an operation in the source class invokes the target operation or an operation in the target class. A call dependency may connect a source operation to any target operation that is within scope including, but not limited to, operations of the enclosing classifier and operations of other visible classifiers."/>
+ </eAnnotations>
+ <eOperations name="client_and_supplier_are_operations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Operation))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Usage" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Create">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When applied to a usage dependency, it specifies that the client classifier creates instances of the supplier classifier. When applied to a BehavioralFeature, it specifies that the designated feature creates an instance of the classifier to which the feature is attached."/>
+ </eAnnotations>
+ <eOperations name="client_and_supplier_are_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Usage->notEmpty() implies (self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_BehavioralFeature"
+ ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Usage" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Derive">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a derivation relationship among model elements that are usually, but not necessarily, of the same type. A derived dependency specifies that the client may be computed from the supplier. The mapping specifies the computation. The client may be implemented for design reasons, such as efficiency, even though it is logically redundant."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Abstraction" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="computation" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ValueSpecification"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specification for computing the derived client element from the derivation supplier element."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Destroy">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies that the designated feature destroys an instance of the classifier to which the feature is attached."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_BehavioralFeature"
+ ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Document" eSuperTypes="#//File">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A specific kind of file that is not an «Executable», «Library», «Script» or «Source». Subclass of «File»."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="base_Artifact" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact">
+ <eAnnotations source="redefines" references="#//File/base_Artifact"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="File" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A physical file in the context of the system developed."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Artifact" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Entity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A persistent information component representing a business concept."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Executable" eSuperTypes="#//File">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A program file that can be executed on a computer system. Subclass of «File»."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="base_Artifact" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact">
+ <eAnnotations source="redefines" references="#//File/base_Artifact"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Focus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class that defines the core logic or control flow for one or more auxiliary classes that support it. Support classes may be defined explicitly using Auxiliary classes or implicitly as clients of dependency relationships whose supplier is a focus class. Focus classes are typically used together with one or more Auxiliary classes, and are particularly useful for specifying the core business logic or control flow of components during design. See also: «Auxiliary»."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Framework">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A package that contains model elements that specify a reusable architecture for all or part of a system. Frameworks typically include classes, patterns, or templates. When frameworks are specialized for an application domain they are sometimes referred to as application frameworks."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Implement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A component definition that is not intended to have a specification itself. Rather, it is an implementation for a separate «Specification» to which it has a Dependency."/>
+ </eAnnotations>
+ <eOperations name="implements_specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Component.clientDependency.supplier->select(oclIsKindOf(Classifier)).oclAsType(Classifier).extension_Specificaiton->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ImplementationClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The implementation of a class in some programming language (e.g., C++, Smalltalk, Java) in which an instance may not have more than one class. This is in contrast to Class, for which an instance may have multiple classes at one time and may gain or lose classes over time, and an object (a child of instance) may dynamically have multiple classes. An Implementation class is said to realize a Classifier if it provides all of the operations defined for the Classifier with the same behavior as specified for the Classifier's operations. An Implementation Class may realize a number of different Types. Note that the physical attributes and associations of the Implementation class do not have to be the same as those of any Classifier it realizes and that the Implementation Class may provide methods for its operations in terms of its physical attributes and associations. See also: «Type»."/>
+ </eAnnotations>
+ <eOperations name="cannot_be_realization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Class.extension_Realization->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Instantiate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A usage dependency among classifiers indicating that operations on the client create instances of the supplier."/>
+ </eAnnotations>
+ <eOperations name="client_and_supplier_are_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Usage" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//File">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A static or dynamic library file. Subclass of «File»."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="base_Artifact" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact">
+ <eAnnotations source="redefines" references="#//File/base_Artifact"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Metaclass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class whose instances are also classes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelLibrary">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A package that contains model elements that are intended to be reused by other packages. Model libraries are frequently used in conjunction with applied profiles. This is expressed by defining a dependency between a profile and a model library package, or by defining a model library as contained in a profile package. The classes in a model library are not stereotypes and tagged definitions extending the metamodel. A model library is analogous to a class library in some programming languages. When a model library is defined as a part of a profile, it is imported or deleted with the application or removal of the profile. The profile is implicitly applied to its model library. In the other case, when the model library is defined as an external package imported by a profile, the profile requires that the model library be there in the model at the stage of the profile application. The application or the removal of the profile does not affect the presence of the model library elements."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Process">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A transaction based component."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Realization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A classifier that specifies a domain of objects and that also defines the physical implementation of those objects. For example, a Component stereotyped by «realization» will only have realizing Classifiers that implement behavior specified by a separate «Specification» Component. See «specification». This differs from «ImplementationClass» because an «ImplementationClass» is a realization of a Class that can have features such as attributes and methods that are useful to system designers."/>
+ </eAnnotations>
+ <eOperations name="cannot_be_implementationClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Classifier.extension_ImplementationClass->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Refine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a refinement relationship between model elements at different semantic levels, such as analysis and design. The mapping specifies the relationship between the two elements or sets of elements. The mapping may or may not be computable, and it may be unidirectional or bidirectional. Refinement can be used to model transformations from analysis to design and other such changes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Abstraction" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Responsibility">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A contract or an obligation of an element in its relationship to other elements."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Usage" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Script" eSuperTypes="#//File">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A script file that can be interpreted by a computer system. Subclass of «File»."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="base_Artifact" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact">
+ <eAnnotations source="redefines" references="#//File/base_Artifact"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Send">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A usage dependency whose client is an operation and whose supplier is a signal, specifying that the client sends the supplier signal."/>
+ </eAnnotations>
+ <eOperations name="client_operation_sends_supplier_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Signal))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Usage" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Service">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A stateless, functional component (computes a value)."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Source" eSuperTypes="#//File">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A source file that can be compiled into an executable file. Subclass of «File»."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="base_Artifact" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Artifact">
+ <eAnnotations source="redefines" references="#//File/base_Artifact"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Specification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass»."/>
+ </eAnnotations>
+ <eOperations name="cannot_be_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Classifier.extension_Type->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Subsystem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A unit of hierarchical decomposition for large systems. A subsystem is commonly instantiated indirectly. Definitions of subsystems vary widely among domains and methods, and it is expected that domain and method profiles will specialize this construct. A subsystem may be defined to have specification and realization elements. See also: «Specification» and «Realization»."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Trace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a trace relationship between model elements or sets of model elements that represent the same concept in different models. Traces are mainly used for tracking requirements and changes across models. Since model changes can occur in both directions, the directionality of the dependency can often be ignored. The mapping specifies the relationship between the two, but it is rarely computable and is usually informal."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Abstraction" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass»."/>
+ </eAnnotations>
+ <eOperations name="cannot_be_specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Class.extension_Specification->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Utility">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A class that has no instances, but rather denotes a named collection of static attributes and static operations, all of which are class-scoped."/>
+ </eAnnotations>
+ <eOperations name="is_utility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Class.feature->forAll(isStatic)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.genmodel b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.genmodel
new file mode 100644
index 0000000..507f26b
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.genmodel
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel" modelDirectory="/org.eclipse.uml2.uml.profile.l2/src"
+ editDirectory="" editorDirectory="" modelPluginID="org.eclipse.uml2.uml.profile.l2"
+ templateDirectory="/org.eclipse.uml2/templates" runtimeJar="true" dynamicTemplates="true"
+ modelName="L2" modelPluginClass="org.eclipse.uml2.uml.profile.l2.L2Plugin" nonNLSMarkers="true"
+ codeFormatting="true" testsDirectory="" importerID="org.eclipse.uml2.uml.ecore.importer"
+ containmentProxies="true" complianceLevel="5.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.uml2.types/model/Types.genmodel#//types platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
+ operationReflection="true" invariantPrefix="validate">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURES" value="PROCESS"/>
+ <details key="SUBSETTING_PROPERTIES" value="PROCESS"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATIONS" value="PROCESS"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="PROCESS"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="PROCESS"/>
+ <details key="REDEFINING_OPERATIONS" value="PROCESS"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>L2.merged.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="L2" basePackage="org.eclipse.uml2.uml.profile"
+ classPackageSuffix="internal.impl" generateExampleClass="false" ecorePackage="L2.ecore#/"
+ operationsPackage="org.eclipse.uml2.uml.profile.l2.internal.operations">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Auxiliary">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Auxiliary/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Call">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Call/base_Usage"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Call/client_and_supplier_are_operations">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Call/client_and_supplier_are_operations/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Call/client_and_supplier_are_operations/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Create">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Create/base_BehavioralFeature"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Create/base_Usage"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Create/client_and_supplier_are_classifiers">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Create/client_and_supplier_are_classifiers/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Create/client_and_supplier_are_classifiers/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Derive">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Derive/base_Abstraction"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference L2.ecore#//Derive/computation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Destroy">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Destroy/base_BehavioralFeature"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Document"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="L2.ecore#//File">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//File/base_Artifact"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Entity">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Entity/base_Component"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Executable"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Focus">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Focus/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Framework">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Framework/base_Package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Implement">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Implement/base_Component"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Implement/implements_specification">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Implement/implements_specification/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Implement/implements_specification/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//ImplementationClass">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//ImplementationClass/base_Class"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//ImplementationClass/cannot_be_realization">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//ImplementationClass/cannot_be_realization/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//ImplementationClass/cannot_be_realization/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Instantiate">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Instantiate/base_Usage"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Instantiate/client_and_supplier_are_classifiers">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Instantiate/client_and_supplier_are_classifiers/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Instantiate/client_and_supplier_are_classifiers/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Library"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Metaclass">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Metaclass/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//ModelLibrary">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//ModelLibrary/base_Package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Process">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Process/base_Component"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Realization">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Realization/base_Classifier"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Realization/cannot_be_implementationClass">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Realization/cannot_be_implementationClass/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Realization/cannot_be_implementationClass/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Refine">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Refine/base_Abstraction"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Responsibility">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Responsibility/base_Usage"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Script"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Send">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Send/base_Usage"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Send/client_operation_sends_supplier_signal">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Send/client_operation_sends_supplier_signal/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Send/client_operation_sends_supplier_signal/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Service">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Service/base_Component"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Source"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Specification">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Specification/base_Classifier"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Specification/cannot_be_type">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Specification/cannot_be_type/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Specification/cannot_be_type/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Subsystem">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Subsystem/base_Component"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Trace">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Trace/base_Abstraction"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Type">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Type/base_Class"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Type/cannot_be_specification">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Type/cannot_be_specification/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Type/cannot_be_specification/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="L2.ecore#//Utility">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference L2.ecore#//Utility/base_Class"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="L2.ecore#//Utility/is_utility">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Utility/is_utility/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="L2.ecore#//Utility/is_utility/context"/>
+ </genOperations>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.merged.uml b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.merged.uml
new file mode 100644
index 0000000..02f5db9
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.merged.uml
@@ -0,0 +1,486 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_ihtF8L5MEeCUg9_01zj7Og" name="L2" metamodelReference="_qhsNEMlJEeCA2KY6CawwCg">
+ <packageImport xmi:id="_qhsNEMlJEeCA2KY6CawwCg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhs0IMlJEeCA2KY6CawwCg" name="Abstraction_Derive" memberEnd="_qhs0IclJEeCA2KY6CawwCg _qh0v8slJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhs0IclJEeCA2KY6CawwCg" name="extension_Derive" visibility="public" type="_qh0v8MlJEeCA2KY6CawwCg" aggregation="composite" association="_qhs0IMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhs0IslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhs0I8lJEeCA2KY6CawwCg" name="Abstraction_Refine" memberEnd="_qhs0JMlJEeCA2KY6CawwCg _qh5BZ8lJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhs0JMlJEeCA2KY6CawwCg" name="extension_Refine" visibility="public" type="_qh5BZclJEeCA2KY6CawwCg" aggregation="composite" association="_qhs0I8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhs0JclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhuCQMlJEeCA2KY6CawwCg" name="Abstraction_Trace" memberEnd="_qhuCQclJEeCA2KY6CawwCg _qh6Pi8lJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhuCQclJEeCA2KY6CawwCg" name="extension_Trace" visibility="public" type="_qh6PiclJEeCA2KY6CawwCg" aggregation="composite" association="_qhuCQMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhuCQslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhupUMlJEeCA2KY6CawwCg" name="Artifact_Document" memberEnd="_qhupUclJEeCA2KY6CawwCg _qh1XA8lJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhupUclJEeCA2KY6CawwCg" name="extension_Document" visibility="public" type="_qh1XAMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhupUMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhupUslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhupU8lJEeCA2KY6CawwCg" name="Artifact_Executable" memberEnd="_qhupVMlJEeCA2KY6CawwCg _qh1XCslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhupVMlJEeCA2KY6CawwCg" name="extension_Executable" visibility="public" type="_qh1XB8lJEeCA2KY6CawwCg" aggregation="composite" association="_qhupU8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhupVclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhupVslJEeCA2KY6CawwCg" name="Artifact_File" memberEnd="_qhupV8lJEeCA2KY6CawwCg _qh1XDclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhupV8lJEeCA2KY6CawwCg" name="extension_File" visibility="public" type="_qh1XC8lJEeCA2KY6CawwCg" aggregation="composite" association="_qhupVslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhupWMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhvQYMlJEeCA2KY6CawwCg" name="Artifact_Library" memberEnd="_qhvQYclJEeCA2KY6CawwCg _qh2lLclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhvQYclJEeCA2KY6CawwCg" name="extension_Library" visibility="public" type="_qh2lKslJEeCA2KY6CawwCg" aggregation="composite" association="_qhvQYMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhvQYslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhvQY8lJEeCA2KY6CawwCg" name="Artifact_Script" memberEnd="_qhvQZMlJEeCA2KY6CawwCg _qh5BbslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhvQZMlJEeCA2KY6CawwCg" name="extension_Script" visibility="public" type="_qh5Ba8lJEeCA2KY6CawwCg" aggregation="composite" association="_qhvQY8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhvQZclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhvQZslJEeCA2KY6CawwCg" name="Artifact_Source" memberEnd="_qhvQZ8lJEeCA2KY6CawwCg _qh6PgMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhvQZ8lJEeCA2KY6CawwCg" name="extension_Source" visibility="public" type="_qh5oeMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhvQZslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhvQaMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhv3cMlJEeCA2KY6CawwCg" name="BehavioralFeature_Create" memberEnd="_qhv3cclJEeCA2KY6CawwCg _qh0I6clJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhv3cclJEeCA2KY6CawwCg" name="extension_Create" visibility="public" type="_qh0I5clJEeCA2KY6CawwCg" aggregation="composite" association="_qhv3cMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhv3cslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhv3c8lJEeCA2KY6CawwCg" name="BehavioralFeature_Destroy" memberEnd="_qhv3dMlJEeCA2KY6CawwCg _qh0v-clJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhv3dMlJEeCA2KY6CawwCg" name="extension_Destroy" visibility="public" type="_qh0v98lJEeCA2KY6CawwCg" aggregation="composite" association="_qhv3c8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhv3dclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhv3dslJEeCA2KY6CawwCg" name="Class_Auxiliary" memberEnd="_qhv3d8lJEeCA2KY6CawwCg _qhzh1clJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhv3d8lJEeCA2KY6CawwCg" name="extension_Auxiliary" visibility="public" type="_qhzh08lJEeCA2KY6CawwCg" aggregation="composite" association="_qhv3dslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhv3eMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhv3eclJEeCA2KY6CawwCg" name="Class_Focus" memberEnd="_qhv3eslJEeCA2KY6CawwCg _qh1-EslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhv3eslJEeCA2KY6CawwCg" name="extension_Focus" visibility="public" type="_qh1-EMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhv3eclJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhv3e8lJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhwegMlJEeCA2KY6CawwCg" name="Class_ImplementationClass" memberEnd="_qhwegclJEeCA2KY6CawwCg _qh2lJMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhwegclJEeCA2KY6CawwCg" name="extension_ImplementationClass" visibility="public" type="_qh2lIMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhwegMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhwegslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhweg8lJEeCA2KY6CawwCg" name="Class_Metaclass" memberEnd="_qhwehMlJEeCA2KY6CawwCg _qh3MMslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhwehMlJEeCA2KY6CawwCg" name="extension_Metaclass" visibility="public" type="_qh3MMMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhweg8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhwehclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhwehslJEeCA2KY6CawwCg" name="Class_Type" memberEnd="_qhweh8lJEeCA2KY6CawwCg _qh62lMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhweh8lJEeCA2KY6CawwCg" name="extension_Type" visibility="public" type="_qh62kMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhwehslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhweiMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxFkMlJEeCA2KY6CawwCg" name="Class_Utility" memberEnd="_qhxFkclJEeCA2KY6CawwCg _qh62mclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxFkclJEeCA2KY6CawwCg" name="extension_Utility" visibility="public" type="_qh62lclJEeCA2KY6CawwCg" aggregation="composite" association="_qhxFkMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxFkslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxFk8lJEeCA2KY6CawwCg" name="Classifier_Realization" memberEnd="_qhxFlMlJEeCA2KY6CawwCg _qh5BZMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxFlMlJEeCA2KY6CawwCg" name="extension_Realization" visibility="public" type="_qh5BYMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhxFk8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxFlclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxFlslJEeCA2KY6CawwCg" name="Classifier_Specification" memberEnd="_qhxFl8lJEeCA2KY6CawwCg _qh6PhclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxFl8lJEeCA2KY6CawwCg" name="extension_Specification" visibility="public" type="_qh6PgclJEeCA2KY6CawwCg" aggregation="composite" association="_qhxFlslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxFmMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxsoMlJEeCA2KY6CawwCg" name="Component_Entity" memberEnd="_qhxsoclJEeCA2KY6CawwCg _qh1XBslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxsoclJEeCA2KY6CawwCg" name="extension_Entity" visibility="public" type="_qh1XBMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhxsoMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxsoslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxso8lJEeCA2KY6CawwCg" name="Component_Implement" memberEnd="_qhxspMlJEeCA2KY6CawwCg _qh1-GslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxspMlJEeCA2KY6CawwCg" name="extension_Implement" visibility="public" type="_qh1-FslJEeCA2KY6CawwCg" aggregation="composite" association="_qhxso8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxspclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhxspslJEeCA2KY6CawwCg" name="Component_Process" memberEnd="_qhxsp8lJEeCA2KY6CawwCg _qh4aVclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhxsp8lJEeCA2KY6CawwCg" name="extension_Process" visibility="public" type="_qh4aU8lJEeCA2KY6CawwCg" aggregation="composite" association="_qhxspslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhxsqMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhyTsMlJEeCA2KY6CawwCg" name="Component_Service" memberEnd="_qhyTsclJEeCA2KY6CawwCg _qh5od8lJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhyTsclJEeCA2KY6CawwCg" name="extension_Service" visibility="public" type="_qh5odclJEeCA2KY6CawwCg" aggregation="composite" association="_qhyTsMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhyTsslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhyTs8lJEeCA2KY6CawwCg" name="Component_Subsystem" memberEnd="_qhyTtMlJEeCA2KY6CawwCg _qh6PiMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhyTtMlJEeCA2KY6CawwCg" name="extension_Subsystem" visibility="public" type="_qh6PhslJEeCA2KY6CawwCg" aggregation="composite" association="_qhyTs8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhyTtclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhyTtslJEeCA2KY6CawwCg" name="Package_Framework" memberEnd="_qhyTt8lJEeCA2KY6CawwCg _qh1-FclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhyTt8lJEeCA2KY6CawwCg" name="extension_Framework" visibility="public" type="_qh1-E8lJEeCA2KY6CawwCg" aggregation="composite" association="_qhyTtslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhyTuMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhyTuclJEeCA2KY6CawwCg" name="Package_ModelLibrary" memberEnd="_qhyTuslJEeCA2KY6CawwCg _qh4aUslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhyTuslJEeCA2KY6CawwCg" name="extension_ModelLibrary" visibility="public" type="_qh4aUMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhyTuclJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhyTu8lJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhy6wMlJEeCA2KY6CawwCg" name="Usage_Call" memberEnd="_qhy6wclJEeCA2KY6CawwCg _qh0I5MlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhy6wclJEeCA2KY6CawwCg" name="extension_Call" visibility="public" type="_qh0I4MlJEeCA2KY6CawwCg" aggregation="composite" association="_qhy6wMlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhy6wslJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhy6w8lJEeCA2KY6CawwCg" name="Usage_Create" memberEnd="_qhy6xMlJEeCA2KY6CawwCg _qh0I6slJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhy6xMlJEeCA2KY6CawwCg" name="extension_Create" visibility="public" type="_qh0I5clJEeCA2KY6CawwCg" aggregation="composite" association="_qhy6w8lJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhy6xclJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhy6xslJEeCA2KY6CawwCg" name="Usage_Instantiate" memberEnd="_qhy6x8lJEeCA2KY6CawwCg _qh2lKclJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhy6x8lJEeCA2KY6CawwCg" name="extension_Instantiate" visibility="public" type="_qh2lJclJEeCA2KY6CawwCg" aggregation="composite" association="_qhy6xslJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhy6yMlJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhy6yclJEeCA2KY6CawwCg" name="Usage_Responsibility" memberEnd="_qhy6yslJEeCA2KY6CawwCg _qh5BaslJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhy6yslJEeCA2KY6CawwCg" name="extension_Responsibility" visibility="public" type="_qh5BaMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhy6yclJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhy6y8lJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_qhzh0MlJEeCA2KY6CawwCg" name="Usage_Send" memberEnd="_qhzh0clJEeCA2KY6CawwCg _qh5odMlJEeCA2KY6CawwCg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_qhzh0clJEeCA2KY6CawwCg" name="extension_Send" visibility="public" type="_qh5ocMlJEeCA2KY6CawwCg" aggregation="composite" association="_qhzh0MlJEeCA2KY6CawwCg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qhzh0slJEeCA2KY6CawwCg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qhzh08lJEeCA2KY6CawwCg" name="Auxiliary">
+ <ownedComment xmi:id="_qhzh1MlJEeCA2KY6CawwCg" annotatedElement="_qhzh08lJEeCA2KY6CawwCg">
+ <body>A class that supports another more central or fundamental class, typically by implementing secondary logic or control flow. The class that the auxiliary supports may be defined explicitly using a Focus class or implicitly as the supplier of dependency relationship whose client is an auxiliary class. Auxiliary classes are typically used together with Focus classes, and are particularly useful for specifying the secondary business logic or control flow of components during design. See also: «Focus».</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qhzh1clJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhv3dslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh0I4MlJEeCA2KY6CawwCg" name="Call">
+ <ownedComment xmi:id="_qh0I4clJEeCA2KY6CawwCg" annotatedElement="_qh0I4MlJEeCA2KY6CawwCg">
+ <body>A usage dependency whose source is an operation and whose target is an operation. The relationship may also be subsumed to the class containing an operation, with the meaning that there exists an operation in the class to which the dependency applies. A call dependency specifies that the source operation or an operation in the source class invokes the target operation or an operation in the target class. A call dependency may connect a source operation to any target operation that is within scope including, but not limited to, operations of the enclosing classifier and operations of other visible classifiers.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh0I4slJEeCA2KY6CawwCg" name="client_and_supplier_are_operations" constrainedElement="_qh0I4MlJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh0I48lJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Operation))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh0I5MlJEeCA2KY6CawwCg" name="base_Usage" visibility="public" association="_qhy6wMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh0I5clJEeCA2KY6CawwCg" name="Create">
+ <ownedComment xmi:id="_qh0I5slJEeCA2KY6CawwCg" annotatedElement="_qh0I5clJEeCA2KY6CawwCg">
+ <body>When applied to a usage dependency, it specifies that the client classifier creates instances of the supplier classifier. When applied to a BehavioralFeature, it specifies that the designated feature creates an instance of the classifier to which the feature is attached.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh0I58lJEeCA2KY6CawwCg" name="client_and_supplier_are_classifiers" constrainedElement="_qh0I5clJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh0I6MlJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Usage->notEmpty() implies (self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier)))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh0I6clJEeCA2KY6CawwCg" name="base_BehavioralFeature" visibility="public" association="_qhv3cMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_qh0I6slJEeCA2KY6CawwCg" name="base_Usage" visibility="public" association="_qhy6w8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh0v8MlJEeCA2KY6CawwCg" name="Derive">
+ <ownedComment xmi:id="_qh0v8clJEeCA2KY6CawwCg" annotatedElement="_qh0v8MlJEeCA2KY6CawwCg">
+ <body>Specifies a derivation relationship among model elements that are usually, but not necessarily, of the same type. A derived dependency specifies that the client may be computed from the supplier. The mapping specifies the computation. The client may be implemented for design reasons, such as efficiency, even though it is logically redundant.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh0v8slJEeCA2KY6CawwCg" name="base_Abstraction" visibility="public" association="_qhs0IMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_qh0v88lJEeCA2KY6CawwCg" name="computation" visibility="public" aggregation="composite">
+ <ownedComment xmi:id="_qh0v9MlJEeCA2KY6CawwCg" annotatedElement="_qh0v88lJEeCA2KY6CawwCg">
+ <body>The specification for computing the derived client element from the derivation supplier element.</body>
+ </ownedComment>
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qh0v9clJEeCA2KY6CawwCg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qh0v9slJEeCA2KY6CawwCg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh0v98lJEeCA2KY6CawwCg" name="Destroy">
+ <ownedComment xmi:id="_qh0v-MlJEeCA2KY6CawwCg" annotatedElement="_qh0v98lJEeCA2KY6CawwCg">
+ <body>Specifies that the designated feature destroys an instance of the classifier to which the feature is attached.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh0v-clJEeCA2KY6CawwCg" name="base_BehavioralFeature" visibility="public" association="_qhv3c8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1XAMlJEeCA2KY6CawwCg" name="Document">
+ <ownedComment xmi:id="_qh1XAclJEeCA2KY6CawwCg" annotatedElement="_qh1XAMlJEeCA2KY6CawwCg">
+ <body>A specific kind of file that is not an «Executable», «Library», «Script» or «Source». Subclass of «File».</body>
+ </ownedComment>
+ <generalization xmi:id="_qh1XAslJEeCA2KY6CawwCg" general="_qh1XC8lJEeCA2KY6CawwCg"/>
+ <ownedAttribute xmi:id="_qh1XA8lJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" redefinedProperty="_qh1XDclJEeCA2KY6CawwCg" association="_qhupUMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1XBMlJEeCA2KY6CawwCg" name="Entity">
+ <ownedComment xmi:id="_qh1XBclJEeCA2KY6CawwCg" annotatedElement="_qh1XBMlJEeCA2KY6CawwCg">
+ <body>A persistent information component representing a business concept.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh1XBslJEeCA2KY6CawwCg" name="base_Component" visibility="public" association="_qhxsoMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1XB8lJEeCA2KY6CawwCg" name="Executable">
+ <ownedComment xmi:id="_qh1XCMlJEeCA2KY6CawwCg" annotatedElement="_qh1XB8lJEeCA2KY6CawwCg">
+ <body>A program file that can be executed on a computer system. Subclass of «File».</body>
+ </ownedComment>
+ <generalization xmi:id="_qh1XCclJEeCA2KY6CawwCg" general="_qh1XC8lJEeCA2KY6CawwCg"/>
+ <ownedAttribute xmi:id="_qh1XCslJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" redefinedProperty="_qh1XDclJEeCA2KY6CawwCg" association="_qhupU8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1XC8lJEeCA2KY6CawwCg" name="File" isAbstract="true">
+ <ownedComment xmi:id="_qh1XDMlJEeCA2KY6CawwCg" annotatedElement="_qh1XC8lJEeCA2KY6CawwCg">
+ <body>A physical file in the context of the system developed.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh1XDclJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" association="_qhupVslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1-EMlJEeCA2KY6CawwCg" name="Focus">
+ <ownedComment xmi:id="_qh1-EclJEeCA2KY6CawwCg" annotatedElement="_qh1-EMlJEeCA2KY6CawwCg">
+ <body>A class that defines the core logic or control flow for one or more auxiliary classes that support it. Support classes may be defined explicitly using Auxiliary classes or implicitly as clients of dependency relationships whose supplier is a focus class. Focus classes are typically used together with one or more Auxiliary classes, and are particularly useful for specifying the core business logic or control flow of components during design. See also: «Auxiliary».</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh1-EslJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhv3eclJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1-E8lJEeCA2KY6CawwCg" name="Framework">
+ <ownedComment xmi:id="_qh1-FMlJEeCA2KY6CawwCg" annotatedElement="_qh1-E8lJEeCA2KY6CawwCg">
+ <body>A package that contains model elements that specify a reusable architecture for all or part of a system. Frameworks typically include classes, patterns, or templates. When frameworks are specialized for an application domain they are sometimes referred to as application frameworks.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh1-FclJEeCA2KY6CawwCg" name="base_Package" visibility="public" association="_qhyTtslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh1-FslJEeCA2KY6CawwCg" name="Implement">
+ <ownedComment xmi:id="_qh1-F8lJEeCA2KY6CawwCg" annotatedElement="_qh1-FslJEeCA2KY6CawwCg">
+ <body>A component definition that is not intended to have a specification itself. Rather, it is an implementation for a separate «Specification» to which it has a Dependency.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh1-GMlJEeCA2KY6CawwCg" name="implements_specification" constrainedElement="_qh1-FslJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh1-GclJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Component.clientDependency.supplier->select(oclIsKindOf(Classifier)).oclAsType(Classifier).extension_Specificaiton->notEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh1-GslJEeCA2KY6CawwCg" name="base_Component" visibility="public" association="_qhxso8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh2lIMlJEeCA2KY6CawwCg" name="ImplementationClass">
+ <ownedComment xmi:id="_qh2lIclJEeCA2KY6CawwCg" annotatedElement="_qh2lIMlJEeCA2KY6CawwCg">
+ <body>The implementation of a class in some programming language (e.g., C++, Smalltalk, Java) in which an instance may not have more than one class. This is in contrast to Class, for which an instance may have multiple classes at one time and may gain or lose classes over time, and an object (a child of instance) may dynamically have multiple classes. An Implementation class is said to realize a Classifier if it provides all of the operations defined for the Classifier with the same behavior as specified for the Classifier's operations. An Implementation Class may realize a number of different Types. Note that the physical attributes and associations of the Implementation class do not have to be the same as those of any Classifier it realizes and that the Implementation Class may provide methods for its operations in terms of its physical attributes and associations. See also: «Type».</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh2lIslJEeCA2KY6CawwCg" name="cannot_be_realization" constrainedElement="_qh2lIMlJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh2lI8lJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Class.extension_Realization->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh2lJMlJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhwegMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh2lJclJEeCA2KY6CawwCg" name="Instantiate">
+ <ownedComment xmi:id="_qh2lJslJEeCA2KY6CawwCg" annotatedElement="_qh2lJclJEeCA2KY6CawwCg">
+ <body>A usage dependency among classifiers indicating that operations on the client create instances of the supplier.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh2lJ8lJEeCA2KY6CawwCg" name="client_and_supplier_are_classifiers" constrainedElement="_qh2lJclJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh2lKMlJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh2lKclJEeCA2KY6CawwCg" name="base_Usage" visibility="public" association="_qhy6xslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh2lKslJEeCA2KY6CawwCg" name="Library">
+ <ownedComment xmi:id="_qh2lK8lJEeCA2KY6CawwCg" annotatedElement="_qh2lKslJEeCA2KY6CawwCg">
+ <body>A static or dynamic library file. Subclass of «File».</body>
+ </ownedComment>
+ <generalization xmi:id="_qh2lLMlJEeCA2KY6CawwCg" general="_qh1XC8lJEeCA2KY6CawwCg"/>
+ <ownedAttribute xmi:id="_qh2lLclJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" redefinedProperty="_qh1XDclJEeCA2KY6CawwCg" association="_qhvQYMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh3MMMlJEeCA2KY6CawwCg" name="Metaclass">
+ <ownedComment xmi:id="_qh3MMclJEeCA2KY6CawwCg" annotatedElement="_qh3MMMlJEeCA2KY6CawwCg">
+ <body>A class whose instances are also classes.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh3MMslJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhweg8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh4aUMlJEeCA2KY6CawwCg" name="ModelLibrary">
+ <ownedComment xmi:id="_qh4aUclJEeCA2KY6CawwCg" annotatedElement="_qh4aUMlJEeCA2KY6CawwCg">
+ <body>A package that contains model elements that are intended to be reused by other packages. Model libraries are frequently used in conjunction with applied profiles. This is expressed by defining a dependency between a profile and a model library package, or by defining a model library as contained in a profile package. The classes in a model library are not stereotypes and tagged definitions extending the metamodel. A model library is analogous to a class library in some programming languages. When a model library is defined as a part of a profile, it is imported or deleted with the application or removal of the profile. The profile is implicitly applied to its model library. In the other case, when the model library is defined as an external package imported by a profile, the profile requires that the model library be there in the model at the stage of the profile application. The application or the removal of the profile does not affect the presence of the model library elements.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh4aUslJEeCA2KY6CawwCg" name="base_Package" visibility="public" association="_qhyTuclJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh4aU8lJEeCA2KY6CawwCg" name="Process">
+ <ownedComment xmi:id="_qh4aVMlJEeCA2KY6CawwCg" annotatedElement="_qh4aU8lJEeCA2KY6CawwCg">
+ <body>A transaction based component.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh4aVclJEeCA2KY6CawwCg" name="base_Component" visibility="public" association="_qhxspslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5BYMlJEeCA2KY6CawwCg" name="Realization">
+ <ownedComment xmi:id="_qh5BYclJEeCA2KY6CawwCg" annotatedElement="_qh5BYMlJEeCA2KY6CawwCg">
+ <body>A classifier that specifies a domain of objects and that also defines the physical implementation of those objects. For example, a Component stereotyped by «realization» will only have realizing Classifiers that implement behavior specified by a separate «Specification» Component. See «specification». This differs from «ImplementationClass» because an «ImplementationClass» is a realization of a Class that can have features such as attributes and methods that are useful to system designers.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh5BYslJEeCA2KY6CawwCg" name="cannot_be_implementationClass" constrainedElement="_qh5BYMlJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh5BY8lJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Classifier.extension_ImplementationClass->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh5BZMlJEeCA2KY6CawwCg" name="base_Classifier" visibility="public" association="_qhxFk8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5BZclJEeCA2KY6CawwCg" name="Refine">
+ <ownedComment xmi:id="_qh5BZslJEeCA2KY6CawwCg" annotatedElement="_qh5BZclJEeCA2KY6CawwCg">
+ <body>Specifies a refinement relationship between model elements at different semantic levels, such as analysis and design. The mapping specifies the relationship between the two elements or sets of elements. The mapping may or may not be computable, and it may be unidirectional or bidirectional. Refinement can be used to model transformations from analysis to design and other such changes.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh5BZ8lJEeCA2KY6CawwCg" name="base_Abstraction" visibility="public" association="_qhs0I8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5BaMlJEeCA2KY6CawwCg" name="Responsibility">
+ <ownedComment xmi:id="_qh5BaclJEeCA2KY6CawwCg" annotatedElement="_qh5BaMlJEeCA2KY6CawwCg">
+ <body>A contract or an obligation of an element in its relationship to other elements.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh5BaslJEeCA2KY6CawwCg" name="base_Usage" visibility="public" association="_qhy6yclJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5Ba8lJEeCA2KY6CawwCg" name="Script">
+ <ownedComment xmi:id="_qh5BbMlJEeCA2KY6CawwCg" annotatedElement="_qh5Ba8lJEeCA2KY6CawwCg">
+ <body>A script file that can be interpreted by a computer system. Subclass of «File».</body>
+ </ownedComment>
+ <generalization xmi:id="_qh5BbclJEeCA2KY6CawwCg" general="_qh1XC8lJEeCA2KY6CawwCg"/>
+ <ownedAttribute xmi:id="_qh5BbslJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" redefinedProperty="_qh1XDclJEeCA2KY6CawwCg" association="_qhvQY8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5ocMlJEeCA2KY6CawwCg" name="Send">
+ <ownedComment xmi:id="_qh5occlJEeCA2KY6CawwCg" annotatedElement="_qh5ocMlJEeCA2KY6CawwCg">
+ <body>A usage dependency whose client is an operation and whose supplier is a signal, specifying that the client sends the supplier signal.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh5ocslJEeCA2KY6CawwCg" name="client_operation_sends_supplier_signal" constrainedElement="_qh5ocMlJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh5oc8lJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Signal))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh5odMlJEeCA2KY6CawwCg" name="base_Usage" visibility="public" association="_qhzh0MlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5odclJEeCA2KY6CawwCg" name="Service">
+ <ownedComment xmi:id="_qh5odslJEeCA2KY6CawwCg" annotatedElement="_qh5odclJEeCA2KY6CawwCg">
+ <body>A stateless, functional component (computes a value).</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh5od8lJEeCA2KY6CawwCg" name="base_Component" visibility="public" association="_qhyTsMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh5oeMlJEeCA2KY6CawwCg" name="Source">
+ <ownedComment xmi:id="_qh5oeclJEeCA2KY6CawwCg" annotatedElement="_qh5oeMlJEeCA2KY6CawwCg">
+ <body>A source file that can be compiled into an executable file. Subclass of «File».</body>
+ </ownedComment>
+ <generalization xmi:id="_qh5oeslJEeCA2KY6CawwCg" general="_qh1XC8lJEeCA2KY6CawwCg"/>
+ <ownedAttribute xmi:id="_qh6PgMlJEeCA2KY6CawwCg" name="base_Artifact" visibility="public" redefinedProperty="_qh1XDclJEeCA2KY6CawwCg" association="_qhvQZslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh6PgclJEeCA2KY6CawwCg" name="Specification">
+ <ownedComment xmi:id="_qh6PgslJEeCA2KY6CawwCg" annotatedElement="_qh6PgclJEeCA2KY6CawwCg">
+ <body>A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass».</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh6Pg8lJEeCA2KY6CawwCg" name="cannot_be_type" constrainedElement="_qh6PgclJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh6PhMlJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Classifier.extension_Type->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh6PhclJEeCA2KY6CawwCg" name="base_Classifier" visibility="public" association="_qhxFlslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh6PhslJEeCA2KY6CawwCg" name="Subsystem">
+ <ownedComment xmi:id="_qh6Ph8lJEeCA2KY6CawwCg" annotatedElement="_qh6PhslJEeCA2KY6CawwCg">
+ <body>A unit of hierarchical decomposition for large systems. A subsystem is commonly instantiated indirectly. Definitions of subsystems vary widely among domains and methods, and it is expected that domain and method profiles will specialize this construct. A subsystem may be defined to have specification and realization elements. See also: «Specification» and «Realization».</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh6PiMlJEeCA2KY6CawwCg" name="base_Component" visibility="public" association="_qhyTs8lJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh6PiclJEeCA2KY6CawwCg" name="Trace">
+ <ownedComment xmi:id="_qh6PislJEeCA2KY6CawwCg" annotatedElement="_qh6PiclJEeCA2KY6CawwCg">
+ <body>Specifies a trace relationship between model elements or sets of model elements that represent the same concept in different models. Traces are mainly used for tracking requirements and changes across models. Since model changes can occur in both directions, the directionality of the dependency can often be ignored. The mapping specifies the relationship between the two, but it is rarely computable and is usually informal.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_qh6Pi8lJEeCA2KY6CawwCg" name="base_Abstraction" visibility="public" association="_qhuCQMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh62kMlJEeCA2KY6CawwCg" name="Type">
+ <ownedComment xmi:id="_qh62kclJEeCA2KY6CawwCg" annotatedElement="_qh62kMlJEeCA2KY6CawwCg">
+ <body>A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass».</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh62kslJEeCA2KY6CawwCg" name="cannot_be_specification" constrainedElement="_qh62kMlJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh62k8lJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Class.extension_Specification->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh62lMlJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhwehslJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qh62lclJEeCA2KY6CawwCg" name="Utility">
+ <ownedComment xmi:id="_qh62lslJEeCA2KY6CawwCg" annotatedElement="_qh62lclJEeCA2KY6CawwCg">
+ <body>A class that has no instances, but rather denotes a named collection of static attributes and static operations, all of which are class-scoped.</body>
+ </ownedComment>
+ <ownedRule xmi:id="_qh62l8lJEeCA2KY6CawwCg" name="is_utility" constrainedElement="_qh62lclJEeCA2KY6CawwCg">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_qh62mMlJEeCA2KY6CawwCg">
+ <language>OCL</language>
+ <body>self.base_Class.feature->forAll(isStatic)</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:id="_qh62mclJEeCA2KY6CawwCg" name="base_Class" visibility="public" association="_qhxFkMlJEeCA2KY6CawwCg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:id="_6ryEUL5MEeCUg9_01zj7Og">
+ <eAnnotations xmi:id="_6ryrYL5MEeCUg9_01zj7Og" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_7-6gIL5MEeCUg9_01zj7Og" base_Package="_ihtF8L5MEeCUg9_01zj7Og" packageName="l2" nsPrefix="l2" nsURI="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" basePackage="org.eclipse.uml2.uml.profile" prefix="L2"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.uml b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.uml
new file mode 100644
index 0000000..ca43239
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/model/L2.uml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_ihtF8L5MEeCUg9_01zj7Og" name="L2">
+ <packageMerge xmi:id="_pUgPcL5MEeCUg9_01zj7Og">
+ <mergedPackage xmi:type="uml:Profile" href="../../org.eclipse.uml2/model/StandardProfileL2.xmi#_0"/>
+ </packageMerge>
+ <profileApplication xmi:id="_6ryEUL5MEeCUg9_01zj7Og">
+ <eAnnotations xmi:id="_6ryrYL5MEeCUg9_01zj7Og" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_7-6gIL5MEeCUg9_01zj7Og" base_Package="_ihtF8L5MEeCUg9_01zj7Og" packageName="l2" nsPrefix="l2" nsURI="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" basePackage="org.eclipse.uml2.uml.profile" prefix="L2"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/plugin.properties b/plugins/org.eclipse.uml2.uml.profile.l2/plugin.properties
new file mode 100644
index 0000000..f82852b
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/plugin.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2011 CEA and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = UML2 Standard L2 Profile
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/plugin.xml b/plugins/org.eclipse.uml2.uml.profile.l2/plugin.xml
new file mode 100644
index 0000000..47abfcd
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2011 CEA and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ CEA - initial API and implementation
+
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2"
+ class="org.eclipse.uml2.uml.profile.l2.L2Package"
+ genModel="model/L2.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2"
+ location="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Auxiliary.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Auxiliary.java
new file mode 100644
index 0000000..e486679
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Auxiliary.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auxiliary</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class that supports another more central or fundamental class, typically by implementing secondary logic or control flow. The class that the auxiliary supports may be defined explicitly using a Focus class or implicitly as the supplier of dependency relationship whose client is an auxiliary class. Auxiliary classes are typically used together with Focus classes, and are particularly useful for specifying the secondary business logic or control flow of components during design. See also: «Focus».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Auxiliary#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getAuxiliary()
+ * @model
+ * @generated
+ */
+public interface Auxiliary
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getAuxiliary_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Auxiliary#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Auxiliary
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Call.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Call.java
new file mode 100644
index 0000000..342a7c7
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Call.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Usage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Call</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A usage dependency whose source is an operation and whose target is an operation. The relationship may also be subsumed to the class containing an operation, with the meaning that there exists an operation in the class to which the dependency applies. A call dependency specifies that the source operation or an operation in the source class invokes the target operation or an operation in the target class. A call dependency may connect a source operation to any target operation that is within scope including, but not limited to, operations of the enclosing classifier and operations of other visible classifiers.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Call#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getCall()
+ * @model
+ * @generated
+ */
+public interface Call
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Usage</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Usage</em>' reference.
+ * @see #setBase_Usage(Usage)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getCall_Base_Usage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Usage getBase_Usage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Call#getBase_Usage <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Usage</em>' reference.
+ * @see #getBase_Usage()
+ * @generated
+ */
+ void setBase_Usage(Usage value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Operation))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateClientAndSupplierAreOperations(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Call
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Create.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Create.java
new file mode 100644
index 0000000..ec06ce2
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Create.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Usage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Create</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * When applied to a usage dependency, it specifies that the client classifier creates instances of the supplier classifier. When applied to a BehavioralFeature, it specifies that the designated feature creates an instance of the classifier to which the feature is attached.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getCreate()
+ * @model
+ * @generated
+ */
+public interface Create
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Behavioral Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Behavioral Feature</em>' reference.
+ * @see #setBase_BehavioralFeature(BehavioralFeature)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getCreate_Base_BehavioralFeature()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ BehavioralFeature getBase_BehavioralFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Behavioral Feature</em>' reference.
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ */
+ void setBase_BehavioralFeature(BehavioralFeature value);
+
+ /**
+ * Returns the value of the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Usage</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Usage</em>' reference.
+ * @see #setBase_Usage(Usage)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getCreate_Base_Usage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Usage getBase_Usage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_Usage <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Usage</em>' reference.
+ * @see #getBase_Usage()
+ * @generated
+ */
+ void setBase_Usage(Usage value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage->notEmpty() implies (self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier)))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateClientAndSupplierAreClassifiers(
+ DiagnosticChain diagnostics, Map<Object, Object> context);
+
+} // Create
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Derive.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Derive.java
new file mode 100644
index 0000000..5b15ecf
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Derive.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derive</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a derivation relationship among model elements that are usually, but not necessarily, of the same type. A derived dependency specifies that the client may be computed from the supplier. The mapping specifies the computation. The client may be implemented for design reasons, such as efficiency, even though it is logically redundant.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Derive#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Derive#getComputation <em>Computation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDerive()
+ * @model
+ * @generated
+ */
+public interface Derive
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Abstraction</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Abstraction</em>' reference.
+ * @see #setBase_Abstraction(Abstraction)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDerive_Base_Abstraction()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Abstraction getBase_Abstraction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Derive#getBase_Abstraction <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Abstraction</em>' reference.
+ * @see #getBase_Abstraction()
+ * @generated
+ */
+ void setBase_Abstraction(Abstraction value);
+
+ /**
+ * Returns the value of the '<em><b>Computation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The specification for computing the derived client element from the derivation supplier element.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Computation</em>' containment reference.
+ * @see #setComputation(ValueSpecification)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDerive_Computation()
+ * @model containment="true" resolveProxies="true" required="true" ordered="false"
+ * @generated
+ */
+ ValueSpecification getComputation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Derive#getComputation <em>Computation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Computation</em>' containment reference.
+ * @see #getComputation()
+ * @generated
+ */
+ void setComputation(ValueSpecification value);
+
+} // Derive
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Destroy.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Destroy.java
new file mode 100644
index 0000000..6a73255
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Destroy.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.BehavioralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Destroy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies that the designated feature destroys an instance of the classifier to which the feature is attached.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Destroy#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDestroy()
+ * @model
+ * @generated
+ */
+public interface Destroy
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Behavioral Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Behavioral Feature</em>' reference.
+ * @see #setBase_BehavioralFeature(BehavioralFeature)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDestroy_Base_BehavioralFeature()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ BehavioralFeature getBase_BehavioralFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Destroy#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Behavioral Feature</em>' reference.
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ */
+ void setBase_BehavioralFeature(BehavioralFeature value);
+
+} // Destroy
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Document.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Document.java
new file mode 100644
index 0000000..10758e9
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Document.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Document</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A specific kind of file that is not an «Executable», «Library», «Script» or «Source». Subclass of «File».
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getDocument()
+ * @model
+ * @generated
+ */
+public interface Document
+ extends File {
+} // Document
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Entity.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Entity.java
new file mode 100644
index 0000000..95f464a
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Entity.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Component;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A persistent information component representing a business concept.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Entity#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getEntity()
+ * @model
+ * @generated
+ */
+public interface Entity
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Component</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Component</em>' reference.
+ * @see #setBase_Component(Component)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getEntity_Base_Component()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Component getBase_Component();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Entity#getBase_Component <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Component</em>' reference.
+ * @see #getBase_Component()
+ * @generated
+ */
+ void setBase_Component(Component value);
+
+} // Entity
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Executable.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Executable.java
new file mode 100644
index 0000000..3f0b7ce
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Executable.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Executable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A program file that can be executed on a computer system. Subclass of «File».
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getExecutable()
+ * @model
+ * @generated
+ */
+public interface Executable
+ extends File {
+} // Executable
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/File.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/File.java
new file mode 100644
index 0000000..b42e457
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/File.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Artifact;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A physical file in the context of the system developed.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.File#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFile()
+ * @model abstract="true"
+ * @generated
+ */
+public interface File
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Artifact</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Artifact</em>' reference.
+ * @see #setBase_Artifact(Artifact)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFile_Base_Artifact()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Artifact getBase_Artifact();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.File#getBase_Artifact <em>Base Artifact</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Artifact</em>' reference.
+ * @see #getBase_Artifact()
+ * @generated
+ */
+ void setBase_Artifact(Artifact value);
+
+} // File
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Focus.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Focus.java
new file mode 100644
index 0000000..e440f12
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Focus.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Focus</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class that defines the core logic or control flow for one or more auxiliary classes that support it. Support classes may be defined explicitly using Auxiliary classes or implicitly as clients of dependency relationships whose supplier is a focus class. Focus classes are typically used together with one or more Auxiliary classes, and are particularly useful for specifying the core business logic or control flow of components during design. See also: «Auxiliary».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Focus#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFocus()
+ * @model
+ * @generated
+ */
+public interface Focus
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFocus_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Focus#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Focus
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Framework.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Framework.java
new file mode 100644
index 0000000..e2e5903
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Framework.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Framework</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A package that contains model elements that specify a reusable architecture for all or part of a system. Frameworks typically include classes, patterns, or templates. When frameworks are specialized for an application domain they are sometimes referred to as application frameworks.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Framework#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFramework()
+ * @model
+ * @generated
+ */
+public interface Framework
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getFramework_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Framework#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // Framework
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Implement.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Implement.java
new file mode 100644
index 0000000..9e0be4f
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Implement.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Component;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A component definition that is not intended to have a specification itself. Rather, it is an implementation for a separate «Specification» to which it has a Dependency.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Implement#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplement()
+ * @model
+ * @generated
+ */
+public interface Implement
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Component</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Component</em>' reference.
+ * @see #setBase_Component(Component)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplement_Base_Component()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Component getBase_Component();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Implement#getBase_Component <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Component</em>' reference.
+ * @see #getBase_Component()
+ * @generated
+ */
+ void setBase_Component(Component value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Component.clientDependency.supplier->select(oclIsKindOf(Classifier)).oclAsType(Classifier).extension_Specificaiton->notEmpty()
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateImplementsSpecification(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Implement
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ImplementationClass.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ImplementationClass.java
new file mode 100644
index 0000000..ad5b1e5
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ImplementationClass.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implementation Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The implementation of a class in some programming language (e.g., C++, Smalltalk, Java) in which an instance may not have more than one class. This is in contrast to Class, for which an instance may have multiple classes at one time and may gain or lose classes over time, and an object (a child of instance) may dynamically have multiple classes. An Implementation class is said to realize a Classifier if it provides all of the operations defined for the Classifier with the same behavior as specified for the Classifier's operations. An Implementation Class may realize a number of different Types. Note that the physical attributes and associations of the Implementation class do not have to be the same as those of any Classifier it realizes and that the Implementation Class may provide methods for its operations in terms of its physical attributes and associations. See also: «Type».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplementationClass()
+ * @model
+ * @generated
+ */
+public interface ImplementationClass
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplementationClass_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.extension_Realization->isEmpty()
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateCannotBeRealization(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // ImplementationClass
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Instantiate.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Instantiate.java
new file mode 100644
index 0000000..d728610
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Instantiate.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Usage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instantiate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A usage dependency among classifiers indicating that operations on the client create instances of the supplier.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Instantiate#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getInstantiate()
+ * @model
+ * @generated
+ */
+public interface Instantiate
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Usage</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Usage</em>' reference.
+ * @see #setBase_Usage(Usage)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getInstantiate_Base_Usage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Usage getBase_Usage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Instantiate#getBase_Usage <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Usage</em>' reference.
+ * @see #getBase_Usage()
+ * @generated
+ */
+ void setBase_Usage(Usage value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateClientAndSupplierAreClassifiers(
+ DiagnosticChain diagnostics, Map<Object, Object> context);
+
+} // Instantiate
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Factory.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Factory.java
new file mode 100644
index 0000000..03dd7d3
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Factory.java
@@ -0,0 +1,306 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package
+ * @generated
+ */
+public interface L2Factory
+ extends EFactory {
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ L2Factory eINSTANCE = org.eclipse.uml2.uml.profile.l2.internal.impl.L2FactoryImpl
+ .init();
+
+ /**
+ * Returns a new object of class '<em>Auxiliary</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Auxiliary</em>'.
+ * @generated
+ */
+ Auxiliary createAuxiliary();
+
+ /**
+ * Returns a new object of class '<em>Call</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Call</em>'.
+ * @generated
+ */
+ Call createCall();
+
+ /**
+ * Returns a new object of class '<em>Create</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Create</em>'.
+ * @generated
+ */
+ Create createCreate();
+
+ /**
+ * Returns a new object of class '<em>Derive</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Derive</em>'.
+ * @generated
+ */
+ Derive createDerive();
+
+ /**
+ * Returns a new object of class '<em>Destroy</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Destroy</em>'.
+ * @generated
+ */
+ Destroy createDestroy();
+
+ /**
+ * Returns a new object of class '<em>Document</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Document</em>'.
+ * @generated
+ */
+ Document createDocument();
+
+ /**
+ * Returns a new object of class '<em>Entity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Entity</em>'.
+ * @generated
+ */
+ Entity createEntity();
+
+ /**
+ * Returns a new object of class '<em>Executable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Executable</em>'.
+ * @generated
+ */
+ Executable createExecutable();
+
+ /**
+ * Returns a new object of class '<em>Focus</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Focus</em>'.
+ * @generated
+ */
+ Focus createFocus();
+
+ /**
+ * Returns a new object of class '<em>Framework</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Framework</em>'.
+ * @generated
+ */
+ Framework createFramework();
+
+ /**
+ * Returns a new object of class '<em>Implement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implement</em>'.
+ * @generated
+ */
+ Implement createImplement();
+
+ /**
+ * Returns a new object of class '<em>Implementation Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implementation Class</em>'.
+ * @generated
+ */
+ ImplementationClass createImplementationClass();
+
+ /**
+ * Returns a new object of class '<em>Instantiate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instantiate</em>'.
+ * @generated
+ */
+ Instantiate createInstantiate();
+
+ /**
+ * Returns a new object of class '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Library</em>'.
+ * @generated
+ */
+ Library createLibrary();
+
+ /**
+ * Returns a new object of class '<em>Metaclass</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Metaclass</em>'.
+ * @generated
+ */
+ Metaclass createMetaclass();
+
+ /**
+ * Returns a new object of class '<em>Model Library</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Library</em>'.
+ * @generated
+ */
+ ModelLibrary createModelLibrary();
+
+ /**
+ * Returns a new object of class '<em>Process</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Process</em>'.
+ * @generated
+ */
+ Process createProcess();
+
+ /**
+ * Returns a new object of class '<em>Realization</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Realization</em>'.
+ * @generated
+ */
+ Realization createRealization();
+
+ /**
+ * Returns a new object of class '<em>Refine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Refine</em>'.
+ * @generated
+ */
+ Refine createRefine();
+
+ /**
+ * Returns a new object of class '<em>Responsibility</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Responsibility</em>'.
+ * @generated
+ */
+ Responsibility createResponsibility();
+
+ /**
+ * Returns a new object of class '<em>Script</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Script</em>'.
+ * @generated
+ */
+ Script createScript();
+
+ /**
+ * Returns a new object of class '<em>Send</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Send</em>'.
+ * @generated
+ */
+ Send createSend();
+
+ /**
+ * Returns a new object of class '<em>Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service</em>'.
+ * @generated
+ */
+ Service createService();
+
+ /**
+ * Returns a new object of class '<em>Source</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Source</em>'.
+ * @generated
+ */
+ Source createSource();
+
+ /**
+ * Returns a new object of class '<em>Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Specification</em>'.
+ * @generated
+ */
+ Specification createSpecification();
+
+ /**
+ * Returns a new object of class '<em>Subsystem</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Subsystem</em>'.
+ * @generated
+ */
+ Subsystem createSubsystem();
+
+ /**
+ * Returns a new object of class '<em>Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Trace</em>'.
+ * @generated
+ */
+ Trace createTrace();
+
+ /**
+ * Returns a new object of class '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type</em>'.
+ * @generated
+ */
+ Type createType();
+
+ /**
+ * Returns a new object of class '<em>Utility</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Utility</em>'.
+ * @generated
+ */
+ Utility createUtility();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ L2Package getL2Package();
+
+} //L2Factory
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Package.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Package.java
new file mode 100644
index 0000000..619127a
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Package.java
@@ -0,0 +1,2635 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.L2Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface L2Package
+ extends EPackage {
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "l2"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "l2"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ L2Package eINSTANCE = org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl
+ .init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.AuxiliaryImpl <em>Auxiliary</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.AuxiliaryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getAuxiliary()
+ * @generated
+ */
+ int AUXILIARY = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUXILIARY__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Auxiliary</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUXILIARY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Auxiliary</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUXILIARY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CallImpl <em>Call</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.CallImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getCall()
+ * @generated
+ */
+ int CALL = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CALL__BASE_USAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Call</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CALL_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Client And Supplier Are Operations</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CALL___VALIDATE_CLIENT_AND_SUPPLIER_ARE_OPERATIONS__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Call</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CALL_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl <em>Create</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getCreate()
+ * @generated
+ */
+ int CREATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CREATE__BASE_BEHAVIORAL_FEATURE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CREATE__BASE_USAGE = 1;
+
+ /**
+ * The number of structural features of the '<em>Create</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CREATE_FEATURE_COUNT = 2;
+
+ /**
+ * The operation id for the '<em>Validate Client And Supplier Are Classifiers</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CREATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Create</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CREATE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl <em>Derive</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDerive()
+ * @generated
+ */
+ int DERIVE = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVE__BASE_ABSTRACTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Computation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVE__COMPUTATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Derive</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVE_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Derive</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DestroyImpl <em>Destroy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DestroyImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDestroy()
+ * @generated
+ */
+ int DESTROY = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESTROY__BASE_BEHAVIORAL_FEATURE = 0;
+
+ /**
+ * The number of structural features of the '<em>Destroy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESTROY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Destroy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESTROY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FileImpl <em>File</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FileImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFile()
+ * @generated
+ */
+ int FILE = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__BASE_ARTIFACT = 0;
+
+ /**
+ * The number of structural features of the '<em>File</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>File</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DocumentImpl <em>Document</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DocumentImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDocument()
+ * @generated
+ */
+ int DOCUMENT = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT__BASE_ARTIFACT = FILE__BASE_ARTIFACT;
+
+ /**
+ * The number of structural features of the '<em>Document</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_FEATURE_COUNT = FILE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Document</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_OPERATION_COUNT = FILE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.EntityImpl <em>Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.EntityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getEntity()
+ * @generated
+ */
+ int ENTITY = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENTITY__BASE_COMPONENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Entity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENTITY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Entity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENTITY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ExecutableImpl <em>Executable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ExecutableImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getExecutable()
+ * @generated
+ */
+ int EXECUTABLE = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXECUTABLE__BASE_ARTIFACT = FILE__BASE_ARTIFACT;
+
+ /**
+ * The number of structural features of the '<em>Executable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXECUTABLE_FEATURE_COUNT = FILE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Executable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXECUTABLE_OPERATION_COUNT = FILE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FocusImpl <em>Focus</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FocusImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFocus()
+ * @generated
+ */
+ int FOCUS = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOCUS__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Focus</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOCUS_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Focus</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOCUS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FrameworkImpl <em>Framework</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FrameworkImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFramework()
+ * @generated
+ */
+ int FRAMEWORK = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAMEWORK__BASE_PACKAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Framework</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAMEWORK_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Framework</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAMEWORK_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementImpl <em>Implement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getImplement()
+ * @generated
+ */
+ int IMPLEMENT = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENT__BASE_COMPONENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Implement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Implements Specification</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENT___VALIDATE_IMPLEMENTS_SPECIFICATION__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Implement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENT_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementationClassImpl <em>Implementation Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementationClassImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getImplementationClass()
+ * @generated
+ */
+ int IMPLEMENTATION_CLASS = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_CLASS__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Implementation Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_CLASS_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Cannot Be Realization</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_CLASS___VALIDATE_CANNOT_BE_REALIZATION__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Implementation Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_CLASS_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.InstantiateImpl <em>Instantiate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.InstantiateImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getInstantiate()
+ * @generated
+ */
+ int INSTANTIATE = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANTIATE__BASE_USAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Instantiate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANTIATE_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Client And Supplier Are Classifiers</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANTIATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Instantiate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANTIATE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.LibraryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getLibrary()
+ * @generated
+ */
+ int LIBRARY = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BASE_ARTIFACT = FILE__BASE_ARTIFACT;
+
+ /**
+ * The number of structural features of the '<em>Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY_FEATURE_COUNT = FILE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY_OPERATION_COUNT = FILE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.MetaclassImpl <em>Metaclass</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.MetaclassImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getMetaclass()
+ * @generated
+ */
+ int METACLASS = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int METACLASS__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Metaclass</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int METACLASS_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Metaclass</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int METACLASS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ModelLibraryImpl <em>Model Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ModelLibraryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getModelLibrary()
+ * @generated
+ */
+ int MODEL_LIBRARY = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_LIBRARY__BASE_PACKAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Model Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_LIBRARY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Model Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_LIBRARY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ProcessImpl <em>Process</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ProcessImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getProcess()
+ * @generated
+ */
+ int PROCESS = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROCESS__BASE_COMPONENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Process</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROCESS_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Process</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROCESS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RealizationImpl <em>Realization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.RealizationImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getRealization()
+ * @generated
+ */
+ int REALIZATION = 18;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALIZATION__BASE_CLASSIFIER = 0;
+
+ /**
+ * The number of structural features of the '<em>Realization</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALIZATION_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Cannot Be Implementation Class</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALIZATION___VALIDATE_CANNOT_BE_IMPLEMENTATION_CLASS__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Realization</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALIZATION_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RefineImpl <em>Refine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.RefineImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getRefine()
+ * @generated
+ */
+ int REFINE = 19;
+
+ /**
+ * The feature id for the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFINE__BASE_ABSTRACTION = 0;
+
+ /**
+ * The number of structural features of the '<em>Refine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFINE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Refine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFINE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ResponsibilityImpl <em>Responsibility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ResponsibilityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getResponsibility()
+ * @generated
+ */
+ int RESPONSIBILITY = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESPONSIBILITY__BASE_USAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Responsibility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESPONSIBILITY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Responsibility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESPONSIBILITY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ScriptImpl <em>Script</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ScriptImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getScript()
+ * @generated
+ */
+ int SCRIPT = 21;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCRIPT__BASE_ARTIFACT = FILE__BASE_ARTIFACT;
+
+ /**
+ * The number of structural features of the '<em>Script</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCRIPT_FEATURE_COUNT = FILE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Script</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCRIPT_OPERATION_COUNT = FILE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SendImpl <em>Send</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SendImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSend()
+ * @generated
+ */
+ int SEND = 22;
+
+ /**
+ * The feature id for the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEND__BASE_USAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Send</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEND_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Client Operation Sends Supplier Signal</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEND___VALIDATE_CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Send</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEND_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ServiceImpl <em>Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ServiceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getService()
+ * @generated
+ */
+ int SERVICE = 23;
+
+ /**
+ * The feature id for the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE__BASE_COMPONENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SourceImpl <em>Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SourceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSource()
+ * @generated
+ */
+ int SOURCE = 24;
+
+ /**
+ * The feature id for the '<em><b>Base Artifact</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOURCE__BASE_ARTIFACT = FILE__BASE_ARTIFACT;
+
+ /**
+ * The number of structural features of the '<em>Source</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOURCE_FEATURE_COUNT = FILE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Source</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOURCE_OPERATION_COUNT = FILE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SpecificationImpl <em>Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SpecificationImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSpecification()
+ * @generated
+ */
+ int SPECIFICATION = 25;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFICATION__BASE_CLASSIFIER = 0;
+
+ /**
+ * The number of structural features of the '<em>Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFICATION_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Cannot Be Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFICATION___VALIDATE_CANNOT_BE_TYPE__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFICATION_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SubsystemImpl <em>Subsystem</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SubsystemImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSubsystem()
+ * @generated
+ */
+ int SUBSYSTEM = 26;
+
+ /**
+ * The feature id for the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUBSYSTEM__BASE_COMPONENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Subsystem</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUBSYSTEM_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Subsystem</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUBSYSTEM_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TraceImpl <em>Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.TraceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getTrace()
+ * @generated
+ */
+ int TRACE = 27;
+
+ /**
+ * The feature id for the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE__BASE_ABSTRACTION = 0;
+
+ /**
+ * The number of structural features of the '<em>Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.TypeImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getType()
+ * @generated
+ */
+ int TYPE = 28;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Cannot Be Specification</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE___VALIDATE_CANNOT_BE_SPECIFICATION__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.UtilityImpl <em>Utility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.UtilityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getUtility()
+ * @generated
+ */
+ int UTILITY = 29;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UTILITY__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Utility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UTILITY_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Validate Is Utility</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UTILITY___VALIDATE_IS_UTILITY__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
+ * The number of operations of the '<em>Utility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UTILITY_OPERATION_COUNT = 1;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Auxiliary <em>Auxiliary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Auxiliary</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Auxiliary
+ * @generated
+ */
+ EClass getAuxiliary();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Auxiliary#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Auxiliary#getBase_Class()
+ * @see #getAuxiliary()
+ * @generated
+ */
+ EReference getAuxiliary_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Call <em>Call</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Call</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Call
+ * @generated
+ */
+ EClass getCall();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Call#getBase_Usage <em>Base Usage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Usage</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Call#getBase_Usage()
+ * @see #getCall()
+ * @generated
+ */
+ EReference getCall_Base_Usage();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Call#validateClientAndSupplierAreOperations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Operations</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Client And Supplier Are Operations</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Call#validateClientAndSupplierAreOperations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getCall__ValidateClientAndSupplierAreOperations__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Create <em>Create</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Create</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Create
+ * @generated
+ */
+ EClass getCreate();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Behavioral Feature</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Create#getBase_BehavioralFeature()
+ * @see #getCreate()
+ * @generated
+ */
+ EReference getCreate_Base_BehavioralFeature();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Create#getBase_Usage <em>Base Usage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Usage</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Create#getBase_Usage()
+ * @see #getCreate()
+ * @generated
+ */
+ EReference getCreate_Base_Usage();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Create#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Classifiers</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Client And Supplier Are Classifiers</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Create#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getCreate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Derive <em>Derive</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Derive</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Derive
+ * @generated
+ */
+ EClass getDerive();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Derive#getBase_Abstraction <em>Base Abstraction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Abstraction</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Derive#getBase_Abstraction()
+ * @see #getDerive()
+ * @generated
+ */
+ EReference getDerive_Base_Abstraction();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.profile.l2.Derive#getComputation <em>Computation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Computation</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Derive#getComputation()
+ * @see #getDerive()
+ * @generated
+ */
+ EReference getDerive_Computation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Destroy <em>Destroy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Destroy</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Destroy
+ * @generated
+ */
+ EClass getDestroy();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Destroy#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Behavioral Feature</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Destroy#getBase_BehavioralFeature()
+ * @see #getDestroy()
+ * @generated
+ */
+ EReference getDestroy_Base_BehavioralFeature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Document <em>Document</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Document
+ * @generated
+ */
+ EClass getDocument();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.File <em>File</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>File</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.File
+ * @generated
+ */
+ EClass getFile();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.File#getBase_Artifact <em>Base Artifact</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Artifact</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.File#getBase_Artifact()
+ * @see #getFile()
+ * @generated
+ */
+ EReference getFile_Base_Artifact();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Entity <em>Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Entity</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Entity
+ * @generated
+ */
+ EClass getEntity();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Entity#getBase_Component <em>Base Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Component</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Entity#getBase_Component()
+ * @see #getEntity()
+ * @generated
+ */
+ EReference getEntity_Base_Component();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Executable <em>Executable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Executable</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Executable
+ * @generated
+ */
+ EClass getExecutable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Focus <em>Focus</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Focus</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Focus
+ * @generated
+ */
+ EClass getFocus();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Focus#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Focus#getBase_Class()
+ * @see #getFocus()
+ * @generated
+ */
+ EReference getFocus_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Framework <em>Framework</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Framework</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Framework
+ * @generated
+ */
+ EClass getFramework();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Framework#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Framework#getBase_Package()
+ * @see #getFramework()
+ * @generated
+ */
+ EReference getFramework_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Implement <em>Implement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implement</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Implement
+ * @generated
+ */
+ EClass getImplement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Implement#getBase_Component <em>Base Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Component</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Implement#getBase_Component()
+ * @see #getImplement()
+ * @generated
+ */
+ EReference getImplement_Base_Component();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Implement#validateImplementsSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Implements Specification</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Implements Specification</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Implement#validateImplementsSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getImplement__ValidateImplementsSpecification__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass <em>Implementation Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implementation Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.ImplementationClass
+ * @generated
+ */
+ EClass getImplementationClass();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class()
+ * @see #getImplementationClass()
+ * @generated
+ */
+ EReference getImplementationClass_Base_Class();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#validateCannotBeRealization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Realization</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Cannot Be Realization</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.ImplementationClass#validateCannotBeRealization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getImplementationClass__ValidateCannotBeRealization__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Instantiate <em>Instantiate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instantiate</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Instantiate
+ * @generated
+ */
+ EClass getInstantiate();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Instantiate#getBase_Usage <em>Base Usage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Usage</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Instantiate#getBase_Usage()
+ * @see #getInstantiate()
+ * @generated
+ */
+ EReference getInstantiate_Base_Usage();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Instantiate#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Classifiers</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Client And Supplier Are Classifiers</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Instantiate#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getInstantiate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Library</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Library
+ * @generated
+ */
+ EClass getLibrary();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Metaclass <em>Metaclass</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Metaclass</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Metaclass
+ * @generated
+ */
+ EClass getMetaclass();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Metaclass#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Metaclass#getBase_Class()
+ * @see #getMetaclass()
+ * @generated
+ */
+ EReference getMetaclass_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.ModelLibrary <em>Model Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Library</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.ModelLibrary
+ * @generated
+ */
+ EClass getModelLibrary();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.ModelLibrary#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.ModelLibrary#getBase_Package()
+ * @see #getModelLibrary()
+ * @generated
+ */
+ EReference getModelLibrary_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Process <em>Process</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Process</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Process
+ * @generated
+ */
+ EClass getProcess();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Process#getBase_Component <em>Base Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Component</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Process#getBase_Component()
+ * @see #getProcess()
+ * @generated
+ */
+ EReference getProcess_Base_Component();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Realization <em>Realization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Realization</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Realization
+ * @generated
+ */
+ EClass getRealization();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Realization#getBase_Classifier <em>Base Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Classifier</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Realization#getBase_Classifier()
+ * @see #getRealization()
+ * @generated
+ */
+ EReference getRealization_Base_Classifier();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Realization#validateCannotBeImplementationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Implementation Class</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Cannot Be Implementation Class</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Realization#validateCannotBeImplementationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getRealization__ValidateCannotBeImplementationClass__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Refine <em>Refine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Refine</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Refine
+ * @generated
+ */
+ EClass getRefine();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Refine#getBase_Abstraction <em>Base Abstraction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Abstraction</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Refine#getBase_Abstraction()
+ * @see #getRefine()
+ * @generated
+ */
+ EReference getRefine_Base_Abstraction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Responsibility <em>Responsibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Responsibility</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Responsibility
+ * @generated
+ */
+ EClass getResponsibility();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Responsibility#getBase_Usage <em>Base Usage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Usage</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Responsibility#getBase_Usage()
+ * @see #getResponsibility()
+ * @generated
+ */
+ EReference getResponsibility_Base_Usage();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Script <em>Script</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Script</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Script
+ * @generated
+ */
+ EClass getScript();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Send <em>Send</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Send</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Send
+ * @generated
+ */
+ EClass getSend();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Send#getBase_Usage <em>Base Usage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Usage</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Send#getBase_Usage()
+ * @see #getSend()
+ * @generated
+ */
+ EReference getSend_Base_Usage();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Send#validateClientOperationSendsSupplierSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Operation Sends Supplier Signal</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Client Operation Sends Supplier Signal</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Send#validateClientOperationSendsSupplierSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getSend__ValidateClientOperationSendsSupplierSignal__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Service <em>Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Service
+ * @generated
+ */
+ EClass getService();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Service#getBase_Component <em>Base Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Component</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Service#getBase_Component()
+ * @see #getService()
+ * @generated
+ */
+ EReference getService_Base_Component();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Source <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Source</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Source
+ * @generated
+ */
+ EClass getSource();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Specification <em>Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Specification</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Specification
+ * @generated
+ */
+ EClass getSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Specification#getBase_Classifier <em>Base Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Classifier</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Specification#getBase_Classifier()
+ * @see #getSpecification()
+ * @generated
+ */
+ EReference getSpecification_Base_Classifier();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Specification#validateCannotBeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Cannot Be Type</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Specification#validateCannotBeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getSpecification__ValidateCannotBeType__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Subsystem <em>Subsystem</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Subsystem</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Subsystem
+ * @generated
+ */
+ EClass getSubsystem();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Subsystem#getBase_Component <em>Base Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Component</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Subsystem#getBase_Component()
+ * @see #getSubsystem()
+ * @generated
+ */
+ EReference getSubsystem_Base_Component();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Trace <em>Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Trace</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Trace
+ * @generated
+ */
+ EClass getTrace();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Trace#getBase_Abstraction <em>Base Abstraction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Abstraction</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Trace#getBase_Abstraction()
+ * @see #getTrace()
+ * @generated
+ */
+ EReference getTrace_Base_Abstraction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Type
+ * @generated
+ */
+ EClass getType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Type#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Type#getBase_Class()
+ * @see #getType()
+ * @generated
+ */
+ EReference getType_Base_Class();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Type#validateCannotBeSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Specification</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Cannot Be Specification</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Type#validateCannotBeSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getType__ValidateCannotBeSpecification__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.uml2.uml.profile.l2.Utility <em>Utility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Utility</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Utility
+ * @generated
+ */
+ EClass getUtility();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.profile.l2.Utility#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.uml2.uml.profile.l2.Utility#getBase_Class()
+ * @see #getUtility()
+ * @generated
+ */
+ EReference getUtility_Base_Class();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.uml2.uml.profile.l2.Utility#validateIsUtility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Utility</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Is Utility</em>' operation.
+ * @see org.eclipse.uml2.uml.profile.l2.Utility#validateIsUtility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getUtility__ValidateIsUtility__DiagnosticChain_Map();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ L2Factory getL2Factory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.AuxiliaryImpl <em>Auxiliary</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.AuxiliaryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getAuxiliary()
+ * @generated
+ */
+ EClass AUXILIARY = eINSTANCE.getAuxiliary();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AUXILIARY__BASE_CLASS = eINSTANCE.getAuxiliary_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CallImpl <em>Call</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.CallImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getCall()
+ * @generated
+ */
+ EClass CALL = eINSTANCE.getCall();
+
+ /**
+ * The meta object literal for the '<em><b>Base Usage</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CALL__BASE_USAGE = eINSTANCE.getCall_Base_Usage();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Client And Supplier Are Operations</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CALL___VALIDATE_CLIENT_AND_SUPPLIER_ARE_OPERATIONS__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getCall__ValidateClientAndSupplierAreOperations__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl <em>Create</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getCreate()
+ * @generated
+ */
+ EClass CREATE = eINSTANCE.getCreate();
+
+ /**
+ * The meta object literal for the '<em><b>Base Behavioral Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CREATE__BASE_BEHAVIORAL_FEATURE = eINSTANCE
+ .getCreate_Base_BehavioralFeature();
+
+ /**
+ * The meta object literal for the '<em><b>Base Usage</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CREATE__BASE_USAGE = eINSTANCE.getCreate_Base_Usage();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Client And Supplier Are Classifiers</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CREATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getCreate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl <em>Derive</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDerive()
+ * @generated
+ */
+ EClass DERIVE = eINSTANCE.getDerive();
+
+ /**
+ * The meta object literal for the '<em><b>Base Abstraction</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVE__BASE_ABSTRACTION = eINSTANCE
+ .getDerive_Base_Abstraction();
+
+ /**
+ * The meta object literal for the '<em><b>Computation</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVE__COMPUTATION = eINSTANCE.getDerive_Computation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DestroyImpl <em>Destroy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DestroyImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDestroy()
+ * @generated
+ */
+ EClass DESTROY = eINSTANCE.getDestroy();
+
+ /**
+ * The meta object literal for the '<em><b>Base Behavioral Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DESTROY__BASE_BEHAVIORAL_FEATURE = eINSTANCE
+ .getDestroy_Base_BehavioralFeature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DocumentImpl <em>Document</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.DocumentImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getDocument()
+ * @generated
+ */
+ EClass DOCUMENT = eINSTANCE.getDocument();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FileImpl <em>File</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FileImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFile()
+ * @generated
+ */
+ EClass FILE = eINSTANCE.getFile();
+
+ /**
+ * The meta object literal for the '<em><b>Base Artifact</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FILE__BASE_ARTIFACT = eINSTANCE.getFile_Base_Artifact();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.EntityImpl <em>Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.EntityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getEntity()
+ * @generated
+ */
+ EClass ENTITY = eINSTANCE.getEntity();
+
+ /**
+ * The meta object literal for the '<em><b>Base Component</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ENTITY__BASE_COMPONENT = eINSTANCE
+ .getEntity_Base_Component();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ExecutableImpl <em>Executable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ExecutableImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getExecutable()
+ * @generated
+ */
+ EClass EXECUTABLE = eINSTANCE.getExecutable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FocusImpl <em>Focus</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FocusImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFocus()
+ * @generated
+ */
+ EClass FOCUS = eINSTANCE.getFocus();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOCUS__BASE_CLASS = eINSTANCE.getFocus_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FrameworkImpl <em>Framework</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.FrameworkImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getFramework()
+ * @generated
+ */
+ EClass FRAMEWORK = eINSTANCE.getFramework();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FRAMEWORK__BASE_PACKAGE = eINSTANCE
+ .getFramework_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementImpl <em>Implement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getImplement()
+ * @generated
+ */
+ EClass IMPLEMENT = eINSTANCE.getImplement();
+
+ /**
+ * The meta object literal for the '<em><b>Base Component</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENT__BASE_COMPONENT = eINSTANCE
+ .getImplement_Base_Component();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Implements Specification</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IMPLEMENT___VALIDATE_IMPLEMENTS_SPECIFICATION__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getImplement__ValidateImplementsSpecification__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementationClassImpl <em>Implementation Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementationClassImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getImplementationClass()
+ * @generated
+ */
+ EClass IMPLEMENTATION_CLASS = eINSTANCE.getImplementationClass();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_CLASS__BASE_CLASS = eINSTANCE
+ .getImplementationClass_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Cannot Be Realization</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IMPLEMENTATION_CLASS___VALIDATE_CANNOT_BE_REALIZATION__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getImplementationClass__ValidateCannotBeRealization__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.InstantiateImpl <em>Instantiate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.InstantiateImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getInstantiate()
+ * @generated
+ */
+ EClass INSTANTIATE = eINSTANCE.getInstantiate();
+
+ /**
+ * The meta object literal for the '<em><b>Base Usage</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANTIATE__BASE_USAGE = eINSTANCE
+ .getInstantiate_Base_Usage();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Client And Supplier Are Classifiers</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation INSTANTIATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getInstantiate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.LibraryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getLibrary()
+ * @generated
+ */
+ EClass LIBRARY = eINSTANCE.getLibrary();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.MetaclassImpl <em>Metaclass</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.MetaclassImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getMetaclass()
+ * @generated
+ */
+ EClass METACLASS = eINSTANCE.getMetaclass();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference METACLASS__BASE_CLASS = eINSTANCE.getMetaclass_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ModelLibraryImpl <em>Model Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ModelLibraryImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getModelLibrary()
+ * @generated
+ */
+ EClass MODEL_LIBRARY = eINSTANCE.getModelLibrary();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_LIBRARY__BASE_PACKAGE = eINSTANCE
+ .getModelLibrary_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ProcessImpl <em>Process</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ProcessImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getProcess()
+ * @generated
+ */
+ EClass PROCESS = eINSTANCE.getProcess();
+
+ /**
+ * The meta object literal for the '<em><b>Base Component</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROCESS__BASE_COMPONENT = eINSTANCE
+ .getProcess_Base_Component();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RealizationImpl <em>Realization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.RealizationImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getRealization()
+ * @generated
+ */
+ EClass REALIZATION = eINSTANCE.getRealization();
+
+ /**
+ * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REALIZATION__BASE_CLASSIFIER = eINSTANCE
+ .getRealization_Base_Classifier();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Cannot Be Implementation Class</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation REALIZATION___VALIDATE_CANNOT_BE_IMPLEMENTATION_CLASS__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getRealization__ValidateCannotBeImplementationClass__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RefineImpl <em>Refine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.RefineImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getRefine()
+ * @generated
+ */
+ EClass REFINE = eINSTANCE.getRefine();
+
+ /**
+ * The meta object literal for the '<em><b>Base Abstraction</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REFINE__BASE_ABSTRACTION = eINSTANCE
+ .getRefine_Base_Abstraction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ResponsibilityImpl <em>Responsibility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ResponsibilityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getResponsibility()
+ * @generated
+ */
+ EClass RESPONSIBILITY = eINSTANCE.getResponsibility();
+
+ /**
+ * The meta object literal for the '<em><b>Base Usage</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RESPONSIBILITY__BASE_USAGE = eINSTANCE
+ .getResponsibility_Base_Usage();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ScriptImpl <em>Script</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ScriptImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getScript()
+ * @generated
+ */
+ EClass SCRIPT = eINSTANCE.getScript();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SendImpl <em>Send</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SendImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSend()
+ * @generated
+ */
+ EClass SEND = eINSTANCE.getSend();
+
+ /**
+ * The meta object literal for the '<em><b>Base Usage</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEND__BASE_USAGE = eINSTANCE.getSend_Base_Usage();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Client Operation Sends Supplier Signal</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SEND___VALIDATE_CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getSend__ValidateClientOperationSendsSupplierSignal__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ServiceImpl <em>Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.ServiceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getService()
+ * @generated
+ */
+ EClass SERVICE = eINSTANCE.getService();
+
+ /**
+ * The meta object literal for the '<em><b>Base Component</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERVICE__BASE_COMPONENT = eINSTANCE
+ .getService_Base_Component();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SourceImpl <em>Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SourceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSource()
+ * @generated
+ */
+ EClass SOURCE = eINSTANCE.getSource();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SpecificationImpl <em>Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SpecificationImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSpecification()
+ * @generated
+ */
+ EClass SPECIFICATION = eINSTANCE.getSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SPECIFICATION__BASE_CLASSIFIER = eINSTANCE
+ .getSpecification_Base_Classifier();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Cannot Be Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SPECIFICATION___VALIDATE_CANNOT_BE_TYPE__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getSpecification__ValidateCannotBeType__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SubsystemImpl <em>Subsystem</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.SubsystemImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getSubsystem()
+ * @generated
+ */
+ EClass SUBSYSTEM = eINSTANCE.getSubsystem();
+
+ /**
+ * The meta object literal for the '<em><b>Base Component</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUBSYSTEM__BASE_COMPONENT = eINSTANCE
+ .getSubsystem_Base_Component();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TraceImpl <em>Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.TraceImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getTrace()
+ * @generated
+ */
+ EClass TRACE = eINSTANCE.getTrace();
+
+ /**
+ * The meta object literal for the '<em><b>Base Abstraction</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRACE__BASE_ABSTRACTION = eINSTANCE
+ .getTrace_Base_Abstraction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.TypeImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getType()
+ * @generated
+ */
+ EClass TYPE = eINSTANCE.getType();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE__BASE_CLASS = eINSTANCE.getType_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Cannot Be Specification</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation TYPE___VALIDATE_CANNOT_BE_SPECIFICATION__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getType__ValidateCannotBeSpecification__DiagnosticChain_Map();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.uml2.uml.profile.l2.internal.impl.UtilityImpl <em>Utility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.UtilityImpl
+ * @see org.eclipse.uml2.uml.profile.l2.internal.impl.L2PackageImpl#getUtility()
+ * @generated
+ */
+ EClass UTILITY = eINSTANCE.getUtility();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference UTILITY__BASE_CLASS = eINSTANCE.getUtility_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Validate Is Utility</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation UTILITY___VALIDATE_IS_UTILITY__DIAGNOSTICCHAIN_MAP = eINSTANCE
+ .getUtility__ValidateIsUtility__DiagnosticChain_Map();
+
+ }
+
+} //L2Package
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Plugin.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Plugin.java
new file mode 100644
index 0000000..86e5595
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/L2Plugin.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the L2 model plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class L2Plugin
+ extends EMFPlugin {
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final L2Plugin INSTANCE = new L2Plugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2Plugin() {
+ super(new ResourceLocator[]{});
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation
+ extends EclipsePlugin {
+
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Library.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Library.java
new file mode 100644
index 0000000..45cba2d
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Library.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A static or dynamic library file. Subclass of «File».
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getLibrary()
+ * @model
+ * @generated
+ */
+public interface Library
+ extends File {
+} // Library
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Metaclass.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Metaclass.java
new file mode 100644
index 0000000..32dce2e
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Metaclass.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Metaclass</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class whose instances are also classes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Metaclass#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getMetaclass()
+ * @model
+ * @generated
+ */
+public interface Metaclass
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getMetaclass_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Metaclass#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Metaclass
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ModelLibrary.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ModelLibrary.java
new file mode 100644
index 0000000..9f6335d
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/ModelLibrary.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Library</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A package that contains model elements that are intended to be reused by other packages. Model libraries are frequently used in conjunction with applied profiles. This is expressed by defining a dependency between a profile and a model library package, or by defining a model library as contained in a profile package. The classes in a model library are not stereotypes and tagged definitions extending the metamodel. A model library is analogous to a class library in some programming languages. When a model library is defined as a part of a profile, it is imported or deleted with the application or removal of the profile. The profile is implicitly applied to its model library. In the other case, when the model library is defined as an external package imported by a profile, the profile requires that the model library be there in the model at the stage of the profile application. The application or the removal of the profile does not affect the presence of the model library elements.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.ModelLibrary#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getModelLibrary()
+ * @model
+ * @generated
+ */
+public interface ModelLibrary
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getModelLibrary_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.ModelLibrary#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // ModelLibrary
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Process.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Process.java
new file mode 100644
index 0000000..5265e2e
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Process.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Component;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Process</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A transaction based component.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Process#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getProcess()
+ * @model
+ * @generated
+ */
+public interface Process
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Component</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Component</em>' reference.
+ * @see #setBase_Component(Component)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getProcess_Base_Component()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Component getBase_Component();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Process#getBase_Component <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Component</em>' reference.
+ * @see #getBase_Component()
+ * @generated
+ */
+ void setBase_Component(Component value);
+
+} // Process
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Realization.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Realization.java
new file mode 100644
index 0000000..36b51e1
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Realization.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Realization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A classifier that specifies a domain of objects and that also defines the physical implementation of those objects. For example, a Component stereotyped by «realization» will only have realizing Classifiers that implement behavior specified by a separate «Specification» Component. See «specification». This differs from «ImplementationClass» because an «ImplementationClass» is a realization of a Class that can have features such as attributes and methods that are useful to system designers.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Realization#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getRealization()
+ * @model
+ * @generated
+ */
+public interface Realization
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Classifier</em>' reference.
+ * @see #setBase_Classifier(Classifier)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getRealization_Base_Classifier()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Classifier getBase_Classifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Realization#getBase_Classifier <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Classifier</em>' reference.
+ * @see #getBase_Classifier()
+ * @generated
+ */
+ void setBase_Classifier(Classifier value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Classifier.extension_ImplementationClass->isEmpty()
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateCannotBeImplementationClass(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Realization
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Refine.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Refine.java
new file mode 100644
index 0000000..1578953
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Refine.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Abstraction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Refine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a refinement relationship between model elements at different semantic levels, such as analysis and design. The mapping specifies the relationship between the two elements or sets of elements. The mapping may or may not be computable, and it may be unidirectional or bidirectional. Refinement can be used to model transformations from analysis to design and other such changes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Refine#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getRefine()
+ * @model
+ * @generated
+ */
+public interface Refine
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Abstraction</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Abstraction</em>' reference.
+ * @see #setBase_Abstraction(Abstraction)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getRefine_Base_Abstraction()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Abstraction getBase_Abstraction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Refine#getBase_Abstraction <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Abstraction</em>' reference.
+ * @see #getBase_Abstraction()
+ * @generated
+ */
+ void setBase_Abstraction(Abstraction value);
+
+} // Refine
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Responsibility.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Responsibility.java
new file mode 100644
index 0000000..a9c45b3
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Responsibility.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Usage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Responsibility</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A contract or an obligation of an element in its relationship to other elements.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Responsibility#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getResponsibility()
+ * @model
+ * @generated
+ */
+public interface Responsibility
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Usage</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Usage</em>' reference.
+ * @see #setBase_Usage(Usage)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getResponsibility_Base_Usage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Usage getBase_Usage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Responsibility#getBase_Usage <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Usage</em>' reference.
+ * @see #getBase_Usage()
+ * @generated
+ */
+ void setBase_Usage(Usage value);
+
+} // Responsibility
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Script.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Script.java
new file mode 100644
index 0000000..4c9b0fb
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Script.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Script</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A script file that can be interpreted by a computer system. Subclass of «File».
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getScript()
+ * @model
+ * @generated
+ */
+public interface Script
+ extends File {
+} // Script
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Send.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Send.java
new file mode 100644
index 0000000..41d9736
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Send.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Usage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Send</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A usage dependency whose client is an operation and whose supplier is a signal, specifying that the client sends the supplier signal.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Send#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSend()
+ * @model
+ * @generated
+ */
+public interface Send
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Usage</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Usage</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Usage</em>' reference.
+ * @see #setBase_Usage(Usage)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSend_Base_Usage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Usage getBase_Usage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Send#getBase_Usage <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Usage</em>' reference.
+ * @see #getBase_Usage()
+ * @generated
+ */
+ void setBase_Usage(Usage value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Signal))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateClientOperationSendsSupplierSignal(
+ DiagnosticChain diagnostics, Map<Object, Object> context);
+
+} // Send
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Service.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Service.java
new file mode 100644
index 0000000..bbab8ed
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Service.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Component;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A stateless, functional component (computes a value).
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Service#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getService()
+ * @model
+ * @generated
+ */
+public interface Service
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Component</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Component</em>' reference.
+ * @see #setBase_Component(Component)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getService_Base_Component()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Component getBase_Component();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Service#getBase_Component <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Component</em>' reference.
+ * @see #getBase_Component()
+ * @generated
+ */
+ void setBase_Component(Component value);
+
+} // Service
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Source.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Source.java
new file mode 100644
index 0000000..d9b0581
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Source.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Source</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A source file that can be compiled into an executable file. Subclass of «File».
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSource()
+ * @model
+ * @generated
+ */
+public interface Source
+ extends File {
+} // Source
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Specification.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Specification.java
new file mode 100644
index 0000000..641f6b1
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Specification.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Specification#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSpecification()
+ * @model
+ * @generated
+ */
+public interface Specification
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Classifier</em>' reference.
+ * @see #setBase_Classifier(Classifier)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSpecification_Base_Classifier()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Classifier getBase_Classifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Specification#getBase_Classifier <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Classifier</em>' reference.
+ * @see #getBase_Classifier()
+ * @generated
+ */
+ void setBase_Classifier(Classifier value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Classifier.extension_Type->isEmpty()
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateCannotBeType(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Specification
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Subsystem.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Subsystem.java
new file mode 100644
index 0000000..36437b4
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Subsystem.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Component;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Subsystem</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A unit of hierarchical decomposition for large systems. A subsystem is commonly instantiated indirectly. Definitions of subsystems vary widely among domains and methods, and it is expected that domain and method profiles will specialize this construct. A subsystem may be defined to have specification and realization elements. See also: «Specification» and «Realization».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Subsystem#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSubsystem()
+ * @model
+ * @generated
+ */
+public interface Subsystem
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Component</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Component</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Component</em>' reference.
+ * @see #setBase_Component(Component)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getSubsystem_Base_Component()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Component getBase_Component();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Subsystem#getBase_Component <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Component</em>' reference.
+ * @see #getBase_Component()
+ * @generated
+ */
+ void setBase_Component(Component value);
+
+} // Subsystem
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Trace.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Trace.java
new file mode 100644
index 0000000..11b2afb
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Trace.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Abstraction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a trace relationship between model elements or sets of model elements that represent the same concept in different models. Traces are mainly used for tracking requirements and changes across models. Since model changes can occur in both directions, the directionality of the dependency can often be ignored. The mapping specifies the relationship between the two, but it is rarely computable and is usually informal.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Trace#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getTrace()
+ * @model
+ * @generated
+ */
+public interface Trace
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Abstraction</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Abstraction</em>' reference.
+ * @see #setBase_Abstraction(Abstraction)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getTrace_Base_Abstraction()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Abstraction getBase_Abstraction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Trace#getBase_Abstraction <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Abstraction</em>' reference.
+ * @see #getBase_Abstraction()
+ * @generated
+ */
+ void setBase_Abstraction(Abstraction value);
+
+} // Trace
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Type.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Type.java
new file mode 100644
index 0000000..7ab927f
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Type.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class that specifies a domain of objects together with the operations applicable to the objects, without defining the physical implementation of those objects. However, it may have attributes and associations. Behavioral specifications for type operations may be expressed using, for example, activity diagrams. An object may have at most one implementation class, however it may conform to multiple different types. See also: «ImplementationClass».
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Type#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getType()
+ * @model
+ * @generated
+ */
+public interface Type
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getType_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Type#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.extension_Specification->isEmpty()
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateCannotBeSpecification(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Type
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Utility.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Utility.java
new file mode 100644
index 0000000..618ec79
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/Utility.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Utility</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A class that has no instances, but rather denotes a named collection of static attributes and static operations, all of which are class-scoped.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Utility#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getUtility()
+ * @model
+ * @generated
+ */
+public interface Utility
+ extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#getUtility_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.Utility#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.feature->forAll(isStatic)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean validateIsUtility(DiagnosticChain diagnostics,
+ Map<Object, Object> context);
+
+} // Utility
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/AuxiliaryImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/AuxiliaryImpl.java
new file mode 100644
index 0000000..f12b64e
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/AuxiliaryImpl.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auxiliary</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.AuxiliaryImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AuxiliaryImpl
+ extends EObjectImpl
+ implements Auxiliary {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AuxiliaryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.AUXILIARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.AUXILIARY__BASE_CLASS, oldBase_Class,
+ base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.AUXILIARY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.AUXILIARY__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.AUXILIARY__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.AUXILIARY__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.AUXILIARY__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AuxiliaryImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CallImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CallImpl.java
new file mode 100644
index 0000000..b741b34
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CallImpl.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Usage;
+
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.CallOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CallImpl#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallImpl
+ extends EObjectImpl
+ implements Call {
+
+ /**
+ * The cached value of the '{@link #getBase_Usage() <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Usage()
+ * @generated
+ * @ordered
+ */
+ protected Usage base_Usage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.CALL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage getBase_Usage() {
+ if (base_Usage != null && base_Usage.eIsProxy()) {
+ InternalEObject oldBase_Usage = (InternalEObject) base_Usage;
+ base_Usage = (Usage) eResolveProxy(oldBase_Usage);
+ if (base_Usage != oldBase_Usage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.CALL__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+ }
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage basicGetBase_Usage() {
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Usage(Usage newBase_Usage) {
+ Usage oldBase_Usage = base_Usage;
+ base_Usage = newBase_Usage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.CALL__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClientAndSupplierAreOperations(
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return CallOperations.validateClientAndSupplierAreOperations(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.CALL__BASE_USAGE :
+ if (resolve)
+ return getBase_Usage();
+ return basicGetBase_Usage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.CALL__BASE_USAGE :
+ setBase_Usage((Usage) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.CALL__BASE_USAGE :
+ setBase_Usage((Usage) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.CALL__BASE_USAGE :
+ return base_Usage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.CALL___VALIDATE_CLIENT_AND_SUPPLIER_ARE_OPERATIONS__DIAGNOSTICCHAIN_MAP :
+ return validateClientAndSupplierAreOperations(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //CallImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CreateImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CreateImpl.java
new file mode 100644
index 0000000..3c4c98d
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/CreateImpl.java
@@ -0,0 +1,278 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Usage;
+
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.CreateOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Create</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.CreateImpl#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CreateImpl
+ extends EObjectImpl
+ implements Create {
+
+ /**
+ * The cached value of the '{@link #getBase_BehavioralFeature() <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ * @ordered
+ */
+ protected BehavioralFeature base_BehavioralFeature;
+
+ /**
+ * The cached value of the '{@link #getBase_Usage() <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Usage()
+ * @generated
+ * @ordered
+ */
+ protected Usage base_Usage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.CREATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature getBase_BehavioralFeature() {
+ if (base_BehavioralFeature != null && base_BehavioralFeature.eIsProxy()) {
+ InternalEObject oldBase_BehavioralFeature = (InternalEObject) base_BehavioralFeature;
+ base_BehavioralFeature = (BehavioralFeature) eResolveProxy(oldBase_BehavioralFeature);
+ if (base_BehavioralFeature != oldBase_BehavioralFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.CREATE__BASE_BEHAVIORAL_FEATURE,
+ oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+ }
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature basicGetBase_BehavioralFeature() {
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_BehavioralFeature(
+ BehavioralFeature newBase_BehavioralFeature) {
+ BehavioralFeature oldBase_BehavioralFeature = base_BehavioralFeature;
+ base_BehavioralFeature = newBase_BehavioralFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.CREATE__BASE_BEHAVIORAL_FEATURE,
+ oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage getBase_Usage() {
+ if (base_Usage != null && base_Usage.eIsProxy()) {
+ InternalEObject oldBase_Usage = (InternalEObject) base_Usage;
+ base_Usage = (Usage) eResolveProxy(oldBase_Usage);
+ if (base_Usage != oldBase_Usage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.CREATE__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+ }
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage basicGetBase_Usage() {
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Usage(Usage newBase_Usage) {
+ Usage oldBase_Usage = base_Usage;
+ base_Usage = newBase_Usage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.CREATE__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClientAndSupplierAreClassifiers(
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return CreateOperations.validateClientAndSupplierAreClassifiers(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.CREATE__BASE_BEHAVIORAL_FEATURE :
+ if (resolve)
+ return getBase_BehavioralFeature();
+ return basicGetBase_BehavioralFeature();
+ case L2Package.CREATE__BASE_USAGE :
+ if (resolve)
+ return getBase_Usage();
+ return basicGetBase_Usage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.CREATE__BASE_BEHAVIORAL_FEATURE :
+ setBase_BehavioralFeature((BehavioralFeature) newValue);
+ return;
+ case L2Package.CREATE__BASE_USAGE :
+ setBase_Usage((Usage) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.CREATE__BASE_BEHAVIORAL_FEATURE :
+ setBase_BehavioralFeature((BehavioralFeature) null);
+ return;
+ case L2Package.CREATE__BASE_USAGE :
+ setBase_Usage((Usage) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.CREATE__BASE_BEHAVIORAL_FEATURE :
+ return base_BehavioralFeature != null;
+ case L2Package.CREATE__BASE_USAGE :
+ return base_Usage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.CREATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP :
+ return validateClientAndSupplierAreClassifiers(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //CreateImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DeriveImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DeriveImpl.java
new file mode 100644
index 0000000..ec9fbb5
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DeriveImpl.java
@@ -0,0 +1,299 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derive</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DeriveImpl#getComputation <em>Computation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeriveImpl
+ extends EObjectImpl
+ implements Derive {
+
+ /**
+ * The cached value of the '{@link #getBase_Abstraction() <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Abstraction()
+ * @generated
+ * @ordered
+ */
+ protected Abstraction base_Abstraction;
+
+ /**
+ * The cached value of the '{@link #getComputation() <em>Computation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComputation()
+ * @generated
+ * @ordered
+ */
+ protected ValueSpecification computation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeriveImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.DERIVE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction getBase_Abstraction() {
+ if (base_Abstraction != null && base_Abstraction.eIsProxy()) {
+ InternalEObject oldBase_Abstraction = (InternalEObject) base_Abstraction;
+ base_Abstraction = (Abstraction) eResolveProxy(oldBase_Abstraction);
+ if (base_Abstraction != oldBase_Abstraction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.DERIVE__BASE_ABSTRACTION,
+ oldBase_Abstraction, base_Abstraction));
+ }
+ }
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction basicGetBase_Abstraction() {
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Abstraction(Abstraction newBase_Abstraction) {
+ Abstraction oldBase_Abstraction = base_Abstraction;
+ base_Abstraction = newBase_Abstraction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.DERIVE__BASE_ABSTRACTION, oldBase_Abstraction,
+ base_Abstraction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getComputation() {
+ if (computation != null && computation.eIsProxy()) {
+ InternalEObject oldComputation = (InternalEObject) computation;
+ computation = (ValueSpecification) eResolveProxy(oldComputation);
+ if (computation != oldComputation) {
+ InternalEObject newComputation = (InternalEObject) computation;
+ NotificationChain msgs = oldComputation.eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - L2Package.DERIVE__COMPUTATION,
+ null, null);
+ if (newComputation.eInternalContainer() == null) {
+ msgs = newComputation.eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - L2Package.DERIVE__COMPUTATION,
+ null, msgs);
+ }
+ if (msgs != null)
+ msgs.dispatch();
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.DERIVE__COMPUTATION, oldComputation,
+ computation));
+ }
+ }
+ return computation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetComputation() {
+ return computation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetComputation(
+ ValueSpecification newComputation, NotificationChain msgs) {
+ ValueSpecification oldComputation = computation;
+ computation = newComputation;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this,
+ Notification.SET, L2Package.DERIVE__COMPUTATION,
+ oldComputation, newComputation);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setComputation(ValueSpecification newComputation) {
+ if (newComputation != computation) {
+ NotificationChain msgs = null;
+ if (computation != null)
+ msgs = ((InternalEObject) computation).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - L2Package.DERIVE__COMPUTATION,
+ null, msgs);
+ if (newComputation != null)
+ msgs = ((InternalEObject) newComputation).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - L2Package.DERIVE__COMPUTATION,
+ null, msgs);
+ msgs = basicSetComputation(newComputation, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.DERIVE__COMPUTATION, newComputation, newComputation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case L2Package.DERIVE__COMPUTATION :
+ return basicSetComputation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.DERIVE__BASE_ABSTRACTION :
+ if (resolve)
+ return getBase_Abstraction();
+ return basicGetBase_Abstraction();
+ case L2Package.DERIVE__COMPUTATION :
+ if (resolve)
+ return getComputation();
+ return basicGetComputation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.DERIVE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) newValue);
+ return;
+ case L2Package.DERIVE__COMPUTATION :
+ setComputation((ValueSpecification) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.DERIVE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) null);
+ return;
+ case L2Package.DERIVE__COMPUTATION :
+ setComputation((ValueSpecification) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.DERIVE__BASE_ABSTRACTION :
+ return base_Abstraction != null;
+ case L2Package.DERIVE__COMPUTATION :
+ return computation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DeriveImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DestroyImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DestroyImpl.java
new file mode 100644
index 0000000..52cce77
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DestroyImpl.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.BehavioralFeature;
+
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Destroy</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DestroyImpl#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DestroyImpl
+ extends EObjectImpl
+ implements Destroy {
+
+ /**
+ * The cached value of the '{@link #getBase_BehavioralFeature() <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ * @ordered
+ */
+ protected BehavioralFeature base_BehavioralFeature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DestroyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.DESTROY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature getBase_BehavioralFeature() {
+ if (base_BehavioralFeature != null && base_BehavioralFeature.eIsProxy()) {
+ InternalEObject oldBase_BehavioralFeature = (InternalEObject) base_BehavioralFeature;
+ base_BehavioralFeature = (BehavioralFeature) eResolveProxy(oldBase_BehavioralFeature);
+ if (base_BehavioralFeature != oldBase_BehavioralFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE,
+ oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+ }
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature basicGetBase_BehavioralFeature() {
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_BehavioralFeature(
+ BehavioralFeature newBase_BehavioralFeature) {
+ BehavioralFeature oldBase_BehavioralFeature = base_BehavioralFeature;
+ base_BehavioralFeature = newBase_BehavioralFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE,
+ oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE :
+ if (resolve)
+ return getBase_BehavioralFeature();
+ return basicGetBase_BehavioralFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE :
+ setBase_BehavioralFeature((BehavioralFeature) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE :
+ setBase_BehavioralFeature((BehavioralFeature) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.DESTROY__BASE_BEHAVIORAL_FEATURE :
+ return base_BehavioralFeature != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DestroyImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DocumentImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DocumentImpl.java
new file mode 100644
index 0000000..a618593
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/DocumentImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.DocumentImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DocumentImpl
+ extends FileImpl
+ implements Document {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DocumentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.DOCUMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.DOCUMENT__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.DOCUMENT__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetBase_Artifact() {
+ return base_Artifact != null;
+ }
+
+} //DocumentImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/EntityImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/EntityImpl.java
new file mode 100644
index 0000000..9abc7d4
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/EntityImpl.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Component;
+
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Entity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.EntityImpl#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EntityImpl
+ extends EObjectImpl
+ implements Entity {
+
+ /**
+ * The cached value of the '{@link #getBase_Component() <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Component()
+ * @generated
+ * @ordered
+ */
+ protected Component base_Component;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EntityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.ENTITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getBase_Component() {
+ if (base_Component != null && base_Component.eIsProxy()) {
+ InternalEObject oldBase_Component = (InternalEObject) base_Component;
+ base_Component = (Component) eResolveProxy(oldBase_Component);
+ if (base_Component != oldBase_Component) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.ENTITY__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+ }
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component basicGetBase_Component() {
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Component(Component newBase_Component) {
+ Component oldBase_Component = base_Component;
+ base_Component = newBase_Component;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.ENTITY__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.ENTITY__BASE_COMPONENT :
+ if (resolve)
+ return getBase_Component();
+ return basicGetBase_Component();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.ENTITY__BASE_COMPONENT :
+ setBase_Component((Component) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.ENTITY__BASE_COMPONENT :
+ setBase_Component((Component) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.ENTITY__BASE_COMPONENT :
+ return base_Component != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EntityImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ExecutableImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ExecutableImpl.java
new file mode 100644
index 0000000..431c666
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ExecutableImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Executable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ExecutableImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExecutableImpl
+ extends FileImpl
+ implements Executable {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.EXECUTABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.EXECUTABLE__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.EXECUTABLE__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetBase_Artifact() {
+ return base_Artifact != null;
+ }
+
+} //ExecutableImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FileImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FileImpl.java
new file mode 100644
index 0000000..4c908a1
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FileImpl.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.File;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>File</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FileImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FileImpl
+ extends EObjectImpl
+ implements File {
+
+ /**
+ * The cached value of the '{@link #getBase_Artifact() <em>Base Artifact</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Artifact()
+ * @generated
+ * @ordered
+ */
+ protected Artifact base_Artifact;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FileImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.FILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.FILE__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.FILE__BASE_ARTIFACT, oldBase_Artifact, base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.FILE__BASE_ARTIFACT :
+ if (resolve)
+ return getBase_Artifact();
+ return basicGetBase_Artifact();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.FILE__BASE_ARTIFACT :
+ setBase_Artifact((Artifact) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.FILE__BASE_ARTIFACT :
+ setBase_Artifact((Artifact) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.FILE__BASE_ARTIFACT :
+ return base_Artifact != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FileImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FocusImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FocusImpl.java
new file mode 100644
index 0000000..c3458c6
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FocusImpl.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Focus</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FocusImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FocusImpl
+ extends EObjectImpl
+ implements Focus {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FocusImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.FOCUS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.FOCUS__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.FOCUS__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.FOCUS__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.FOCUS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.FOCUS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.FOCUS__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FocusImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FrameworkImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FrameworkImpl.java
new file mode 100644
index 0000000..39119c1
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/FrameworkImpl.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Framework</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.FrameworkImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FrameworkImpl
+ extends EObjectImpl
+ implements Framework {
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FrameworkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.FRAMEWORK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject) base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.FRAMEWORK__BASE_PACKAGE, oldBase_Package,
+ base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.FRAMEWORK__BASE_PACKAGE, oldBase_Package,
+ base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.FRAMEWORK__BASE_PACKAGE :
+ if (resolve)
+ return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.FRAMEWORK__BASE_PACKAGE :
+ setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.FRAMEWORK__BASE_PACKAGE :
+ setBase_Package((org.eclipse.uml2.uml.Package) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.FRAMEWORK__BASE_PACKAGE :
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FrameworkImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementImpl.java
new file mode 100644
index 0000000..119d6f8
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementImpl.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Component;
+
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.ImplementOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementImpl#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ImplementImpl
+ extends EObjectImpl
+ implements Implement {
+
+ /**
+ * The cached value of the '{@link #getBase_Component() <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Component()
+ * @generated
+ * @ordered
+ */
+ protected Component base_Component;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.IMPLEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getBase_Component() {
+ if (base_Component != null && base_Component.eIsProxy()) {
+ InternalEObject oldBase_Component = (InternalEObject) base_Component;
+ base_Component = (Component) eResolveProxy(oldBase_Component);
+ if (base_Component != oldBase_Component) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.IMPLEMENT__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+ }
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component basicGetBase_Component() {
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Component(Component newBase_Component) {
+ Component oldBase_Component = base_Component;
+ base_Component = newBase_Component;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.IMPLEMENT__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImplementsSpecification(DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return ImplementOperations.validateImplementsSpecification(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.IMPLEMENT__BASE_COMPONENT :
+ if (resolve)
+ return getBase_Component();
+ return basicGetBase_Component();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.IMPLEMENT__BASE_COMPONENT :
+ setBase_Component((Component) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.IMPLEMENT__BASE_COMPONENT :
+ setBase_Component((Component) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.IMPLEMENT__BASE_COMPONENT :
+ return base_Component != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.IMPLEMENT___VALIDATE_IMPLEMENTS_SPECIFICATION__DIAGNOSTICCHAIN_MAP :
+ return validateImplementsSpecification(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //ImplementImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementationClassImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementationClassImpl.java
new file mode 100644
index 0000000..dfac4b2
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ImplementationClassImpl.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.ImplementationClassOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implementation Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ImplementationClassImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ImplementationClassImpl
+ extends EObjectImpl
+ implements ImplementationClass {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.IMPLEMENTATION_CLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.IMPLEMENTATION_CLASS__BASE_CLASS,
+ oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.IMPLEMENTATION_CLASS__BASE_CLASS, oldBase_Class,
+ base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotBeRealization(DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return ImplementationClassOperations.validateCannotBeRealization(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.IMPLEMENTATION_CLASS__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.IMPLEMENTATION_CLASS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.IMPLEMENTATION_CLASS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.IMPLEMENTATION_CLASS__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.IMPLEMENTATION_CLASS___VALIDATE_CANNOT_BE_REALIZATION__DIAGNOSTICCHAIN_MAP :
+ return validateCannotBeRealization(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //ImplementationClassImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/InstantiateImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/InstantiateImpl.java
new file mode 100644
index 0000000..a096d31
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/InstantiateImpl.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Usage;
+
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.InstantiateOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instantiate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.InstantiateImpl#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstantiateImpl
+ extends EObjectImpl
+ implements Instantiate {
+
+ /**
+ * The cached value of the '{@link #getBase_Usage() <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Usage()
+ * @generated
+ * @ordered
+ */
+ protected Usage base_Usage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstantiateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.INSTANTIATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage getBase_Usage() {
+ if (base_Usage != null && base_Usage.eIsProxy()) {
+ InternalEObject oldBase_Usage = (InternalEObject) base_Usage;
+ base_Usage = (Usage) eResolveProxy(oldBase_Usage);
+ if (base_Usage != oldBase_Usage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.INSTANTIATE__BASE_USAGE, oldBase_Usage,
+ base_Usage));
+ }
+ }
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage basicGetBase_Usage() {
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Usage(Usage newBase_Usage) {
+ Usage oldBase_Usage = base_Usage;
+ base_Usage = newBase_Usage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.INSTANTIATE__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClientAndSupplierAreClassifiers(
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return InstantiateOperations.validateClientAndSupplierAreClassifiers(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.INSTANTIATE__BASE_USAGE :
+ if (resolve)
+ return getBase_Usage();
+ return basicGetBase_Usage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.INSTANTIATE__BASE_USAGE :
+ setBase_Usage((Usage) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.INSTANTIATE__BASE_USAGE :
+ setBase_Usage((Usage) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.INSTANTIATE__BASE_USAGE :
+ return base_Usage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.INSTANTIATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP :
+ return validateClientAndSupplierAreClassifiers(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //InstantiateImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2FactoryImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2FactoryImpl.java
new file mode 100644
index 0000000..6347008
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2FactoryImpl.java
@@ -0,0 +1,474 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Factory;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Library;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+import org.eclipse.uml2.uml.profile.l2.Script;
+import org.eclipse.uml2.uml.profile.l2.Send;
+import org.eclipse.uml2.uml.profile.l2.Service;
+import org.eclipse.uml2.uml.profile.l2.Source;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+import org.eclipse.uml2.uml.profile.l2.Type;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class L2FactoryImpl
+ extends EFactoryImpl
+ implements L2Factory {
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static L2Factory init() {
+ try {
+ L2Factory theL2Factory = (L2Factory) EPackage.Registry.INSTANCE
+ .getEFactory("http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2"); //$NON-NLS-1$
+ if (theL2Factory != null) {
+ return theL2Factory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new L2FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2FactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case L2Package.AUXILIARY :
+ return createAuxiliary();
+ case L2Package.CALL :
+ return createCall();
+ case L2Package.CREATE :
+ return createCreate();
+ case L2Package.DERIVE :
+ return createDerive();
+ case L2Package.DESTROY :
+ return createDestroy();
+ case L2Package.DOCUMENT :
+ return createDocument();
+ case L2Package.ENTITY :
+ return createEntity();
+ case L2Package.EXECUTABLE :
+ return createExecutable();
+ case L2Package.FOCUS :
+ return createFocus();
+ case L2Package.FRAMEWORK :
+ return createFramework();
+ case L2Package.IMPLEMENT :
+ return createImplement();
+ case L2Package.IMPLEMENTATION_CLASS :
+ return createImplementationClass();
+ case L2Package.INSTANTIATE :
+ return createInstantiate();
+ case L2Package.LIBRARY :
+ return createLibrary();
+ case L2Package.METACLASS :
+ return createMetaclass();
+ case L2Package.MODEL_LIBRARY :
+ return createModelLibrary();
+ case L2Package.PROCESS :
+ return createProcess();
+ case L2Package.REALIZATION :
+ return createRealization();
+ case L2Package.REFINE :
+ return createRefine();
+ case L2Package.RESPONSIBILITY :
+ return createResponsibility();
+ case L2Package.SCRIPT :
+ return createScript();
+ case L2Package.SEND :
+ return createSend();
+ case L2Package.SERVICE :
+ return createService();
+ case L2Package.SOURCE :
+ return createSource();
+ case L2Package.SPECIFICATION :
+ return createSpecification();
+ case L2Package.SUBSYSTEM :
+ return createSubsystem();
+ case L2Package.TRACE :
+ return createTrace();
+ case L2Package.TYPE :
+ return createType();
+ case L2Package.UTILITY :
+ return createUtility();
+ default :
+ throw new IllegalArgumentException(
+ "The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Auxiliary createAuxiliary() {
+ AuxiliaryImpl auxiliary = new AuxiliaryImpl();
+ return auxiliary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Call createCall() {
+ CallImpl call = new CallImpl();
+ return call;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Create createCreate() {
+ CreateImpl create = new CreateImpl();
+ return create;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Derive createDerive() {
+ DeriveImpl derive = new DeriveImpl();
+ return derive;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Destroy createDestroy() {
+ DestroyImpl destroy = new DestroyImpl();
+ return destroy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Document createDocument() {
+ DocumentImpl document = new DocumentImpl();
+ return document;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Entity createEntity() {
+ EntityImpl entity = new EntityImpl();
+ return entity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Executable createExecutable() {
+ ExecutableImpl executable = new ExecutableImpl();
+ return executable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Focus createFocus() {
+ FocusImpl focus = new FocusImpl();
+ return focus;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Framework createFramework() {
+ FrameworkImpl framework = new FrameworkImpl();
+ return framework;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implement createImplement() {
+ ImplementImpl implement = new ImplementImpl();
+ return implement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ImplementationClass createImplementationClass() {
+ ImplementationClassImpl implementationClass = new ImplementationClassImpl();
+ return implementationClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Instantiate createInstantiate() {
+ InstantiateImpl instantiate = new InstantiateImpl();
+ return instantiate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library createLibrary() {
+ LibraryImpl library = new LibraryImpl();
+ return library;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Metaclass createMetaclass() {
+ MetaclassImpl metaclass = new MetaclassImpl();
+ return metaclass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelLibrary createModelLibrary() {
+ ModelLibraryImpl modelLibrary = new ModelLibraryImpl();
+ return modelLibrary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.profile.l2.Process createProcess() {
+ ProcessImpl process = new ProcessImpl();
+ return process;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Realization createRealization() {
+ RealizationImpl realization = new RealizationImpl();
+ return realization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Refine createRefine() {
+ RefineImpl refine = new RefineImpl();
+ return refine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Responsibility createResponsibility() {
+ ResponsibilityImpl responsibility = new ResponsibilityImpl();
+ return responsibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Script createScript() {
+ ScriptImpl script = new ScriptImpl();
+ return script;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Send createSend() {
+ SendImpl send = new SendImpl();
+ return send;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Service createService() {
+ ServiceImpl service = new ServiceImpl();
+ return service;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Source createSource() {
+ SourceImpl source = new SourceImpl();
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Specification createSpecification() {
+ SpecificationImpl specification = new SpecificationImpl();
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Subsystem createSubsystem() {
+ SubsystemImpl subsystem = new SubsystemImpl();
+ return subsystem;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trace createTrace() {
+ TraceImpl trace = new TraceImpl();
+ return trace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createType() {
+ TypeImpl type = new TypeImpl();
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Utility createUtility() {
+ UtilityImpl utility = new UtilityImpl();
+ return utility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2Package getL2Package() {
+ return (L2Package) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static L2Package getPackage() {
+ return L2Package.eINSTANCE;
+ }
+
+} //L2FactoryImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2PackageImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2PackageImpl.java
new file mode 100644
index 0000000..090ead2
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/L2PackageImpl.java
@@ -0,0 +1,1544 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.File;
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Factory;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Library;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+import org.eclipse.uml2.uml.profile.l2.Script;
+import org.eclipse.uml2.uml.profile.l2.Send;
+import org.eclipse.uml2.uml.profile.l2.Service;
+import org.eclipse.uml2.uml.profile.l2.Source;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+import org.eclipse.uml2.uml.profile.l2.Type;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class L2PackageImpl
+ extends EPackageImpl
+ implements L2Package {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass auxiliaryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass callEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass createEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deriveEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass destroyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass entityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass focusEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass frameworkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementationClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instantiateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass libraryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass metaclassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelLibraryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass processEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass realizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass refineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass responsibilityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass scriptEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sendEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass specificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass subsystemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass traceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass utilityEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private L2PackageImpl() {
+ super(eNS_URI, L2Factory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link L2Package#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static L2Package init() {
+ if (isInited)
+ return (L2Package) EPackage.Registry.INSTANCE
+ .getEPackage(L2Package.eNS_URI);
+
+ // Obtain or create and register package
+ L2PackageImpl theL2Package = (L2PackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof L2PackageImpl
+ ? EPackage.Registry.INSTANCE.get(eNS_URI)
+ : new L2PackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theL2Package.createPackageContents();
+
+ // Initialize created meta-data
+ theL2Package.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put(theL2Package,
+ new EValidator.Descriptor() {
+
+ public EValidator getEValidator() {
+ return L2Validator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theL2Package.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(L2Package.eNS_URI, theL2Package);
+ return theL2Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAuxiliary() {
+ return auxiliaryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAuxiliary_Base_Class() {
+ return (EReference) auxiliaryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCall() {
+ return callEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCall_Base_Usage() {
+ return (EReference) callEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getCall__ValidateClientAndSupplierAreOperations__DiagnosticChain_Map() {
+ return callEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCreate() {
+ return createEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCreate_Base_BehavioralFeature() {
+ return (EReference) createEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCreate_Base_Usage() {
+ return (EReference) createEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getCreate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map() {
+ return createEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDerive() {
+ return deriveEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDerive_Base_Abstraction() {
+ return (EReference) deriveEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDerive_Computation() {
+ return (EReference) deriveEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDestroy() {
+ return destroyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDestroy_Base_BehavioralFeature() {
+ return (EReference) destroyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDocument() {
+ return documentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFile() {
+ return fileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFile_Base_Artifact() {
+ return (EReference) fileEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEntity() {
+ return entityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEntity_Base_Component() {
+ return (EReference) entityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutable() {
+ return executableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFocus() {
+ return focusEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFocus_Base_Class() {
+ return (EReference) focusEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFramework() {
+ return frameworkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFramework_Base_Package() {
+ return (EReference) frameworkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImplement() {
+ return implementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getImplement_Base_Component() {
+ return (EReference) implementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getImplement__ValidateImplementsSpecification__DiagnosticChain_Map() {
+ return implementEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImplementationClass() {
+ return implementationClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getImplementationClass_Base_Class() {
+ return (EReference) implementationClassEClass.getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getImplementationClass__ValidateCannotBeRealization__DiagnosticChain_Map() {
+ return implementationClassEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstantiate() {
+ return instantiateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstantiate_Base_Usage() {
+ return (EReference) instantiateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getInstantiate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map() {
+ return instantiateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLibrary() {
+ return libraryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMetaclass() {
+ return metaclassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMetaclass_Base_Class() {
+ return (EReference) metaclassEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelLibrary() {
+ return modelLibraryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelLibrary_Base_Package() {
+ return (EReference) modelLibraryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProcess() {
+ return processEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProcess_Base_Component() {
+ return (EReference) processEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRealization() {
+ return realizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRealization_Base_Classifier() {
+ return (EReference) realizationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getRealization__ValidateCannotBeImplementationClass__DiagnosticChain_Map() {
+ return realizationEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRefine() {
+ return refineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRefine_Base_Abstraction() {
+ return (EReference) refineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getResponsibility() {
+ return responsibilityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getResponsibility_Base_Usage() {
+ return (EReference) responsibilityEClass.getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getScript() {
+ return scriptEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSend() {
+ return sendEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSend_Base_Usage() {
+ return (EReference) sendEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSend__ValidateClientOperationSendsSupplierSignal__DiagnosticChain_Map() {
+ return sendEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getService() {
+ return serviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getService_Base_Component() {
+ return (EReference) serviceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSource() {
+ return sourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSpecification() {
+ return specificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSpecification_Base_Classifier() {
+ return (EReference) specificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSpecification__ValidateCannotBeType__DiagnosticChain_Map() {
+ return specificationEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSubsystem() {
+ return subsystemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSubsystem_Base_Component() {
+ return (EReference) subsystemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrace() {
+ return traceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrace_Base_Abstraction() {
+ return (EReference) traceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getType() {
+ return typeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getType_Base_Class() {
+ return (EReference) typeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getType__ValidateCannotBeSpecification__DiagnosticChain_Map() {
+ return typeEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUtility() {
+ return utilityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUtility_Base_Class() {
+ return (EReference) utilityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getUtility__ValidateIsUtility__DiagnosticChain_Map() {
+ return utilityEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2Factory getL2Factory() {
+ return (L2Factory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated)
+ return;
+ isCreated = true;
+
+ // Create classes and their features
+ auxiliaryEClass = createEClass(AUXILIARY);
+ createEReference(auxiliaryEClass, AUXILIARY__BASE_CLASS);
+
+ callEClass = createEClass(CALL);
+ createEReference(callEClass, CALL__BASE_USAGE);
+ createEOperation(callEClass,
+ CALL___VALIDATE_CLIENT_AND_SUPPLIER_ARE_OPERATIONS__DIAGNOSTICCHAIN_MAP);
+
+ createEClass = createEClass(CREATE);
+ createEReference(createEClass, CREATE__BASE_BEHAVIORAL_FEATURE);
+ createEReference(createEClass, CREATE__BASE_USAGE);
+ createEOperation(createEClass,
+ CREATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP);
+
+ deriveEClass = createEClass(DERIVE);
+ createEReference(deriveEClass, DERIVE__BASE_ABSTRACTION);
+ createEReference(deriveEClass, DERIVE__COMPUTATION);
+
+ destroyEClass = createEClass(DESTROY);
+ createEReference(destroyEClass, DESTROY__BASE_BEHAVIORAL_FEATURE);
+
+ documentEClass = createEClass(DOCUMENT);
+
+ fileEClass = createEClass(FILE);
+ createEReference(fileEClass, FILE__BASE_ARTIFACT);
+
+ entityEClass = createEClass(ENTITY);
+ createEReference(entityEClass, ENTITY__BASE_COMPONENT);
+
+ executableEClass = createEClass(EXECUTABLE);
+
+ focusEClass = createEClass(FOCUS);
+ createEReference(focusEClass, FOCUS__BASE_CLASS);
+
+ frameworkEClass = createEClass(FRAMEWORK);
+ createEReference(frameworkEClass, FRAMEWORK__BASE_PACKAGE);
+
+ implementEClass = createEClass(IMPLEMENT);
+ createEReference(implementEClass, IMPLEMENT__BASE_COMPONENT);
+ createEOperation(implementEClass,
+ IMPLEMENT___VALIDATE_IMPLEMENTS_SPECIFICATION__DIAGNOSTICCHAIN_MAP);
+
+ implementationClassEClass = createEClass(IMPLEMENTATION_CLASS);
+ createEReference(implementationClassEClass,
+ IMPLEMENTATION_CLASS__BASE_CLASS);
+ createEOperation(implementationClassEClass,
+ IMPLEMENTATION_CLASS___VALIDATE_CANNOT_BE_REALIZATION__DIAGNOSTICCHAIN_MAP);
+
+ instantiateEClass = createEClass(INSTANTIATE);
+ createEReference(instantiateEClass, INSTANTIATE__BASE_USAGE);
+ createEOperation(instantiateEClass,
+ INSTANTIATE___VALIDATE_CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS__DIAGNOSTICCHAIN_MAP);
+
+ libraryEClass = createEClass(LIBRARY);
+
+ metaclassEClass = createEClass(METACLASS);
+ createEReference(metaclassEClass, METACLASS__BASE_CLASS);
+
+ modelLibraryEClass = createEClass(MODEL_LIBRARY);
+ createEReference(modelLibraryEClass, MODEL_LIBRARY__BASE_PACKAGE);
+
+ processEClass = createEClass(PROCESS);
+ createEReference(processEClass, PROCESS__BASE_COMPONENT);
+
+ realizationEClass = createEClass(REALIZATION);
+ createEReference(realizationEClass, REALIZATION__BASE_CLASSIFIER);
+ createEOperation(realizationEClass,
+ REALIZATION___VALIDATE_CANNOT_BE_IMPLEMENTATION_CLASS__DIAGNOSTICCHAIN_MAP);
+
+ refineEClass = createEClass(REFINE);
+ createEReference(refineEClass, REFINE__BASE_ABSTRACTION);
+
+ responsibilityEClass = createEClass(RESPONSIBILITY);
+ createEReference(responsibilityEClass, RESPONSIBILITY__BASE_USAGE);
+
+ scriptEClass = createEClass(SCRIPT);
+
+ sendEClass = createEClass(SEND);
+ createEReference(sendEClass, SEND__BASE_USAGE);
+ createEOperation(sendEClass,
+ SEND___VALIDATE_CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL__DIAGNOSTICCHAIN_MAP);
+
+ serviceEClass = createEClass(SERVICE);
+ createEReference(serviceEClass, SERVICE__BASE_COMPONENT);
+
+ sourceEClass = createEClass(SOURCE);
+
+ specificationEClass = createEClass(SPECIFICATION);
+ createEReference(specificationEClass, SPECIFICATION__BASE_CLASSIFIER);
+ createEOperation(specificationEClass,
+ SPECIFICATION___VALIDATE_CANNOT_BE_TYPE__DIAGNOSTICCHAIN_MAP);
+
+ subsystemEClass = createEClass(SUBSYSTEM);
+ createEReference(subsystemEClass, SUBSYSTEM__BASE_COMPONENT);
+
+ traceEClass = createEClass(TRACE);
+ createEReference(traceEClass, TRACE__BASE_ABSTRACTION);
+
+ typeEClass = createEClass(TYPE);
+ createEReference(typeEClass, TYPE__BASE_CLASS);
+ createEOperation(typeEClass,
+ TYPE___VALIDATE_CANNOT_BE_SPECIFICATION__DIAGNOSTICCHAIN_MAP);
+
+ utilityEClass = createEClass(UTILITY);
+ createEReference(utilityEClass, UTILITY__BASE_CLASS);
+ createEOperation(utilityEClass,
+ UTILITY___VALIDATE_IS_UTILITY__DIAGNOSTICCHAIN_MAP);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized)
+ return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ documentEClass.getESuperTypes().add(this.getFile());
+ executableEClass.getESuperTypes().add(this.getFile());
+ libraryEClass.getESuperTypes().add(this.getFile());
+ scriptEClass.getESuperTypes().add(this.getFile());
+ sourceEClass.getESuperTypes().add(this.getFile());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(
+ auxiliaryEClass,
+ Auxiliary.class,
+ "Auxiliary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getAuxiliary_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, Auxiliary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(callEClass, Call.class,
+ "Call", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getCall_Base_Usage(),
+ theUMLPackage.getUsage(),
+ null,
+ "base_Usage", null, 1, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ EOperation op = initEOperation(
+ getCall__ValidateClientAndSupplierAreOperations__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateClientAndSupplierAreOperations", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ EGenericType g1 = createEGenericType(ecorePackage.getEMap());
+ EGenericType g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(createEClass, Create.class,
+ "Create", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getCreate_Base_BehavioralFeature(),
+ theUMLPackage.getBehavioralFeature(),
+ null,
+ "base_BehavioralFeature", null, 1, 1, Create.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getCreate_Base_Usage(),
+ theUMLPackage.getUsage(),
+ null,
+ "base_Usage", null, 1, 1, Create.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getCreate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateClientAndSupplierAreClassifiers", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(deriveEClass, Derive.class,
+ "Derive", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getDerive_Base_Abstraction(),
+ theUMLPackage.getAbstraction(),
+ null,
+ "base_Abstraction", null, 1, 1, Derive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getDerive_Computation(),
+ theUMLPackage.getValueSpecification(),
+ null,
+ "computation", null, 1, 1, Derive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(destroyEClass, Destroy.class,
+ "Destroy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getDestroy_Base_BehavioralFeature(),
+ theUMLPackage.getBehavioralFeature(),
+ null,
+ "base_BehavioralFeature", null, 1, 1, Destroy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ documentEClass,
+ Document.class,
+ "Document", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(fileEClass, File.class,
+ "File", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getFile_Base_Artifact(),
+ theUMLPackage.getArtifact(),
+ null,
+ "base_Artifact", null, 1, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(entityEClass, Entity.class,
+ "Entity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getEntity_Base_Component(),
+ theUMLPackage.getComponent(),
+ null,
+ "base_Component", null, 1, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ executableEClass,
+ Executable.class,
+ "Executable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(focusEClass, Focus.class,
+ "Focus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getFocus_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, Focus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ frameworkEClass,
+ Framework.class,
+ "Framework", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getFramework_Base_Package(),
+ theUMLPackage.getPackage(),
+ null,
+ "base_Package", null, 1, 1, Framework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ implementEClass,
+ Implement.class,
+ "Implement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getImplement_Base_Component(),
+ theUMLPackage.getComponent(),
+ null,
+ "base_Component", null, 1, 1, Implement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getImplement__ValidateImplementsSpecification__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateImplementsSpecification", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ implementationClassEClass,
+ ImplementationClass.class,
+ "ImplementationClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getImplementationClass_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, ImplementationClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getImplementationClass__ValidateCannotBeRealization__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateCannotBeRealization", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ instantiateEClass,
+ Instantiate.class,
+ "Instantiate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getInstantiate_Base_Usage(),
+ theUMLPackage.getUsage(),
+ null,
+ "base_Usage", null, 1, 1, Instantiate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getInstantiate__ValidateClientAndSupplierAreClassifiers__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateClientAndSupplierAreClassifiers", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(libraryEClass, Library.class,
+ "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(
+ metaclassEClass,
+ Metaclass.class,
+ "Metaclass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getMetaclass_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, Metaclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ modelLibraryEClass,
+ ModelLibrary.class,
+ "ModelLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getModelLibrary_Base_Package(),
+ theUMLPackage.getPackage(),
+ null,
+ "base_Package", null, 1, 1, ModelLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(processEClass,
+ org.eclipse.uml2.uml.profile.l2.Process.class,
+ "Process", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getProcess_Base_Component(),
+ theUMLPackage.getComponent(),
+ null,
+ "base_Component", null, 1, 1, org.eclipse.uml2.uml.profile.l2.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ realizationEClass,
+ Realization.class,
+ "Realization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getRealization_Base_Classifier(),
+ theUMLPackage.getClassifier(),
+ null,
+ "base_Classifier", null, 1, 1, Realization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getRealization__ValidateCannotBeImplementationClass__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateCannotBeImplementationClass", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(refineEClass, Refine.class,
+ "Refine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getRefine_Base_Abstraction(),
+ theUMLPackage.getAbstraction(),
+ null,
+ "base_Abstraction", null, 1, 1, Refine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ responsibilityEClass,
+ Responsibility.class,
+ "Responsibility", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getResponsibility_Base_Usage(),
+ theUMLPackage.getUsage(),
+ null,
+ "base_Usage", null, 1, 1, Responsibility.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(scriptEClass, Script.class,
+ "Script", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(sendEClass, Send.class,
+ "Send", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getSend_Base_Usage(),
+ theUMLPackage.getUsage(),
+ null,
+ "base_Usage", null, 1, 1, Send.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getSend__ValidateClientOperationSendsSupplierSignal__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateClientOperationSendsSupplierSignal", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(serviceEClass, Service.class,
+ "Service", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getService_Base_Component(),
+ theUMLPackage.getComponent(),
+ null,
+ "base_Component", null, 1, 1, Service.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(sourceEClass, Source.class,
+ "Source", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(
+ specificationEClass,
+ Specification.class,
+ "Specification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getSpecification_Base_Classifier(),
+ theUMLPackage.getClassifier(),
+ null,
+ "base_Classifier", null, 1, 1, Specification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getSpecification__ValidateCannotBeType__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateCannotBeType", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(
+ subsystemEClass,
+ Subsystem.class,
+ "Subsystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getSubsystem_Base_Component(),
+ theUMLPackage.getComponent(),
+ null,
+ "base_Component", null, 1, 1, Subsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(traceEClass, Trace.class,
+ "Trace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getTrace_Base_Abstraction(),
+ theUMLPackage.getAbstraction(),
+ null,
+ "base_Abstraction", null, 1, 1, Trace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(typeEClass, Type.class,
+ "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getType_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getType__ValidateCannotBeSpecification__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateCannotBeSpecification", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(utilityEClass, Utility.class,
+ "Utility", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getUtility_Base_Class(),
+ theUMLPackage.getClass_(),
+ null,
+ "base_Class", null, 1, 1, Utility.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(
+ getUtility__ValidateIsUtility__DiagnosticChain_Map(),
+ ecorePackage.getEBoolean(),
+ "validateIsUtility", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, ecorePackage.getEDiagnosticChain(),
+ "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // duplicates
+ createDuplicatesAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>duplicates</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createDuplicatesAnnotations() {
+ String source = "duplicates"; //$NON-NLS-1$
+ addAnnotation(documentEClass, source, new String[]{});
+ addAnnotation(executableEClass, source, new String[]{});
+ addAnnotation(libraryEClass, source, new String[]{});
+ addAnnotation(scriptEClass, source, new String[]{});
+ addAnnotation(sourceEClass, source, new String[]{});
+ }
+
+} //L2PackageImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/LibraryImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/LibraryImpl.java
new file mode 100644
index 0000000..6853d14
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/LibraryImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Library;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.LibraryImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LibraryImpl
+ extends FileImpl
+ implements Library {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LibraryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.LIBRARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.LIBRARY__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.LIBRARY__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetBase_Artifact() {
+ return base_Artifact != null;
+ }
+
+} //LibraryImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/MetaclassImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/MetaclassImpl.java
new file mode 100644
index 0000000..a0d3fbb
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/MetaclassImpl.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Metaclass</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.MetaclassImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MetaclassImpl
+ extends EObjectImpl
+ implements Metaclass {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MetaclassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.METACLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.METACLASS__BASE_CLASS, oldBase_Class,
+ base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.METACLASS__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.METACLASS__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.METACLASS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.METACLASS__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.METACLASS__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MetaclassImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ModelLibraryImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ModelLibraryImpl.java
new file mode 100644
index 0000000..1e8a603
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ModelLibraryImpl.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model Library</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ModelLibraryImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelLibraryImpl
+ extends EObjectImpl
+ implements ModelLibrary {
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelLibraryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.MODEL_LIBRARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject) base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.MODEL_LIBRARY__BASE_PACKAGE, oldBase_Package,
+ base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.MODEL_LIBRARY__BASE_PACKAGE, oldBase_Package,
+ base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.MODEL_LIBRARY__BASE_PACKAGE :
+ if (resolve)
+ return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.MODEL_LIBRARY__BASE_PACKAGE :
+ setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.MODEL_LIBRARY__BASE_PACKAGE :
+ setBase_Package((org.eclipse.uml2.uml.Package) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.MODEL_LIBRARY__BASE_PACKAGE :
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelLibraryImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ProcessImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ProcessImpl.java
new file mode 100644
index 0000000..374358e
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ProcessImpl.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Component;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Process</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ProcessImpl#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProcessImpl
+ extends EObjectImpl
+ implements org.eclipse.uml2.uml.profile.l2.Process {
+
+ /**
+ * The cached value of the '{@link #getBase_Component() <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Component()
+ * @generated
+ * @ordered
+ */
+ protected Component base_Component;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProcessImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.PROCESS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getBase_Component() {
+ if (base_Component != null && base_Component.eIsProxy()) {
+ InternalEObject oldBase_Component = (InternalEObject) base_Component;
+ base_Component = (Component) eResolveProxy(oldBase_Component);
+ if (base_Component != oldBase_Component) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.PROCESS__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+ }
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component basicGetBase_Component() {
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Component(Component newBase_Component) {
+ Component oldBase_Component = base_Component;
+ base_Component = newBase_Component;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.PROCESS__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.PROCESS__BASE_COMPONENT :
+ if (resolve)
+ return getBase_Component();
+ return basicGetBase_Component();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.PROCESS__BASE_COMPONENT :
+ setBase_Component((Component) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.PROCESS__BASE_COMPONENT :
+ setBase_Component((Component) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.PROCESS__BASE_COMPONENT :
+ return base_Component != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ProcessImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RealizationImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RealizationImpl.java
new file mode 100644
index 0000000..586c641
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RealizationImpl.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Classifier;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.RealizationOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Realization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RealizationImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RealizationImpl
+ extends EObjectImpl
+ implements Realization {
+
+ /**
+ * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Classifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier base_Classifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RealizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.REALIZATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getBase_Classifier() {
+ if (base_Classifier != null && base_Classifier.eIsProxy()) {
+ InternalEObject oldBase_Classifier = (InternalEObject) base_Classifier;
+ base_Classifier = (Classifier) eResolveProxy(oldBase_Classifier);
+ if (base_Classifier != oldBase_Classifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.REALIZATION__BASE_CLASSIFIER,
+ oldBase_Classifier, base_Classifier));
+ }
+ }
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetBase_Classifier() {
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Classifier(Classifier newBase_Classifier) {
+ Classifier oldBase_Classifier = base_Classifier;
+ base_Classifier = newBase_Classifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.REALIZATION__BASE_CLASSIFIER, oldBase_Classifier,
+ base_Classifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotBeImplementationClass(
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return RealizationOperations.validateCannotBeImplementationClass(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.REALIZATION__BASE_CLASSIFIER :
+ if (resolve)
+ return getBase_Classifier();
+ return basicGetBase_Classifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.REALIZATION__BASE_CLASSIFIER :
+ setBase_Classifier((Classifier) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.REALIZATION__BASE_CLASSIFIER :
+ setBase_Classifier((Classifier) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.REALIZATION__BASE_CLASSIFIER :
+ return base_Classifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.REALIZATION___VALIDATE_CANNOT_BE_IMPLEMENTATION_CLASS__DIAGNOSTICCHAIN_MAP :
+ return validateCannotBeImplementationClass(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //RealizationImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RefineImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RefineImpl.java
new file mode 100644
index 0000000..da190b2
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/RefineImpl.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Abstraction;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Refine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.RefineImpl#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RefineImpl
+ extends EObjectImpl
+ implements Refine {
+
+ /**
+ * The cached value of the '{@link #getBase_Abstraction() <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Abstraction()
+ * @generated
+ * @ordered
+ */
+ protected Abstraction base_Abstraction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RefineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.REFINE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction getBase_Abstraction() {
+ if (base_Abstraction != null && base_Abstraction.eIsProxy()) {
+ InternalEObject oldBase_Abstraction = (InternalEObject) base_Abstraction;
+ base_Abstraction = (Abstraction) eResolveProxy(oldBase_Abstraction);
+ if (base_Abstraction != oldBase_Abstraction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.REFINE__BASE_ABSTRACTION,
+ oldBase_Abstraction, base_Abstraction));
+ }
+ }
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction basicGetBase_Abstraction() {
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Abstraction(Abstraction newBase_Abstraction) {
+ Abstraction oldBase_Abstraction = base_Abstraction;
+ base_Abstraction = newBase_Abstraction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.REFINE__BASE_ABSTRACTION, oldBase_Abstraction,
+ base_Abstraction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.REFINE__BASE_ABSTRACTION :
+ if (resolve)
+ return getBase_Abstraction();
+ return basicGetBase_Abstraction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.REFINE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.REFINE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.REFINE__BASE_ABSTRACTION :
+ return base_Abstraction != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RefineImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ResponsibilityImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ResponsibilityImpl.java
new file mode 100644
index 0000000..86fd16c
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ResponsibilityImpl.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Usage;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Responsibility</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ResponsibilityImpl#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResponsibilityImpl
+ extends EObjectImpl
+ implements Responsibility {
+
+ /**
+ * The cached value of the '{@link #getBase_Usage() <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Usage()
+ * @generated
+ * @ordered
+ */
+ protected Usage base_Usage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ResponsibilityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.RESPONSIBILITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage getBase_Usage() {
+ if (base_Usage != null && base_Usage.eIsProxy()) {
+ InternalEObject oldBase_Usage = (InternalEObject) base_Usage;
+ base_Usage = (Usage) eResolveProxy(oldBase_Usage);
+ if (base_Usage != oldBase_Usage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.RESPONSIBILITY__BASE_USAGE, oldBase_Usage,
+ base_Usage));
+ }
+ }
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage basicGetBase_Usage() {
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Usage(Usage newBase_Usage) {
+ Usage oldBase_Usage = base_Usage;
+ base_Usage = newBase_Usage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.RESPONSIBILITY__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.RESPONSIBILITY__BASE_USAGE :
+ if (resolve)
+ return getBase_Usage();
+ return basicGetBase_Usage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.RESPONSIBILITY__BASE_USAGE :
+ setBase_Usage((Usage) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.RESPONSIBILITY__BASE_USAGE :
+ setBase_Usage((Usage) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.RESPONSIBILITY__BASE_USAGE :
+ return base_Usage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ResponsibilityImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ScriptImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ScriptImpl.java
new file mode 100644
index 0000000..1a730da
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ScriptImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Script;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Script</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ScriptImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ScriptImpl
+ extends FileImpl
+ implements Script {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ScriptImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SCRIPT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SCRIPT__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SCRIPT__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetBase_Artifact() {
+ return base_Artifact != null;
+ }
+
+} //ScriptImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SendImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SendImpl.java
new file mode 100644
index 0000000..3be9131
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SendImpl.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Usage;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Send;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.SendOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Send</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SendImpl#getBase_Usage <em>Base Usage</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendImpl
+ extends EObjectImpl
+ implements Send {
+
+ /**
+ * The cached value of the '{@link #getBase_Usage() <em>Base Usage</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Usage()
+ * @generated
+ * @ordered
+ */
+ protected Usage base_Usage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SEND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage getBase_Usage() {
+ if (base_Usage != null && base_Usage.eIsProxy()) {
+ InternalEObject oldBase_Usage = (InternalEObject) base_Usage;
+ base_Usage = (Usage) eResolveProxy(oldBase_Usage);
+ if (base_Usage != oldBase_Usage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SEND__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+ }
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage basicGetBase_Usage() {
+ return base_Usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Usage(Usage newBase_Usage) {
+ Usage oldBase_Usage = base_Usage;
+ base_Usage = newBase_Usage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SEND__BASE_USAGE, oldBase_Usage, base_Usage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClientOperationSendsSupplierSignal(
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return SendOperations.validateClientOperationSendsSupplierSignal(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.SEND__BASE_USAGE :
+ if (resolve)
+ return getBase_Usage();
+ return basicGetBase_Usage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.SEND__BASE_USAGE :
+ setBase_Usage((Usage) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.SEND__BASE_USAGE :
+ setBase_Usage((Usage) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.SEND__BASE_USAGE :
+ return base_Usage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.SEND___VALIDATE_CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL__DIAGNOSTICCHAIN_MAP :
+ return validateClientOperationSendsSupplierSignal(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //SendImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ServiceImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ServiceImpl.java
new file mode 100644
index 0000000..9278eed
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/ServiceImpl.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Component;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Service;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.ServiceImpl#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServiceImpl
+ extends EObjectImpl
+ implements Service {
+
+ /**
+ * The cached value of the '{@link #getBase_Component() <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Component()
+ * @generated
+ * @ordered
+ */
+ protected Component base_Component;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getBase_Component() {
+ if (base_Component != null && base_Component.eIsProxy()) {
+ InternalEObject oldBase_Component = (InternalEObject) base_Component;
+ base_Component = (Component) eResolveProxy(oldBase_Component);
+ if (base_Component != oldBase_Component) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SERVICE__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+ }
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component basicGetBase_Component() {
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Component(Component newBase_Component) {
+ Component oldBase_Component = base_Component;
+ base_Component = newBase_Component;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SERVICE__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.SERVICE__BASE_COMPONENT :
+ if (resolve)
+ return getBase_Component();
+ return basicGetBase_Component();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.SERVICE__BASE_COMPONENT :
+ setBase_Component((Component) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.SERVICE__BASE_COMPONENT :
+ setBase_Component((Component) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.SERVICE__BASE_COMPONENT :
+ return base_Component != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ServiceImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SourceImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SourceImpl.java
new file mode 100644
index 0000000..8af23e6
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SourceImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.Artifact;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Source;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Source</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SourceImpl#getBase_Artifact <em>Base Artifact</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SourceImpl
+ extends FileImpl
+ implements Source {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact getBase_Artifact() {
+ if (base_Artifact != null && base_Artifact.eIsProxy()) {
+ InternalEObject oldBase_Artifact = (InternalEObject) base_Artifact;
+ base_Artifact = (Artifact) eResolveProxy(oldBase_Artifact);
+ if (base_Artifact != oldBase_Artifact) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SOURCE__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+ }
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Artifact basicGetBase_Artifact() {
+ return base_Artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Artifact(Artifact newBase_Artifact) {
+ Artifact oldBase_Artifact = base_Artifact;
+ base_Artifact = newBase_Artifact;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SOURCE__BASE_ARTIFACT, oldBase_Artifact,
+ base_Artifact));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetBase_Artifact() {
+ return base_Artifact != null;
+ }
+
+} //SourceImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SpecificationImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SpecificationImpl.java
new file mode 100644
index 0000000..36ac918
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SpecificationImpl.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Classifier;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.SpecificationOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SpecificationImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SpecificationImpl
+ extends EObjectImpl
+ implements Specification {
+
+ /**
+ * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Classifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier base_Classifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getBase_Classifier() {
+ if (base_Classifier != null && base_Classifier.eIsProxy()) {
+ InternalEObject oldBase_Classifier = (InternalEObject) base_Classifier;
+ base_Classifier = (Classifier) eResolveProxy(oldBase_Classifier);
+ if (base_Classifier != oldBase_Classifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SPECIFICATION__BASE_CLASSIFIER,
+ oldBase_Classifier, base_Classifier));
+ }
+ }
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetBase_Classifier() {
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Classifier(Classifier newBase_Classifier) {
+ Classifier oldBase_Classifier = base_Classifier;
+ base_Classifier = newBase_Classifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SPECIFICATION__BASE_CLASSIFIER, oldBase_Classifier,
+ base_Classifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotBeType(DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return SpecificationOperations.validateCannotBeType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.SPECIFICATION__BASE_CLASSIFIER :
+ if (resolve)
+ return getBase_Classifier();
+ return basicGetBase_Classifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.SPECIFICATION__BASE_CLASSIFIER :
+ setBase_Classifier((Classifier) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.SPECIFICATION__BASE_CLASSIFIER :
+ setBase_Classifier((Classifier) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.SPECIFICATION__BASE_CLASSIFIER :
+ return base_Classifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.SPECIFICATION___VALIDATE_CANNOT_BE_TYPE__DIAGNOSTICCHAIN_MAP :
+ return validateCannotBeType((DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //SpecificationImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SubsystemImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SubsystemImpl.java
new file mode 100644
index 0000000..185d2e8
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/SubsystemImpl.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Component;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Subsystem</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.SubsystemImpl#getBase_Component <em>Base Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SubsystemImpl
+ extends EObjectImpl
+ implements Subsystem {
+
+ /**
+ * The cached value of the '{@link #getBase_Component() <em>Base Component</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Component()
+ * @generated
+ * @ordered
+ */
+ protected Component base_Component;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SubsystemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.SUBSYSTEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getBase_Component() {
+ if (base_Component != null && base_Component.eIsProxy()) {
+ InternalEObject oldBase_Component = (InternalEObject) base_Component;
+ base_Component = (Component) eResolveProxy(oldBase_Component);
+ if (base_Component != oldBase_Component) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.SUBSYSTEM__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+ }
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component basicGetBase_Component() {
+ return base_Component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Component(Component newBase_Component) {
+ Component oldBase_Component = base_Component;
+ base_Component = newBase_Component;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.SUBSYSTEM__BASE_COMPONENT, oldBase_Component,
+ base_Component));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.SUBSYSTEM__BASE_COMPONENT :
+ if (resolve)
+ return getBase_Component();
+ return basicGetBase_Component();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.SUBSYSTEM__BASE_COMPONENT :
+ setBase_Component((Component) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.SUBSYSTEM__BASE_COMPONENT :
+ setBase_Component((Component) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.SUBSYSTEM__BASE_COMPONENT :
+ return base_Component != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SubsystemImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TraceImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TraceImpl.java
new file mode 100644
index 0000000..85d9322
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TraceImpl.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.Abstraction;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TraceImpl#getBase_Abstraction <em>Base Abstraction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TraceImpl
+ extends EObjectImpl
+ implements Trace {
+
+ /**
+ * The cached value of the '{@link #getBase_Abstraction() <em>Base Abstraction</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Abstraction()
+ * @generated
+ * @ordered
+ */
+ protected Abstraction base_Abstraction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction getBase_Abstraction() {
+ if (base_Abstraction != null && base_Abstraction.eIsProxy()) {
+ InternalEObject oldBase_Abstraction = (InternalEObject) base_Abstraction;
+ base_Abstraction = (Abstraction) eResolveProxy(oldBase_Abstraction);
+ if (base_Abstraction != oldBase_Abstraction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.TRACE__BASE_ABSTRACTION, oldBase_Abstraction,
+ base_Abstraction));
+ }
+ }
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction basicGetBase_Abstraction() {
+ return base_Abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Abstraction(Abstraction newBase_Abstraction) {
+ Abstraction oldBase_Abstraction = base_Abstraction;
+ base_Abstraction = newBase_Abstraction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.TRACE__BASE_ABSTRACTION, oldBase_Abstraction,
+ base_Abstraction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.TRACE__BASE_ABSTRACTION :
+ if (resolve)
+ return getBase_Abstraction();
+ return basicGetBase_Abstraction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.TRACE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.TRACE__BASE_ABSTRACTION :
+ setBase_Abstraction((Abstraction) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.TRACE__BASE_ABSTRACTION :
+ return base_Abstraction != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TraceImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TypeImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TypeImpl.java
new file mode 100644
index 0000000..e318b85
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/TypeImpl.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Type;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.TypeOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.TypeImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeImpl
+ extends EObjectImpl
+ implements Type {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.TYPE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.TYPE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotBeSpecification(DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return TypeOperations.validateCannotBeSpecification(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.TYPE__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.TYPE__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.TYPE__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.TYPE__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.TYPE___VALIDATE_CANNOT_BE_SPECIFICATION__DIAGNOSTICCHAIN_MAP :
+ return validateCannotBeSpecification(
+ (DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //TypeImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/UtilityImpl.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/UtilityImpl.java
new file mode 100644
index 0000000..2162b04
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/impl/UtilityImpl.java
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+import org.eclipse.uml2.uml.profile.l2.internal.operations.UtilityOperations;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Utility</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.internal.impl.UtilityImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UtilityImpl
+ extends EObjectImpl
+ implements Utility {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UtilityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return L2Package.Literals.UTILITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject) base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class) eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ L2Package.UTILITY__BASE_CLASS, oldBase_Class,
+ base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ L2Package.UTILITY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsUtility(DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return UtilityOperations.validateIsUtility(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case L2Package.UTILITY__BASE_CLASS :
+ if (resolve)
+ return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case L2Package.UTILITY__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case L2Package.UTILITY__BASE_CLASS :
+ setBase_Class((org.eclipse.uml2.uml.Class) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case L2Package.UTILITY__BASE_CLASS :
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments)
+ throws InvocationTargetException {
+ switch (operationID) {
+ case L2Package.UTILITY___VALIDATE_IS_UTILITY__DIAGNOSTICCHAIN_MAP :
+ return validateIsUtility((DiagnosticChain) arguments.get(0),
+ (Map<Object, Object>) arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //UtilityImpl
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CallOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CallOperations.java
new file mode 100644
index 0000000..f93ec57
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CallOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Call;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Call</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Call#validateClientAndSupplierAreOperations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Operations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Operation))
+ * @param call The receiving '<em><b>Call</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateClientAndSupplierAreOperations(Call call,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.CALL__CLIENT_AND_SUPPLIER_ARE_OPERATIONS,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateClientAndSupplierAreOperations", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(call, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{call}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // CallOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CreateOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CreateOperations.java
new file mode 100644
index 0000000..11245d8
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/CreateOperations.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Create;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Create</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Create#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Classifiers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CreateOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreateOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage->notEmpty() implies (self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier)))
+ * @param create The receiving '<em><b>Create</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateClientAndSupplierAreClassifiers(
+ Create create, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.CREATE__CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateClientAndSupplierAreClassifiers", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(create, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{create}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // CreateOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementOperations.java
new file mode 100644
index 0000000..6b91dbd
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Implement;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Implement</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Implement#validateImplementsSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Implements Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ImplementOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Component.clientDependency.supplier->select(oclIsKindOf(Classifier)).oclAsType(Classifier).extension_Specificaiton->notEmpty()
+ * @param implement The receiving '<em><b>Implement</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateImplementsSpecification(Implement implement,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.IMPLEMENT__IMPLEMENTS_SPECIFICATION,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateImplementsSpecification", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(implement, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{implement}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // ImplementOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementationClassOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementationClassOperations.java
new file mode 100644
index 0000000..abaa0f7
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/ImplementationClassOperations.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Implementation Class</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#validateCannotBeRealization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Realization</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ImplementationClassOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationClassOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.extension_Realization->isEmpty()
+ * @param implementationClass The receiving '<em><b>Implementation Class</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateCannotBeRealization(
+ ImplementationClass implementationClass,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.IMPLEMENTATION_CLASS__CANNOT_BE_REALIZATION,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeRealization", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(implementationClass, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{implementationClass}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // ImplementationClassOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/InstantiateOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/InstantiateOperations.java
new file mode 100644
index 0000000..785f91a
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/InstantiateOperations.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Instantiate</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Instantiate#validateClientAndSupplierAreClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client And Supplier Are Classifiers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstantiateOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstantiateOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Classifier)) and self.base_Usage.supplier->forAll(oclIsKindOf(Classifier))
+ * @param instantiate The receiving '<em><b>Instantiate</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateClientAndSupplierAreClassifiers(
+ Instantiate instantiate, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.INSTANTIATE__CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateClientAndSupplierAreClassifiers", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(instantiate, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{instantiate}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // InstantiateOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/RealizationOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/RealizationOperations.java
new file mode 100644
index 0000000..b958337
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/RealizationOperations.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Realization;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Realization</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Realization#validateCannotBeImplementationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Implementation Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RealizationOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RealizationOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Classifier.extension_ImplementationClass->isEmpty()
+ * @param realization The receiving '<em><b>Realization</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateCannotBeImplementationClass(
+ Realization realization, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.REALIZATION__CANNOT_BE_IMPLEMENTATION_CLASS,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeImplementationClass", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(realization, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{realization}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // RealizationOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SendOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SendOperations.java
new file mode 100644
index 0000000..dafbbad
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SendOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Send;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Send</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Send#validateClientOperationSendsSupplierSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Operation Sends Supplier Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Usage.client->forAll(oclIsKindOf(Operation)) and self.base_Usage.supplier->forAll(oclIsKindOf(Signal))
+ * @param send The receiving '<em><b>Send</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateClientOperationSendsSupplierSignal(Send send,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.SEND__CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateClientOperationSendsSupplierSignal", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(send, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{send}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // SendOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SpecificationOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SpecificationOperations.java
new file mode 100644
index 0000000..4c38a26
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/SpecificationOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Specification;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Specification</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Specification#validateCannotBeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SpecificationOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificationOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Classifier.extension_Type->isEmpty()
+ * @param specification The receiving '<em><b>Specification</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateCannotBeType(Specification specification,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.SPECIFICATION__CANNOT_BE_TYPE,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(specification, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{specification}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // SpecificationOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/TypeOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/TypeOperations.java
new file mode 100644
index 0000000..fd7a552
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/TypeOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Type;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Type</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Type#validateCannotBeSpecification(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.extension_Specification->isEmpty()
+ * @param type The receiving '<em><b>Type</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateCannotBeSpecification(Type type,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.TYPE__CANNOT_BE_SPECIFICATION,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeSpecification", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(type, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{type}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // TypeOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/UtilityOperations.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/UtilityOperations.java
new file mode 100644
index 0000000..6061b2a
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/internal/operations/UtilityOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.internal.operations;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+import org.eclipse.uml2.uml.profile.l2.util.L2Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Utility</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.profile.l2.Utility#validateIsUtility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Utility</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UtilityOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UtilityOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Class.feature->forAll(isStatic)
+ * @param utility The receiving '<em><b>Utility</b></em>' model object.
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @generated
+ */
+ public static boolean validateIsUtility(Utility utility,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics
+ .add(new BasicDiagnostic(
+ Diagnostic.ERROR,
+ L2Validator.DIAGNOSTIC_SOURCE,
+ L2Validator.UTILITY__IS_UTILITY,
+ org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+ .getString(
+ "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsUtility", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(utility, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+ new Object[]{utility}));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} // UtilityOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2AdapterFactory.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2AdapterFactory.java
new file mode 100644
index 0000000..89878f2
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2AdapterFactory.java
@@ -0,0 +1,712 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.File;
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Library;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+import org.eclipse.uml2.uml.profile.l2.Script;
+import org.eclipse.uml2.uml.profile.l2.Send;
+import org.eclipse.uml2.uml.profile.l2.Service;
+import org.eclipse.uml2.uml.profile.l2.Source;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+import org.eclipse.uml2.uml.profile.l2.Type;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package
+ * @generated
+ */
+public class L2AdapterFactory
+ extends AdapterFactoryImpl {
+
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static L2Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2AdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = L2Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected L2Switch<Adapter> modelSwitch = new L2Switch<Adapter>() {
+
+ @Override
+ public Adapter caseAuxiliary(Auxiliary object) {
+ return createAuxiliaryAdapter();
+ }
+
+ @Override
+ public Adapter caseCall(Call object) {
+ return createCallAdapter();
+ }
+
+ @Override
+ public Adapter caseCreate(Create object) {
+ return createCreateAdapter();
+ }
+
+ @Override
+ public Adapter caseDerive(Derive object) {
+ return createDeriveAdapter();
+ }
+
+ @Override
+ public Adapter caseDestroy(Destroy object) {
+ return createDestroyAdapter();
+ }
+
+ @Override
+ public Adapter caseDocument(Document object) {
+ return createDocumentAdapter();
+ }
+
+ @Override
+ public Adapter caseFile(File object) {
+ return createFileAdapter();
+ }
+
+ @Override
+ public Adapter caseEntity(Entity object) {
+ return createEntityAdapter();
+ }
+
+ @Override
+ public Adapter caseExecutable(Executable object) {
+ return createExecutableAdapter();
+ }
+
+ @Override
+ public Adapter caseFocus(Focus object) {
+ return createFocusAdapter();
+ }
+
+ @Override
+ public Adapter caseFramework(Framework object) {
+ return createFrameworkAdapter();
+ }
+
+ @Override
+ public Adapter caseImplement(Implement object) {
+ return createImplementAdapter();
+ }
+
+ @Override
+ public Adapter caseImplementationClass(ImplementationClass object) {
+ return createImplementationClassAdapter();
+ }
+
+ @Override
+ public Adapter caseInstantiate(Instantiate object) {
+ return createInstantiateAdapter();
+ }
+
+ @Override
+ public Adapter caseLibrary(Library object) {
+ return createLibraryAdapter();
+ }
+
+ @Override
+ public Adapter caseMetaclass(Metaclass object) {
+ return createMetaclassAdapter();
+ }
+
+ @Override
+ public Adapter caseModelLibrary(ModelLibrary object) {
+ return createModelLibraryAdapter();
+ }
+
+ @Override
+ public Adapter caseProcess(
+ org.eclipse.uml2.uml.profile.l2.Process object) {
+ return createProcessAdapter();
+ }
+
+ @Override
+ public Adapter caseRealization(Realization object) {
+ return createRealizationAdapter();
+ }
+
+ @Override
+ public Adapter caseRefine(Refine object) {
+ return createRefineAdapter();
+ }
+
+ @Override
+ public Adapter caseResponsibility(Responsibility object) {
+ return createResponsibilityAdapter();
+ }
+
+ @Override
+ public Adapter caseScript(Script object) {
+ return createScriptAdapter();
+ }
+
+ @Override
+ public Adapter caseSend(Send object) {
+ return createSendAdapter();
+ }
+
+ @Override
+ public Adapter caseService(Service object) {
+ return createServiceAdapter();
+ }
+
+ @Override
+ public Adapter caseSource(Source object) {
+ return createSourceAdapter();
+ }
+
+ @Override
+ public Adapter caseSpecification(Specification object) {
+ return createSpecificationAdapter();
+ }
+
+ @Override
+ public Adapter caseSubsystem(Subsystem object) {
+ return createSubsystemAdapter();
+ }
+
+ @Override
+ public Adapter caseTrace(Trace object) {
+ return createTraceAdapter();
+ }
+
+ @Override
+ public Adapter caseType(Type object) {
+ return createTypeAdapter();
+ }
+
+ @Override
+ public Adapter caseUtility(Utility object) {
+ return createUtilityAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Auxiliary <em>Auxiliary</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Auxiliary
+ * @generated
+ */
+ public Adapter createAuxiliaryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Call <em>Call</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Call
+ * @generated
+ */
+ public Adapter createCallAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Create <em>Create</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Create
+ * @generated
+ */
+ public Adapter createCreateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Derive <em>Derive</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Derive
+ * @generated
+ */
+ public Adapter createDeriveAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Destroy <em>Destroy</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Destroy
+ * @generated
+ */
+ public Adapter createDestroyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Document <em>Document</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Document
+ * @generated
+ */
+ public Adapter createDocumentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.File <em>File</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.File
+ * @generated
+ */
+ public Adapter createFileAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Entity <em>Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Entity
+ * @generated
+ */
+ public Adapter createEntityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Executable <em>Executable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Executable
+ * @generated
+ */
+ public Adapter createExecutableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Focus <em>Focus</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Focus
+ * @generated
+ */
+ public Adapter createFocusAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Framework <em>Framework</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Framework
+ * @generated
+ */
+ public Adapter createFrameworkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Implement <em>Implement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Implement
+ * @generated
+ */
+ public Adapter createImplementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass <em>Implementation Class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.ImplementationClass
+ * @generated
+ */
+ public Adapter createImplementationClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Instantiate <em>Instantiate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Instantiate
+ * @generated
+ */
+ public Adapter createInstantiateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Library
+ * @generated
+ */
+ public Adapter createLibraryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Metaclass <em>Metaclass</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Metaclass
+ * @generated
+ */
+ public Adapter createMetaclassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.ModelLibrary <em>Model Library</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.ModelLibrary
+ * @generated
+ */
+ public Adapter createModelLibraryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Process <em>Process</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Process
+ * @generated
+ */
+ public Adapter createProcessAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Realization <em>Realization</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Realization
+ * @generated
+ */
+ public Adapter createRealizationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Refine <em>Refine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Refine
+ * @generated
+ */
+ public Adapter createRefineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Responsibility <em>Responsibility</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Responsibility
+ * @generated
+ */
+ public Adapter createResponsibilityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Script <em>Script</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Script
+ * @generated
+ */
+ public Adapter createScriptAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Send <em>Send</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Send
+ * @generated
+ */
+ public Adapter createSendAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Service <em>Service</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Service
+ * @generated
+ */
+ public Adapter createServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Source <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Source
+ * @generated
+ */
+ public Adapter createSourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Specification <em>Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Specification
+ * @generated
+ */
+ public Adapter createSpecificationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Subsystem <em>Subsystem</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Subsystem
+ * @generated
+ */
+ public Adapter createSubsystemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Trace <em>Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Trace
+ * @generated
+ */
+ public Adapter createTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Type
+ * @generated
+ */
+ public Adapter createTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.l2.Utility <em>Utility</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.uml2.uml.profile.l2.Utility
+ * @generated
+ */
+ public Adapter createUtilityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //L2AdapterFactory
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Switch.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Switch.java
new file mode 100644
index 0000000..81a7cb8
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Switch.java
@@ -0,0 +1,800 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.File;
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.Library;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+import org.eclipse.uml2.uml.profile.l2.Script;
+import org.eclipse.uml2.uml.profile.l2.Send;
+import org.eclipse.uml2.uml.profile.l2.Service;
+import org.eclipse.uml2.uml.profile.l2.Source;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+import org.eclipse.uml2.uml.profile.l2.Type;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package
+ * @generated
+ */
+public class L2Switch<T>
+ extends Switch<T> {
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static L2Package modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2Switch() {
+ if (modelPackage == null) {
+ modelPackage = L2Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case L2Package.AUXILIARY : {
+ Auxiliary auxiliary = (Auxiliary) theEObject;
+ T result = caseAuxiliary(auxiliary);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.CALL : {
+ Call call = (Call) theEObject;
+ T result = caseCall(call);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.CREATE : {
+ Create create = (Create) theEObject;
+ T result = caseCreate(create);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.DERIVE : {
+ Derive derive = (Derive) theEObject;
+ T result = caseDerive(derive);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.DESTROY : {
+ Destroy destroy = (Destroy) theEObject;
+ T result = caseDestroy(destroy);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.DOCUMENT : {
+ Document document = (Document) theEObject;
+ T result = caseDocument(document);
+ if (result == null)
+ result = caseFile(document);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.FILE : {
+ File file = (File) theEObject;
+ T result = caseFile(file);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.ENTITY : {
+ Entity entity = (Entity) theEObject;
+ T result = caseEntity(entity);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.EXECUTABLE : {
+ Executable executable = (Executable) theEObject;
+ T result = caseExecutable(executable);
+ if (result == null)
+ result = caseFile(executable);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.FOCUS : {
+ Focus focus = (Focus) theEObject;
+ T result = caseFocus(focus);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.FRAMEWORK : {
+ Framework framework = (Framework) theEObject;
+ T result = caseFramework(framework);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.IMPLEMENT : {
+ Implement implement = (Implement) theEObject;
+ T result = caseImplement(implement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.IMPLEMENTATION_CLASS : {
+ ImplementationClass implementationClass = (ImplementationClass) theEObject;
+ T result = caseImplementationClass(implementationClass);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.INSTANTIATE : {
+ Instantiate instantiate = (Instantiate) theEObject;
+ T result = caseInstantiate(instantiate);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.LIBRARY : {
+ Library library = (Library) theEObject;
+ T result = caseLibrary(library);
+ if (result == null)
+ result = caseFile(library);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.METACLASS : {
+ Metaclass metaclass = (Metaclass) theEObject;
+ T result = caseMetaclass(metaclass);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.MODEL_LIBRARY : {
+ ModelLibrary modelLibrary = (ModelLibrary) theEObject;
+ T result = caseModelLibrary(modelLibrary);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.PROCESS : {
+ org.eclipse.uml2.uml.profile.l2.Process process = (org.eclipse.uml2.uml.profile.l2.Process) theEObject;
+ T result = caseProcess(process);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.REALIZATION : {
+ Realization realization = (Realization) theEObject;
+ T result = caseRealization(realization);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.REFINE : {
+ Refine refine = (Refine) theEObject;
+ T result = caseRefine(refine);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.RESPONSIBILITY : {
+ Responsibility responsibility = (Responsibility) theEObject;
+ T result = caseResponsibility(responsibility);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SCRIPT : {
+ Script script = (Script) theEObject;
+ T result = caseScript(script);
+ if (result == null)
+ result = caseFile(script);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SEND : {
+ Send send = (Send) theEObject;
+ T result = caseSend(send);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SERVICE : {
+ Service service = (Service) theEObject;
+ T result = caseService(service);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SOURCE : {
+ Source source = (Source) theEObject;
+ T result = caseSource(source);
+ if (result == null)
+ result = caseFile(source);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SPECIFICATION : {
+ Specification specification = (Specification) theEObject;
+ T result = caseSpecification(specification);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.SUBSYSTEM : {
+ Subsystem subsystem = (Subsystem) theEObject;
+ T result = caseSubsystem(subsystem);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.TRACE : {
+ Trace trace = (Trace) theEObject;
+ T result = caseTrace(trace);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.TYPE : {
+ Type type = (Type) theEObject;
+ T result = caseType(type);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case L2Package.UTILITY : {
+ Utility utility = (Utility) theEObject;
+ T result = caseUtility(utility);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default :
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Auxiliary</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Auxiliary</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAuxiliary(Auxiliary object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Call</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Call</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCall(Call object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Create</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Create</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCreate(Create object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Derive</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Derive</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDerive(Derive object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Destroy</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Destroy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDestroy(Destroy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Document</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Document</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDocument(Document object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>File</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>File</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFile(File object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Entity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Entity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEntity(Entity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Executable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Executable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExecutable(Executable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Focus</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Focus</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFocus(Focus object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Framework</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Framework</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFramework(Framework object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplement(Implement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implementation Class</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implementation Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplementationClass(ImplementationClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instantiate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instantiate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstantiate(Instantiate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Library</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLibrary(Library object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Metaclass</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Metaclass</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMetaclass(Metaclass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Library</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Library</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelLibrary(ModelLibrary object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Process</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Process</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProcess(org.eclipse.uml2.uml.profile.l2.Process object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Realization</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Realization</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRealization(Realization object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Refine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Refine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRefine(Refine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Responsibility</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Responsibility</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResponsibility(Responsibility object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Script</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Script</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseScript(Script object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Send</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Send</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSend(Send object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseService(Service object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Source</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Source</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSource(Source object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSpecification(Specification object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Subsystem</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Subsystem</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSubsystem(Subsystem object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Trace</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrace(Trace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseType(Type object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Utility</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Utility</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUtility(Utility object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //L2Switch
diff --git a/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Validator.java b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Validator.java
new file mode 100644
index 0000000..6675529
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.profile.l2/src/org/eclipse/uml2/uml/profile/l2/util/L2Validator.java
@@ -0,0 +1,981 @@
+/*
+ * Copyright (c) 2011 CEA and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA - initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.profile.l2.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.uml2.uml.profile.l2.Auxiliary;
+import org.eclipse.uml2.uml.profile.l2.Call;
+import org.eclipse.uml2.uml.profile.l2.Create;
+import org.eclipse.uml2.uml.profile.l2.Derive;
+import org.eclipse.uml2.uml.profile.l2.Destroy;
+import org.eclipse.uml2.uml.profile.l2.Document;
+import org.eclipse.uml2.uml.profile.l2.Entity;
+import org.eclipse.uml2.uml.profile.l2.Executable;
+import org.eclipse.uml2.uml.profile.l2.File;
+import org.eclipse.uml2.uml.profile.l2.Focus;
+import org.eclipse.uml2.uml.profile.l2.Framework;
+import org.eclipse.uml2.uml.profile.l2.Implement;
+import org.eclipse.uml2.uml.profile.l2.ImplementationClass;
+import org.eclipse.uml2.uml.profile.l2.Instantiate;
+import org.eclipse.uml2.uml.profile.l2.L2Package;
+import org.eclipse.uml2.uml.profile.l2.L2Plugin;
+import org.eclipse.uml2.uml.profile.l2.Library;
+import org.eclipse.uml2.uml.profile.l2.Metaclass;
+import org.eclipse.uml2.uml.profile.l2.ModelLibrary;
+import org.eclipse.uml2.uml.profile.l2.Realization;
+import org.eclipse.uml2.uml.profile.l2.Refine;
+import org.eclipse.uml2.uml.profile.l2.Responsibility;
+import org.eclipse.uml2.uml.profile.l2.Script;
+import org.eclipse.uml2.uml.profile.l2.Send;
+import org.eclipse.uml2.uml.profile.l2.Service;
+import org.eclipse.uml2.uml.profile.l2.Source;
+import org.eclipse.uml2.uml.profile.l2.Specification;
+import org.eclipse.uml2.uml.profile.l2.Subsystem;
+import org.eclipse.uml2.uml.profile.l2.Trace;
+import org.eclipse.uml2.uml.profile.l2.Type;
+import org.eclipse.uml2.uml.profile.l2.Utility;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.uml2.uml.profile.l2.L2Package
+ * @generated
+ */
+public class L2Validator
+ extends EObjectValidator {
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final L2Validator INSTANCE = new L2Validator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "org.eclipse.uml2.uml.profile.l2"; //$NON-NLS-1$
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client And Supplier Are Operations' of 'Call'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int CALL__CLIENT_AND_SUPPLIER_ARE_OPERATIONS = 1;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client And Supplier Are Classifiers' of 'Create'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int CREATE__CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS = 2;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Implements Specification' of 'Implement'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int IMPLEMENT__IMPLEMENTS_SPECIFICATION = 3;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Be Realization' of 'Implementation Class'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int IMPLEMENTATION_CLASS__CANNOT_BE_REALIZATION = 4;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client And Supplier Are Classifiers' of 'Instantiate'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int INSTANTIATE__CLIENT_AND_SUPPLIER_ARE_CLASSIFIERS = 5;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Be Implementation Class' of 'Realization'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int REALIZATION__CANNOT_BE_IMPLEMENTATION_CLASS = 6;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client Operation Sends Supplier Signal' of 'Send'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int SEND__CLIENT_OPERATION_SENDS_SUPPLIER_SIGNAL = 7;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Be Type' of 'Specification'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int SPECIFICATION__CANNOT_BE_TYPE = 8;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Be Specification' of 'Type'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int TYPE__CANNOT_BE_SPECIFICATION = 9;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Utility' of 'Utility'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int UTILITY__IS_UTILITY = 10;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 10;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public L2Validator() {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EPackage getEPackage() {
+ return L2Package.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validate(int classifierID, Object value,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ switch (classifierID) {
+ case L2Package.AUXILIARY :
+ return validateAuxiliary((Auxiliary) value, diagnostics,
+ context);
+ case L2Package.CALL :
+ return validateCall((Call) value, diagnostics, context);
+ case L2Package.CREATE :
+ return validateCreate((Create) value, diagnostics, context);
+ case L2Package.DERIVE :
+ return validateDerive((Derive) value, diagnostics, context);
+ case L2Package.DESTROY :
+ return validateDestroy((Destroy) value, diagnostics, context);
+ case L2Package.DOCUMENT :
+ return validateDocument((Document) value, diagnostics, context);
+ case L2Package.FILE :
+ return validateFile((File) value, diagnostics, context);
+ case L2Package.ENTITY :
+ return validateEntity((Entity) value, diagnostics, context);
+ case L2Package.EXECUTABLE :
+ return validateExecutable((Executable) value, diagnostics,
+ context);
+ case L2Package.FOCUS :
+ return validateFocus((Focus) value, diagnostics, context);
+ case L2Package.FRAMEWORK :
+ return validateFramework((Framework) value, diagnostics,
+ context);
+ case L2Package.IMPLEMENT :
+ return validateImplement((Implement) value, diagnostics,
+ context);
+ case L2Package.IMPLEMENTATION_CLASS :
+ return validateImplementationClass((ImplementationClass) value,
+ diagnostics, context);
+ case L2Package.INSTANTIATE :
+ return validateInstantiate((Instantiate) value, diagnostics,
+ context);
+ case L2Package.LIBRARY :
+ return validateLibrary((Library) value, diagnostics, context);
+ case L2Package.METACLASS :
+ return validateMetaclass((Metaclass) value, diagnostics,
+ context);
+ case L2Package.MODEL_LIBRARY :
+ return validateModelLibrary((ModelLibrary) value, diagnostics,
+ context);
+ case L2Package.PROCESS :
+ return validateProcess(
+ (org.eclipse.uml2.uml.profile.l2.Process) value,
+ diagnostics, context);
+ case L2Package.REALIZATION :
+ return validateRealization((Realization) value, diagnostics,
+ context);
+ case L2Package.REFINE :
+ return validateRefine((Refine) value, diagnostics, context);
+ case L2Package.RESPONSIBILITY :
+ return validateResponsibility((Responsibility) value,
+ diagnostics, context);
+ case L2Package.SCRIPT :
+ return validateScript((Script) value, diagnostics, context);
+ case L2Package.SEND :
+ return validateSend((Send) value, diagnostics, context);
+ case L2Package.SERVICE :
+ return validateService((Service) value, diagnostics, context);
+ case L2Package.SOURCE :
+ return validateSource((Source) value, diagnostics, context);
+ case L2Package.SPECIFICATION :
+ return validateSpecification((Specification) value,
+ diagnostics, context);
+ case L2Package.SUBSYSTEM :
+ return validateSubsystem((Subsystem) value, diagnostics,
+ context);
+ case L2Package.TRACE :
+ return validateTrace((Trace) value, diagnostics, context);
+ case L2Package.TYPE :
+ return validateType((Type) value, diagnostics, context);
+ case L2Package.UTILITY :
+ return validateUtility((Utility) value, diagnostics, context);
+ default :
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAuxiliary(Auxiliary auxiliary,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(auxiliary, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCall(Call call, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(call, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(call, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(call, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(call, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(call,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(call, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(call, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(call, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(call, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validateCall_validateClientAndSupplierAreOperations(call,
+ diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateClientAndSupplierAreOperations constraint of '<em>Call</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCall_validateClientAndSupplierAreOperations(
+ Call call, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return call
+ .validateClientAndSupplierAreOperations(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCreate(Create create, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(create, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(create,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(create, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(create, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(create,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(create, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(create, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(create, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(create, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validateCreate_validateClientAndSupplierAreClassifiers(
+ create, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateClientAndSupplierAreClassifiers constraint of '<em>Create</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCreate_validateClientAndSupplierAreClassifiers(
+ Create create, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return create.validateClientAndSupplierAreClassifiers(diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDerive(Derive derive, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(derive, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDestroy(Destroy destroy,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(destroy, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDocument(Document document,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(document, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFile(File file, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(file, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEntity(Entity entity, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(entity, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateExecutable(Executable executable,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(executable, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFocus(Focus focus, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(focus, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFramework(Framework framework,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(framework, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImplement(Implement implement,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(implement, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(implement,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(implement, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(implement,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(implement,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(implement, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(implement, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(implement, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(implement, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validateImplement_validateImplementsSpecification(
+ implement, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateImplementsSpecification constraint of '<em>Implement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImplement_validateImplementsSpecification(
+ Implement implement, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return implement.validateImplementsSpecification(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImplementationClass(
+ ImplementationClass implementationClass,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(implementationClass, diagnostics,
+ context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(
+ implementationClass, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(implementationClass,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(implementationClass,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(
+ implementationClass, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(implementationClass,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(implementationClass, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(implementationClass, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(implementationClass,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validateImplementationClass_validateCannotBeRealization(
+ implementationClass, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateCannotBeRealization constraint of '<em>Implementation Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImplementationClass_validateCannotBeRealization(
+ ImplementationClass implementationClass,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return implementationClass.validateCannotBeRealization(diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInstantiate(Instantiate instantiate,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(instantiate, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(instantiate,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(instantiate, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(instantiate,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(instantiate,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(instantiate, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(instantiate, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(instantiate, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(instantiate, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validateInstantiate_validateClientAndSupplierAreClassifiers(
+ instantiate, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateClientAndSupplierAreClassifiers constraint of '<em>Instantiate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInstantiate_validateClientAndSupplierAreClassifiers(
+ Instantiate instantiate, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return instantiate.validateClientAndSupplierAreClassifiers(diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLibrary(Library library,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(library, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMetaclass(Metaclass metaclass,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(metaclass, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateModelLibrary(ModelLibrary modelLibrary,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(modelLibrary, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProcess(
+ org.eclipse.uml2.uml.profile.l2.Process process,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(process, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRealization(Realization realization,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(realization, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(realization,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(realization, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(realization,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(realization,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(realization, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(realization, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(realization, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(realization, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validateRealization_validateCannotBeImplementationClass(
+ realization, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateCannotBeImplementationClass constraint of '<em>Realization</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRealization_validateCannotBeImplementationClass(
+ Realization realization, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return realization.validateCannotBeImplementationClass(diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRefine(Refine refine, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(refine, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResponsibility(Responsibility responsibility,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(responsibility, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateScript(Script script, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(script, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSend(Send send, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(send, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(send, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(send, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(send, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(send,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(send, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(send, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(send, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(send, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validateSend_validateClientOperationSendsSupplierSignal(
+ send, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateClientOperationSendsSupplierSignal constraint of '<em>Send</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSend_validateClientOperationSendsSupplierSignal(
+ Send send, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return send.validateClientOperationSendsSupplierSignal(diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateService(Service service,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(service, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSource(Source source, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(source, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecification(Specification specification,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(specification, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(specification,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(specification,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(specification,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(
+ specification, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(specification, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(specification, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(specification, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(specification, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validateSpecification_validateCannotBeType(specification,
+ diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateCannotBeType constraint of '<em>Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecification_validateCannotBeType(
+ Specification specification, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return specification.validateCannotBeType(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubsystem(Subsystem subsystem,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(subsystem, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTrace(Trace trace, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(trace, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateType(Type type, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(type, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(type, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(type, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(type, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(type,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(type, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(type, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(type, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(type, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validateType_validateCannotBeSpecification(type,
+ diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateCannotBeSpecification constraint of '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateType_validateCannotBeSpecification(Type type,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return type.validateCannotBeSpecification(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUtility(Utility utility,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(utility, diagnostics, context))
+ return false;
+ boolean result = validate_EveryMultiplicityConforms(utility,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryDataValueConforms(utility, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryReferenceIsContained(utility, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validate_EveryBidirectionalReferenceIsPaired(utility,
+ diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryProxyResolves(utility, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_UniqueID(utility, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryKeyUnique(utility, diagnostics, context);
+ if (result || diagnostics != null)
+ result &= validate_EveryMapEntryUnique(utility, diagnostics,
+ context);
+ if (result || diagnostics != null)
+ result &= validateUtility_validateIsUtility(utility, diagnostics,
+ context);
+ return result;
+ }
+
+ /**
+ * Validates the validateIsUtility constraint of '<em>Utility</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUtility_validateIsUtility(Utility utility,
+ DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return utility.validateIsUtility(diagnostics, context);
+ }
+
+ /**
+ * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return L2Plugin.INSTANCE;
+ }
+
+} //L2Validator