blob: 67b88f1f418b248364c6c5e1acb547d2598dc963 [file] [log] [blame]
<?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="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
<eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mapping" ordered="false"
eType="#//OpaqueExpression" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Dependency" eSuperTypes="#//PackageableElement #//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s)."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="client" ordered="false"
lowerBound="1" upperBound="-1" eType="#//NamedElement" eOpposite="#//NamedElement/clientDependency">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="supplier" ordered="false"
lowerBound="1" upperBound="-1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
eSuperTypes="#//NamedElement #//ParameterableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Packageable elements are able to serve as a template parameter.&#xA;A packageable element indicates a named element that may be owned directly by a package."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
defaultValueLiteral="public">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//NamedElement/visibility"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template."/>
</eAnnotations>
<eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xA;result = p->oclIsKindOf(self.oclType)"/>
</eAnnotations>
<eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
</eOperations>
<eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xA;result = templateParameter->notEmpty()"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The formal template parameter that owns this element."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An element is a constituent of a model. As such, it has the capability of owning other elements."/>
</eAnnotations>
<eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Elements that must be owned must have an owner.&#xA;self.mustBeOwned() implies owner->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>
<eOperations name="not_own_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An element may not directly or indirectly own itself.&#xA;not self.allOwnedElements()->includes(self)"/>
</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>
<eOperations name="addKeyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Adds the specified keyword to this element."/>
</eAnnotations>
<eParameters name="keyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The keyword to add."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="applyStereotype" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Applies the specified stereotype to this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype to apply."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createEAnnotation" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an annotation with the specified source and this element as its model element."/>
</eAnnotations>
<eParameters name="source" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The source for the new annotation."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="destroy" ordered="false" lowerBound="1">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Destroys this element by removing all cross references to/from it and removing it from its containing resource or object."/>
</eAnnotations>
</eOperations>
<eOperations name="getKeywords" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the keywords for this element."/>
</eAnnotations>
</eOperations>
<eOperations name="getApplicableStereotype" ordered="false" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotype with the specified qualified name that is applicable to this element, or null if no such stereotype is applicable."/>
</eAnnotations>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the applicable stereotype to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getApplicableStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotypes that are applicable to this element, including those that are required and/or may already be applied."/>
</eAnnotations>
</eOperations>
<eOperations name="getAppliedStereotype" ordered="false" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotype with the specified qualified name that is applied to this element, or null if no such stereotype is applied."/>
</eAnnotations>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the applied stereotype to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAppliedStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotypes that are applied to this element."/>
</eAnnotations>
</eOperations>
<eOperations name="getAppliedSubstereotype" ordered="false" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the substereotype of the specified stereotype with the specified qualified name that is applied to this element, or null if no such stereotype is applied."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The superstereotype of the applied substereotype to retrieve."/>
</eAnnotations>
</eParameters>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the applied substereotype to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAppliedSubstereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the substereotypes of the specified stereotype that are applied to this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The superstereotype of the applied substereotypes to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getModel" ordered="false" eType="#//Model">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the model that owns (either directly or indirectly) this element."/>
</eAnnotations>
</eOperations>
<eOperations name="getNearestPackage" ordered="false" eType="#//Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the nearest package that owns (either directly or indirectly) this element, or the element itself (if it is a package)."/>
</eAnnotations>
</eOperations>
<eOperations name="getRelationships" ordered="false" upperBound="-1" eType="#//Relationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the relationships in which this element is involved."/>
</eAnnotations>
</eOperations>
<eOperations name="getRelationships" ordered="false" upperBound="-1" eType="#//Relationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the relationships of the specified type in which this element is involved."/>
</eAnnotations>
<eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The (meta)type of the relationships to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getRequiredStereotype" ordered="false" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotype with the specified qualified name that is required for this element, or null if no such stereotype is required."/>
</eAnnotations>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the required stereotype to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getRequiredStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotypes that are required for this element."/>
</eAnnotations>
</eOperations>
<eOperations name="getSourceDirectedRelationships" ordered="false" upperBound="-1"
eType="#//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the directed relationships for which this element is a source."/>
</eAnnotations>
</eOperations>
<eOperations name="getSourceDirectedRelationships" ordered="false" upperBound="-1"
eType="#//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the directed relationships of the specified type for which this element is a source."/>
</eAnnotations>
<eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The (meta)type of the directed relationships to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getStereotypeApplication" ordered="false" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the application of the specified stereotype for this element, or null if no such stereotype application exists."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype for which to retrieve an application."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getStereotypeApplications" ordered="false" upperBound="-1"
eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the stereotype applications for this element."/>
</eAnnotations>
</eOperations>
<eOperations name="getTargetDirectedRelationships" ordered="false" upperBound="-1"
eType="#//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the directed relationships for which this element is a target."/>
</eAnnotations>
</eOperations>
<eOperations name="getTargetDirectedRelationships" ordered="false" upperBound="-1"
eType="#//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the directed relationships of the specified type for which this element is a target."/>
</eAnnotations>
<eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The (meta)type of the directed relationships to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the value of the property with the specified name in the specified stereotype for this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype for which to retrieve the value."/>
</eAnnotations>
</eParameters>
<eParameters name="propertyName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the property whose value to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="hasKeyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether this element has the specified keyword."/>
</eAnnotations>
<eParameters name="keyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The keyword in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="hasValue" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether this element has a (non-default) value for the property with the specified name in the specified stereotype."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype for which to test the property."/>
</eAnnotations>
</eParameters>
<eParameters name="propertyName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the property in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="isStereotypeApplicable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether the specified stereotype is applicable to this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="isStereotypeApplied" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether the specified stereotype is applied to this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="isStereotypeRequired" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether the specified stereotype is required for this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="removeKeyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Removes the specified keyword from this element."/>
</eAnnotations>
<eParameters name="keyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The keyword to remove."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="setValue" ordered="false" lowerBound="1">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Sets the value of the property with the specified name in the specified stereotype for this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype for which to set the value."/>
</eAnnotations>
</eParameters>
<eParameters name="propertyName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the property whose value to set."/>
</eAnnotations>
</eParameters>
<eParameters name="newValue" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The new value for the property."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="unapplyStereotype" ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Unapplies the specified stereotype from this element."/>
</eAnnotations>
<eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The stereotype to unapply."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))"/>
</eAnnotations>
</eOperations>
<eOperations name="mustBeOwned" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.&#xA;result = true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
upperBound="-1" eType="#//Comment" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Comments owned by this element."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedElement" ordered="false"
upperBound="-1" eType="#//Element" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Element/owner">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Elements owned by this element."/>
</eAnnotations>
<eAnnotations source="union"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
eType="#//Element" changeable="false" volatile="true" transient="true" derived="true"
eOpposite="#//Element/ownedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Element that owns this element."/>
</eAnnotations>
<eAnnotations source="union"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" ordered="false"
upperBound="-1" eType="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Element(s) being commented."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"
unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a string that is the comment."/>
</eAnnotations>
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass."/>
</eAnnotations>
<eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.&#xA;ownedAttribute&#xA;->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))&#xA;->forAll(opposite.owner = association)"/>
</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>
<eOperations name="name_not_clash" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stereotype names should not clash with keyword names for the extended model element.&#xA;true"/>
</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>
<eOperations name="binaryAssociationsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stereotypes may only participate in binary associations.&#xA;ownedAttribute.association->forAll(memberEnd->size()=2)"/>
</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>
<eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Stereotype may only generalize or specialize another Stereotype.&#xA;generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) "/>
</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>
<eOperations name="createExtension" ordered="false" lowerBound="1" eType="#//Extension">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a(n) (required) extension of the specified metaclass with this stereotype."/>
</eAnnotations>
<eParameters name="metaclass" ordered="false" lowerBound="1" eType="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The metaclass for the new extension."/>
</eAnnotations>
</eParameters>
<eParameters name="isRequired" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether the new extension should be required."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createIcon" ordered="false" lowerBound="1" eType="#//Image">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an icon with the specified location for this stereotype."/>
</eAnnotations>
<eParameters name="location" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The location for the new icon."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createIcon" ordered="false" lowerBound="1" eType="#//Image">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an icon with the specified format and content for this stereotype."/>
</eAnnotations>
<eParameters name="format" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The format for the new icon."/>
</eAnnotations>
</eParameters>
<eParameters name="content" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The content for the new icon."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAllExtendedMetaclasses" ordered="false" upperBound="-1"
eType="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the metaclasses extended by this stereotype, including the metaclasses extended by its superstereotypes."/>
</eAnnotations>
</eOperations>
<eOperations name="getDefinition" ordered="false" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the current definition (Ecore representation) of this stereotype."/>
</eAnnotations>
</eOperations>
<eOperations name="getExtendedMetaclasses" ordered="false" upperBound="-1" eType="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the metaclasses extended by this stereotype."/>
</eAnnotations>
</eOperations>
<eOperations name="getKeyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the localized keyword for this stereotype."/>
</eAnnotations>
</eOperations>
<eOperations name="getKeyword" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the keyword for this stereotype, localized if indicated."/>
</eAnnotations>
<eParameters name="localize" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether to localize the keyword."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="containingProfile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query containingProfile returns the closest profile directly or indirectly containing this stereotype.&#xA;result = self.namespace.oclAsType(Package).containingProfile()"/>
</eAnnotations>
</eOperations>
<eOperations name="getProfile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A stereotype must be contained, directly or indirectly, in a profile.&#xA;result = self.containingProfile()"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="icon" ordered="false" upperBound="-1"
eType="#//Image" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="profile" ordered="false"
lowerBound="1" eType="#//Profile" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile that directly or indirectly contains this stereotype."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//EncapsulatedClassifier #//BehavioredClassifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.&#xA;A class describes a set of objects that share the same specifications of features, constraints, and semantics.&#xA;A class has the capability to have an internal structure and ports.&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Classifier/inherit"/>
<eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
</contents>
<contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true" eOpposite="#//Property/class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
<eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xA;True when a class is abstract."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
</contents>
</eAnnotations>
<eOperations name="passive_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A passive class may not own receptions.&#xA;not self.isActive implies self.ownedReception.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>
<eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this class."/>
</eAnnotations>
<eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new operation, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter names for the new operation, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter types for the new operation, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="returnType" ordered="false" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The return type for the new operation, or null."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="isMetaclass" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether this class is a metaclass."/>
</eAnnotations>
</eOperations>
<eOperations name="getExtensions" ordered="false" upperBound="-1" eType="#//Extension">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Class::/extension : Extension&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="getSuperClasses" ordered="false" upperBound="-1" eType="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Class::/superClass : Class&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
eType="#//Operation" containment="true" eOpposite="#//Operation/class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The operations owned by the class."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
upperBound="-1" eType="#//Extension" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Extension/metaclass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" ordered="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
eType="#//Classifier" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
upperBound="-1" eType="#//Reception" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Receptions that objects of this class are willing to accept."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
upperBound="-1" eType="#//Class" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This gives the superclasses of a class."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Classifier/general"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
eSuperTypes="#//StructuredClassifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A classifier has the ability to own ports as specific and type checked interaction points."/>
</eAnnotations>
<eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for EncapsulatedClassifier::/ownedPort : Port&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
eSuperTypes="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances."/>
</eAnnotations>
<eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The multiplicities on connected elements must be consistent.&#xA;true"/>
</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>
<eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this structured classifier."/>
</eAnnotations>
<eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new attribute, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="type" ordered="false" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The type for the new attribute, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The lower bound for the new attribute."/>
</eAnnotations>
</eParameters>
<eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The upper bound for the new attribute."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for StructuredClassifier::/part : Property&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the properties owned by the classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember #//StructuredClassifier/role"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
upperBound="-1" eType="#//Connector" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the connectors owned by the classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the roles that instances may play in this classifier."/>
</eAnnotations>
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xA;A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.&#xA;Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.&#xA;A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="isTemplate" ordered="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//TemplateableElement/isTemplate"/>
</contents>
<contents xsi:type="ecore:EReference" name="ownedTemplateSignature" ordered="false"
eType="#//TemplateSignature" containment="true" eOpposite="#//RedefinableTemplateSignature/classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The optional template signature specifying the formal template parameters."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//TemplateableElement/ownedTemplateSignature"/>
</contents>
<contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
eType="#//TemplateParameter" eOpposite="#//ClassifierTemplateParameter/%duplicates%/parameteredElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
</contents>
</eAnnotations>
<eOperations name="non_final_parents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parents of a classifier must be non-final.&#xA;self.parents()->forAll(not isFinalSpecialization)"/>
</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>
<eOperations name="no_cycles_in_generalization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xA;not self.allParents()->includes(self)"/>
</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>
<eOperations name="specialize_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="A classifier may only specialize classifiers of a valid type.&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
</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>
<eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.&#xA;true"/>
</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>
<eOperations name="getAllAttributes" ordered="false" upperBound="-1" eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the attributes of this classifier, including those inherited from its parents."/>
</eAnnotations>
</eOperations>
<eOperations name="getAllOperations" ordered="false" upperBound="-1" eType="#//Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the operations of this classifier, including those inherited from its parents."/>
</eAnnotations>
</eOperations>
<eOperations name="getAllUsedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the interfaces on which this classifier or any of its parents has a usage dependency."/>
</eAnnotations>
</eOperations>
<eOperations name="getOperation" ordered="false" eType="#//Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier."/>
</eAnnotations>
<eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter names of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter types of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getOperation" ordered="false" eType="#//Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier, ignoring case if indicated."/>
</eAnnotations>
<eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter names of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The parameter types of the operation to retrieve, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="ignoreCase" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether to ignore case in String comparisons."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getOperations" ordered="false" upperBound="-1" eType="#//Operation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the operations of this classifier."/>
</eAnnotations>
</eOperations>
<eOperations name="getUsedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the interfaces on which this classifier has a usage dependency."/>
</eAnnotations>
</eOperations>
<eOperations name="allFeatures" ordered="false" upperBound="-1" eType="#//Feature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.&#xA;result = member->select(oclIsKindOf(Feature))"/>
</eAnnotations>
</eOperations>
<eOperations name="allParents" ordered="false" upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())"/>
</eAnnotations>
</eOperations>
<eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.&#xA;result = (self=other) or (self.allParents()->includes(other))"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Type/conformsTo"/>
<eParameters name="other" ordered="false" lowerBound="1" eType="#//Classifier"/>
</eOperations>
<eOperations name="getGenerals" ordered="false" upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xA;result = self.parents()"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="hasVisibilityOf" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.&#xA;self.allParents()->including(self)->collect(c | c.member)->includes(n)&#xA;result = (n.visibility &lt;> VisibilityKind::private)"/>
</eAnnotations>
<eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
</eOperations>
<eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;result = inhs"/>
</eAnnotations>
<eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
</eOperations>
<eOperations name="inheritableMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.&#xA;c.allParents()->includes(self)&#xA;result = member->select(m | c.hasVisibilityOf(m))"/>
</eAnnotations>
<eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
</eOperations>
<eOperations name="getInheritedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xA;result = self.inherit(self.parents()->collect(p|p.inheritableMembers(self))->asSet())"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.&#xA;result = self.oclIsKindOf(c.oclType)"/>
</eAnnotations>
<eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
</eOperations>
<eOperations name="parents" ordered="false" upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xA;result = generalization.general"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
upperBound="-1" eType="#//Feature" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Feature/featuringClassifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies each feature defined in the classifier.&#xA;Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features."/>
</eAnnotations>
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="attribute" ordered="false"
upperBound="-1" eType="#//Property" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
</eAnnotations>
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Classifier/feature"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="collaborationUse" ordered="false"
upperBound="-1" eType="#//CollaborationUse" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the collaboration uses owned by the classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
upperBound="-1" eType="#//Classifier" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the general Classifiers for this Classifier.&#xA;References the general classifier in the Generalization relationship."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
upperBound="-1" eType="#//Generalization" containment="true" eOpposite="#//Generalization/specific">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="powertypeExtent" ordered="false"
upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/powertype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Designates the GeneralizationSet of which the associated Classifier is a power type."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinalSpecialization"
ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedUseCase" ordered="false"
upperBound="-1" eType="#//UseCase" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the use cases owned by this classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
upperBound="-1" eType="#//UseCase" eOpposite="#//UseCase/subject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of use cases for which this Classifier is the subject."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Classifiers that are redefined by this Classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="representation" ordered="false"
eType="#//CollaborationUse">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References a collaboration use which indicates the collaboration that represents this classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Classifier/collaborationUse"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="substitution" ordered="false"
upperBound="-1" eType="#//Substitution" containment="true" eOpposite="#//Substitution/substitutingClassifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the substitutions that are owned by this Classifier."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A namespace is an element in a model that contains a set of named elements that can be identified by name."/>
</eAnnotations>
<eOperations name="members_distinguishable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="All the members of a Namespace are distinguishable within it.&#xA;membersAreDistinguishable()"/>
</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>
<eOperations name="createElementImport" ordered="false" lowerBound="1" eType="#//ElementImport">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an import of the specified element into this namespace with the specified visibility."/>
</eAnnotations>
<eParameters name="element" ordered="false" lowerBound="1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element to import."/>
</eAnnotations>
</eParameters>
<eParameters name="visibility" ordered="false" lowerBound="1" eType="#//VisibilityKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The visibility for the new element import."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createPackageImport" ordered="false" lowerBound="1" eType="#//PackageImport">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an import of the specified package into this namespace with the specified visibility."/>
</eAnnotations>
<eParameters name="package_" ordered="false" lowerBound="1" eType="#//Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The package to import."/>
</eAnnotations>
</eParameters>
<eParameters name="visibility" ordered="false" lowerBound="1" eType="#//VisibilityKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The visibility for the new package import."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getImportedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the elements imported by this namespace."/>
</eAnnotations>
</eOperations>
<eOperations name="getImportedPackages" ordered="false" upperBound="-1" eType="#//Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the packages imported by this namespace."/>
</eAnnotations>
</eOperations>
<eOperations name="excludeCollisions" ordered="false" upperBound="-1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))"/>
</eAnnotations>
<eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
</eOperations>
<eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA; if elementImports->notEmpty()&#xA; then elementImports->collect(el | el.getName())&#xA; else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA; endif&#xA;endif"/>
</eAnnotations>
<eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
</eOperations>
<eOperations name="importMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))"/>
</eAnnotations>
<eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
</eOperations>
<eOperations name="getImportedMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="membersAreDistinguishable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))"/>
</eAnnotations>
</eOperations>
<eOperations name="getOwnedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Namespace::/ownedMember : NamedElement&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
upperBound="-1" eType="#//ElementImport" containment="true" eOpposite="#//ElementImport/importingNamespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the ElementImports owned by the Namespace."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
upperBound="-1" eType="#//PackageImport" containment="true" eOpposite="#//PackageImport/importingNamespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the PackageImports owned by the Namespace."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/context">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
transient="true" derived="true" eOpposite="#//NamedElement/namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A collection of NamedElements owned by the Namespace."/>
</eAnnotations>
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member #//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="importedMember" ordered="false"
upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
</eAnnotations>
<eAnnotations source="union"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).&#xA;A named element is an element in a model that may have a name."/>
</eAnnotations>
<eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xA; self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))"/>
</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>
<eOperations name="has_no_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If there is no name, or one of the containing namespaces has no name, there is no qualified name.&#xA;(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty())&#xA; implies self.qualifiedName->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>
<eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xA;namespace->isEmpty() implies visibility->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>
<eOperations name="createDependency" ordered="false" lowerBound="1" eType="#//Dependency">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a dependency between this named element and the specified supplier, owned by this named element's nearest package."/>
</eAnnotations>
<eParameters name="supplier" ordered="false" lowerBound="1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The supplier for the new dependency."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createUsage" ordered="false" lowerBound="1" eType="#//Usage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a usage between this named element and the specified supplier, owned by this named element's nearest package."/>
</eAnnotations>
<eParameters name="supplier" ordered="false" lowerBound="1" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The supplier for the new usage."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getLabel" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves a localized label for this named element."/>
</eAnnotations>
</eOperations>
<eOperations name="getLabel" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves a label for this named element, localized if indicated."/>
</eAnnotations>
<eParameters name="localize" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether to localize the label."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="allNamespaces" upperBound="-1" eType="#//Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif"/>
</eAnnotations>
</eOperations>
<eOperations name="allOwningPackages" ordered="false" upperBound="-1" eType="#//Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allOwningPackages() returns all the directly or indirectly owning packages.&#xA;result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())"/>
</eAnnotations>
</eOperations>
<eOperations name="isDistinguishableFrom" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif"/>
</eAnnotations>
<eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
<eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
</eOperations>
<eOperations name="getNamespace" ordered="false" eType="#//Namespace">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for NamedElement::/namespace : Namespace&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="getQualifiedName" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA; self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA; Set{}&#xA;endif"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="separator" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xA;result = '::'"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="clientDependency" ordered="false"
upperBound="-1" eType="#//Dependency" eOpposite="#//Dependency/client">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Indicates the dependencies that reference the client."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"
unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the NamedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nameExpression" ordered="false"
eType="#//StringExpression" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The string expression used to define the name of this named element."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" ordered="false"
eType="#//Namespace" changeable="false" volatile="true" transient="true" derived="true"
eOpposite="#//Namespace/ownedMember">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
</eAnnotations>
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" ordered="false"
eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
eType="#//VisibilityKind" unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringExpression" eSuperTypes="#//Expression #//TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression.&#xA;result = if subExpression->notEmpty()&#xA;then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue()))&#xA;else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
</contents>
</eAnnotations>
<eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).&#xA;if subExpression->notEmpty() then operand->isEmpty() else operand->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>
<eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="All the operands of a StringExpression must be LiteralStrings&#xA;operand->forAll (op | op.oclIsKindOf (LiteralString))"/>
</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="owningExpression" ordered="false"
eType="#//StringExpression" eOpposite="#//StringExpression/subExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The string expression of which this expression is a substring."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="subExpression" ordered="false"
upperBound="-1" eType="#//StringExpression" containment="true" eOpposite="#//StringExpression/owningExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The StringExpressions that constitute this StringExpression."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a sequence of operands."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="symbol" ordered="false"
eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The symbol associated with the node in the expression tree."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
eSuperTypes="#//PackageableElement #//TypedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A value specification is the specification of a (possibly empty) set of instances, including both objects and data values."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
<eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
</contents>
</eAnnotations>
<eOperations name="booleanValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xA;result = Set{}"/>
</eAnnotations>
</eOperations>
<eOperations name="integerValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xA;result = Set{}"/>
</eAnnotations>
</eOperations>
<eOperations name="isComputable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.&#xA;result = false"/>
</eAnnotations>
</eOperations>
<eOperations name="isNull" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xA;result = false"/>
</eAnnotations>
</eOperations>
<eOperations name="realValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Real">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query realValue() gives a single Real value when one can be computed.&#xA;result = Set{}"/>
</eAnnotations>
</eOperations>
<eOperations name="stringValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xA;result = Set{}"/>
</eAnnotations>
</eOperations>
<eOperations name="unlimitedValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xA;result = Set{}"/>
</eAnnotations>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A typed element is a kind of named element that represents an element with a type.&#xA;A typed element has a type."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This information is derived from the return result for this Operation.&#xA;The type of the TypedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A type is a named element that is used as the type for a typed element. A type can be contained in a package.&#xA;A type constrains the values represented by a typed element."/>
</eAnnotations>
<eOperations name="createAssociation" ordered="false" lowerBound="1" eType="#//Association">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a(n) (binary) association between this type and the specified other type, with the specified navigabilities, aggregations, names, lower bounds, and upper bounds, and owned by this type's nearest package."/>
</eAnnotations>
<eParameters name="end1IsNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The navigability for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end1Aggregation" ordered="false" lowerBound="1" eType="#//AggregationKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The aggregation for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end1Name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end1Lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The lower bound for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end1Upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The upper bound for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end1Type" ordered="false" lowerBound="1" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The type for the first end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end2IsNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The navigability for the second end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end2Aggregation" ordered="false" lowerBound="1" eType="#//AggregationKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The aggregation for the second end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end2Name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the second end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end2Lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The lower bound for the second end of the new association."/>
</eAnnotations>
</eParameters>
<eParameters name="end2Upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The upper bound for the second end of the new association."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAssociations" ordered="false" upperBound="-1" eType="#//Association">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the associations in which this type is involved."/>
</eAnnotations>
</eOperations>
<eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.&#xA;result = false"/>
</eAnnotations>
<eParameters name="other" ordered="false" lowerBound="1" eType="#//Type"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/ownedType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the owning package of this classifier, if any."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//NamedElement/namespace"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.&#xA;A package is used to group elements, and provides a namespace for the grouped elements."/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xA;result = false"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
</contents>
</eAnnotations>
<eOperations name="elements_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If an element that is owned by a package has visibility, it is public or private.&#xA;self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)"/>
</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>
<eOperations name="applyProfile" ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Applies the current definition of the specified profile to this package and automatically applies required stereotypes in the profile to elements within this package's namespace hieararchy. If a different definition is already applied, automatically migrates any associated stereotype values on a &quot;best effort&quot; basis (matching classifiers and structural features by name)."/>
</eAnnotations>
<eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile to apply."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createOwnedClass" ordered="false" lowerBound="1" eType="#//Class">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a(n) (abstract) class with the specified name as an owned type of this package."/>
</eAnnotations>
<eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new class, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="isAbstract" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether the new class should be abstract."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createOwnedEnumeration" ordered="false" lowerBound="1" eType="#//Enumeration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a enumeration with the specified name as an owned type of this package."/>
</eAnnotations>
<eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new enumeration, or null."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createOwnedInterface" ordered="false" lowerBound="1" eType="#//Interface">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates an interface with the specified name as an owned type of this package."/>
</eAnnotations>
<eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new interface, or null."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createOwnedPrimitiveType" ordered="false" lowerBound="1" eType="#//PrimitiveType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a primitive type with the specified name as an owned type of this package."/>
</eAnnotations>
<eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new primitive type, or null."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="createOwnedStereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Creates a(n) (abstract) stereotype with the specified name as an owned stereotype of this profile."/>
</eAnnotations>
<eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name for the new stereotype, or null."/>
</eAnnotations>
</eParameters>
<eParameters name="isAbstract" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether the new stereotype should be abstract."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAllAppliedProfiles" ordered="false" upperBound="-1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the profiles that are applied to this package, including profiles applied to its nesting package(s)."/>
</eAnnotations>
</eOperations>
<eOperations name="getAllProfileApplications" ordered="false" upperBound="-1"
eType="#//ProfileApplication">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves all the profile applications for this package, including profile applications for its nesting package(s)."/>
</eAnnotations>
</eOperations>
<eOperations name="getAppliedProfile" ordered="false" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the profile with the specified qualified name that is applied to this package, or null if no such profile is applied."/>
</eAnnotations>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the applied profile to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAppliedProfile" ordered="false" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the profile with the specified qualified name that is applied to this package or any of its nesting packages (if indicated), or null if no such profile is applied."/>
</eAnnotations>
<eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The qualified name of the applied profile to retrieve."/>
</eAnnotations>
</eParameters>
<eParameters name="recurse" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether to look in nesting packages."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getAppliedProfiles" ordered="false" upperBound="-1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the profiles that are applied to this package."/>
</eAnnotations>
</eOperations>
<eOperations name="getProfileApplication" ordered="false" eType="#//ProfileApplication">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the application of the specified profile to this package, or null if no such profile is applied."/>
</eAnnotations>
<eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile whose application to retrieve."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getProfileApplication" ordered="false" eType="#//ProfileApplication">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Retrieves the application of the specified profile to this package or any of its nesting packages (if indicated), or null if no such profile is applied."/>
</eAnnotations>
<eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile whose application to retrieve."/>
</eAnnotations>
</eParameters>
<eParameters name="recurse" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether to look in nesting packages."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="isModelLibrary" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether this package is a model library."/>
</eAnnotations>
</eOperations>
<eOperations name="isProfileApplied" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines whether the specified profile is applied to this package."/>
</eAnnotations>
<eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile in question."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="unapplyProfile" ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Unapplies the specified profile from this package and automatically unapplies stereotypes in the profile from elements within this package's namespace hieararchy."/>
</eAnnotations>
<eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The profile to unapply."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="allApplicableStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.&#xA;result = &#xA;self.ownedStereotype->union(self.ownedMember->&#xA;&#x9;select(oclIsKindOf(Package)).oclAsType(Package).allApplicableStereotypes()->flatten())->asSet()"/>
</eAnnotations>
</eOperations>
<eOperations name="containingProfile" ordered="false" eType="#//Profile">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).&#xA;result =&#xA;if self.oclIsKindOf(Profile) then &#xA;&#x9;self.oclAsType(Profile)&#xA;else&#xA;&#x9;self.namespace.oclAsType(Package).containingProfile()&#xA;endif"/>
</eAnnotations>
</eOperations>
<eOperations name="makesVisible" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())&#xA;self.member->includes(el)"/>
</eAnnotations>
<eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
</eOperations>
<eOperations name="getNestedPackages" ordered="false" upperBound="-1" eType="#//Package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Package::/nestedPackage : Package&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="getOwnedStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Package::/ownedStereotype : Stereotype&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="getOwnedTypes" ordered="false" upperBound="-1" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Missing derivation for Package::/ownedType : Type&#xA;true"/>
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
<eOperations name="visibleMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xA;result = member->select( m | self.makesVisible(m))"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="URI" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
upperBound="-1" eType="#//Package" volatile="true" transient="true" derived="true"
eOpposite="#//Package/nestingPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the packaged elements that are Packages."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Package/packagedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" ordered="false"
eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/nestedPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Package that owns this Package."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//NamedElement/namespace"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedStereotype" ordered="false"
upperBound="-1" eType="#//Stereotype" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Stereotypes that are owned by the Package"/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Package/packagedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
upperBound="-1" eType="#//PackageMerge" containment="true" eOpposite="#//PackageMerge/receivingPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the PackageMerges that are owned by this Package."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
upperBound="-1" eType="#//PackageableElement" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the packageable elements that are owned by this Package."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="profileApplication" ordered="false"
upperBound="-1" eType="#//ProfileApplication" containment="true" eOpposite="#//ProfileApplication/applyingPackage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" ordered="false"
upperBound="-1" eType="#//Type" volatile="true" transient="true" derived="true"
eOpposite="#//Type/package">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the packaged elements that are Types."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Package/packagedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates."/>
</eAnnotations>
<eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = ownedTemplateSignature->notEmpty()"/>
</eAnnotations>
</eOperations>
<eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The optional template signature specifying the formal template parameters."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The optional bindings from this element to templates."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element."/>
</eAnnotations>
<eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parameters must own the elements they parameter or those elements must be owned by the element being templated.&#xA;templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)"/>
</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="ownedParameter" upperBound="-1"
eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The formal template parameters that are owned by this template signature."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//TemplateSignature/parameter #//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
upperBound="-1" eType="#//TemplateParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element that owns this template signature."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template."/>
</eAnnotations>
<eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The default must be compatible with the formal template parameter.&#xA;default->notEmpty() implies default->isCompatibleWith(parameteredElement)"/>
</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="default" ordered="false"
eType="#//ParameterableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element that is the default for this formal template parameter."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
eType="#//ParameterableElement" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element that is owned by this template parameter."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//TemplateParameter/parameteredElement #//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The element exposed by this template parameter."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The template signature that owns this template parameter."/>
</eAnnotations>
<eAnnotations source="subsets" references="#//Element/owner"/>