blob: 15e04ce689793eeb6a82783428058b8450110b0c [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="UML2EcoreMapping" nsURI="http://www.eclipse.org/ocl/2012/UML2EcoreMapping" nsPrefix="u2e">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
<details key="uml" value="http://www.eclipse.org/uml2/5.0.0/UML"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="CreateOperation" eSuperTypes="#//OperationMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="'nameLabel(newName)' + ' &lt;= ' + 'operationLabels(oldOperations)'"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreatePackage" eSuperTypes="#//PackageMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(newName) + ' &lt;= ' + packageLabels(oldPackages)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isASmetamodel" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ecoreFileStem" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="typeMappings" upperBound="-1" eType="#//TypeMapping" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateProperty" eSuperTypes="#//PropertyMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(newName) + ' &lt;= ' + propertyLabels(oldProperties)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newIsDerived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newIsResolveProxies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newIsTransient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newIsUnsettable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newIsVolatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newLowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateType" eSuperTypes="#//TypeMapping">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="UniqueCreatePropertyNames"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="UniqueCreatePropertyNames" value="propertyMappings->selectByKind(CreateProperty)->isUnique(newName)"/>
</eAnnotations>
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(newName) + ' &lt;= ' + typeLabels(oldTypes)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="newInstanceTypeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="orderedSuperTypes" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="excludeProperties" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="includeProperties" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="excludeTypes" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operationMappings" upperBound="-1" eType="#//OperationMapping" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="propertyMappings" upperBound="-1" eType="#//PropertyMapping" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeleteOperation" eSuperTypes="#//OperationMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(oldName) + ' &lt;= ' + operationLabels(oldOperations)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="oldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeletePackage" eSuperTypes="#//PackageMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="oldName"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="oldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="deleteTypes" upperBound="-1" eType="#//DeleteType" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeleteProperty" eSuperTypes="#//PropertyMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(oldName) + ' &lt;= ' + propertyLabels(oldProperties)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="oldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeleteType" eSuperTypes="#//TypeMapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="nameLabel(oldName) + ' &lt;= ' + typeLabels(oldTypes)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="oldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operationMappings" upperBound="-1" eType="#//OperationMapping" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="propertyMappings" upperBound="-1" eType="#//PropertyMapping" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Mapping" abstract="true">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="'default-label'"/>
</eAnnotations>
</eOperations>
<eOperations name="nameLabel" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="if name = null then 'null' else name endif"/>
</eAnnotations>
<eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="operationLabels" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="operations->sortedBy(nameLabel(name))->iterate(p; acc : String = '' | let type : uml::Type = if p.class &lt;> null then p.class else p.interface endif in acc + ' ' + nameLabel(p.class?.package?.name) + '::' + nameLabel(p.class?.name) + '::' + nameLabel(p.name))"/>
</eAnnotations>
<eParameters name="operations" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
</eOperations>
<eOperations name="packageLabel" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="if p &lt;> null then nameLabel(p.name) else 'null' endif"/>
</eAnnotations>
<eParameters name="p" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eOperations>
<eOperations name="packageLabels" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="packages->sortedBy(nameLabel(name))->iterate(p; acc : String = '' | acc + ' ' + packageLabel(p))"/>
</eAnnotations>
<eParameters name="packages" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eOperations>
<eOperations name="propertyLabel" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="if p &lt;> null then let t = if p.class &lt;> null then p.class else p.association endif in typeLabel(t) + '::' + nameLabel(p.name) else 'null' endif"/>
</eAnnotations>
<eParameters name="p" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</eOperations>
<eOperations name="propertyLabels" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="properties->sortedBy(nameLabel(name))->iterate(p; acc : String = '' | acc + ' ' + propertyLabel(p))"/>
</eAnnotations>
<eParameters name="properties" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</eOperations>
<eOperations name="typeLabel" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="if t &lt;> null then packageLabel(t.package) + '::' + nameLabel(t.name) else 'null' endif"/>
</eAnnotations>
<eParameters name="t" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
</eOperations>
<eOperations name="typeLabels" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="types->sortedBy(nameLabel(name))->iterate(t; acc : String = '' | acc + ' ' + typeLabel(t))"/>
</eAnnotations>
<eParameters name="types" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
transient="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="label()"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Mappings">
<eStructuralFeatures xsi:type="ecore:EReference" name="mappings" upperBound="-1" eType="#//Mapping" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PackageMapping" abstract="true" eSuperTypes="#//Mapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="packageLabels(oldPackages)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="oldPackages" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OperationMapping" abstract="true" eSuperTypes="#//Mapping">
<eStructuralFeatures xsi:type="ecore:EReference" name="oldOperations" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PropertyMapping" abstract="true" eSuperTypes="#//Mapping">
<eStructuralFeatures xsi:type="ecore:EReference" name="oldProperties" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeMapping" abstract="true" eSuperTypes="#//Mapping">
<eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="typeLabels(oldTypes)"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="oldTypes" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
</eClassifiers>
</ecore:EPackage>