855 lines
44 KiB
Plaintext
855 lines
44 KiB
Plaintext
module mote2loss;
|
|
|
|
create LOSS : OUT from MM : IN;
|
|
|
|
lazy rule ReferenceToLink {
|
|
from
|
|
refName : String,
|
|
source : OclAny
|
|
to
|
|
link : OUT!Link (
|
|
name <- refName,
|
|
referenceTo <- source
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EDouble2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EDouble" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EDouble'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__ECharacterObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::ECharacterObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::ECharacterObject'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EOperation2Complex {
|
|
from
|
|
source : IN!"ecore::EOperation" in MM (source.oclIsTypeOf(IN!"ecore::EOperation"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EOperation',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) ).union(Set{source.eContainingClass}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eContainingClass', it)) ).union(source.eTypeParameters->collect(it | thisModule.ReferenceToLink('eTypeParameters', it))).union(source.eParameters->collect(it | thisModule.ReferenceToLink('eParameters', it))).union(source.eExceptions->collect(it | thisModule.ReferenceToLink('eExceptions', it))).union(source.eGenericExceptions->collect(it | thisModule.ReferenceToLink('eGenericExceptions', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__ModelDomain2Complex {
|
|
from
|
|
source : IN!"mltgg::ModelDomain" in MM (source.oclIsTypeOf(IN!"mltgg::ModelDomain"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::ModelDomain',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(source.modelObjects->collect(it | thisModule.ReferenceToLink('modelObjects', it))).union(source.modelLinks->collect(it | thisModule.ReferenceToLink('modelLinks', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__ELongObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::ELongObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::ELongObject'
|
|
)
|
|
}
|
|
|
|
rule CLecore__ETypeParameter2Complex {
|
|
from
|
|
source : IN!"ecore::ETypeParameter" in MM (source.oclIsTypeOf(IN!"ecore::ETypeParameter"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::ETypeParameter',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(source.eBounds->collect(it | thisModule.ReferenceToLink('eBounds', it)))
|
|
)
|
|
}
|
|
|
|
rule CLecore__EEnumLiteral2Complex {
|
|
from
|
|
source : IN!"ecore::EEnumLiteral" in MM (source.oclIsTypeOf(IN!"ecore::EEnumLiteral"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EEnumLiteral',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EInt2Prim('value', source.value)).including(thisModule.DTecore__EEnumerator2Prim('instance', source.instance)).including(thisModule.DTecore__EString2Prim('literal', source.literal)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eEnum}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eEnum', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTmltgg__LinkOrderConstraintEnum2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"mltgg::LinkOrderConstraintEnum" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'mltgg::LinkOrderConstraintEnum'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EFloatObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EFloatObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EFloatObject'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EBooleanObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EBooleanObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EBooleanObject'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EShortObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EShortObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EShortObject'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EEnumerator2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EEnumerator" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EEnumerator'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EBigDecimal2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EBigDecimal" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EBigDecimal'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__ModelElement2Complex {
|
|
from
|
|
source : IN!"mltgg::ModelElement" in MM (source.oclIsTypeOf(IN!"mltgg::ModelElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::ModelElement',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.incomingCorrespondenceLink}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('incomingCorrespondenceLink', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__TGGRule2Complex {
|
|
from
|
|
source : IN!"mltgg::TGGRule" in MM (source.oclIsTypeOf(IN!"mltgg::TGGRule"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::TGGRule',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).including(thisModule.DTecore__EString2Prim('ruleID', source.ruleID)).including(thisModule.DTecore__EBoolean2Prim('enabled', source.enabled)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.leftModelDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('leftModelDomain', it)) ).union(Set{source.rightModelDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('rightModelDomain', it)) ).union(Set{source.correspondenceDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('correspondenceDomain', it)) ).union(source.attributeFormulas->collect(it | thisModule.ReferenceToLink('attributeFormulas', it))).union(source.ruleParameters->collect(it | thisModule.ReferenceToLink('ruleParameters', it))).union(Set{source.ruleGroup}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ruleGroup', it)) ).union(source.leftInputElements->collect(it | thisModule.ReferenceToLink('leftInputElements', it))).union(source.rightInputElements->collect(it | thisModule.ReferenceToLink('rightInputElements', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EJavaClass2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EJavaClass" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EJavaClass'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__TGGRuleGroup2Complex {
|
|
from
|
|
source : IN!"mltgg::TGGRuleGroup" in MM (source.oclIsTypeOf(IN!"mltgg::TGGRuleGroup"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::TGGRuleGroup',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).including(thisModule.DTecore__EString2Prim('ruleGroupID', source.ruleGroupID)).including(thisModule.DTecore__EBoolean2Prim('isAxiom', source.isAxiom)).including(thisModule.DTecore__EBoolean2Prim('enabled', source.enabled)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.tgg}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('tgg', it)) ).union(source.rules->collect(it | thisModule.ReferenceToLink('rules', it)))
|
|
)
|
|
}
|
|
|
|
rule CLecore__EModelElement2Complex {
|
|
from
|
|
source : IN!"ecore::EModelElement" in MM (source.oclIsTypeOf(IN!"ecore::EModelElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EModelElement',
|
|
primitives <- Set{}.union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EBigInteger2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EBigInteger" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EBigInteger'
|
|
)
|
|
}
|
|
|
|
lazy rule DTmltgg__TGGModifierEnum2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"mltgg::TGGModifierEnum" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'mltgg::TGGModifierEnum'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EInt2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EInt" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EInt'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EIntegerObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EIntegerObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EIntegerObject'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__ELong2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::ELong" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::ELong'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EResource2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EResource" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EResource'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EChar2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EChar" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EChar'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EFloat2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EFloat" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EFloat'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__RuleElement2Complex {
|
|
from
|
|
source : IN!"mltgg::RuleElement" in MM (source.oclIsTypeOf(IN!"mltgg::RuleElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::RuleElement',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it)))
|
|
)
|
|
}
|
|
|
|
rule CLecore__EAttribute2Complex {
|
|
from
|
|
source : IN!"ecore::EAttribute" in MM (source.oclIsTypeOf(IN!"ecore::EAttribute"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EAttribute',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).including(thisModule.DTecore__EBoolean2Prim('changeable', source.changeable)).including(thisModule.DTecore__EBoolean2Prim('volatile', source.volatile)).including(thisModule.DTecore__EBoolean2Prim('transient', source.transient)).including(thisModule.DTecore__EString2Prim('defaultValueLiteral', source.defaultValueLiteral)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EBoolean2Prim('unsettable', source.unsettable)).including(thisModule.DTecore__EBoolean2Prim('derived', source.derived)).including(thisModule.DTecore__EBoolean2Prim('iD', source.iD)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) ).union(Set{source.eContainingClass}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eContainingClass', it)) ).union(Set{source.eAttributeType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eAttributeType', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EObject2Complex {
|
|
from
|
|
source : IN!"ecore::EObject" in MM (source.oclIsTypeOf(IN!"ecore::EObject"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EObject',
|
|
primitives <- Set{}
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EJavaObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EJavaObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EJavaObject'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EPackage2Complex {
|
|
from
|
|
source : IN!"ecore::EPackage" in MM (source.oclIsTypeOf(IN!"ecore::EPackage"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EPackage',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('nsURI', source.nsURI)).including(thisModule.DTecore__EString2Prim('nsPrefix', source.nsPrefix)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eFactoryInstance}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eFactoryInstance', it)) ).union(source.eClassifiers->collect(it | thisModule.ReferenceToLink('eClassifiers', it))).union(source.eSubpackages->collect(it | thisModule.ReferenceToLink('eSubpackages', it))).union(Set{source.eSuperPackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eSuperPackage', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__AttributeAssignment2Complex {
|
|
from
|
|
source : IN!"mltgg::AttributeAssignment" in MM (source.oclIsTypeOf(IN!"mltgg::AttributeAssignment"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::AttributeAssignment',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTecore__EBoolean2Prim('initOnly', source.initOnly)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.modelObject}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('modelObject', it)) ).union(Set{source.assignmentExpression}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('assignmentExpression', it)) ).union(Set{source.feature}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('feature', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EGenericType2Complex {
|
|
from
|
|
source : IN!"ecore::EGenericType" in MM (source.oclIsTypeOf(IN!"ecore::EGenericType"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EGenericType',
|
|
primitives <- Set{}.union(Set{source.eUpperBound}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eUpperBound', it)) ).union(source.eTypeArguments->collect(it | thisModule.ReferenceToLink('eTypeArguments', it))).union(Set{source.eRawType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eRawType', it)) ).union(Set{source.eLowerBound}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eLowerBound', it)) ).union(Set{source.eTypeParameter}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eTypeParameter', it)) ).union(Set{source.eClassifier}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eClassifier', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EDiagnosticChain2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EDiagnosticChain" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EDiagnosticChain'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EFeatureMap2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EFeatureMap" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EFeatureMap'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__ModelObject2Complex {
|
|
from
|
|
source : IN!"mltgg::ModelObject" in MM (source.oclIsTypeOf(IN!"mltgg::ModelObject"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::ModelObject',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.incomingCorrespondenceLink}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('incomingCorrespondenceLink', it)) ).union(Set{source.type}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('type', it)) ).union(source.outgoingLinks->collect(it | thisModule.ReferenceToLink('outgoingLinks', it))).union(source.incomingLinks->collect(it | thisModule.ReferenceToLink('incomingLinks', it))).union(source.constraints->collect(it | thisModule.ReferenceToLink('constraints', it))).union(source.attributeAssignments->collect(it | thisModule.ReferenceToLink('attributeAssignments', it))).union(Set{source.modelDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('modelDomain', it)) ).union(source.forwardConstraints->collect(it | thisModule.ReferenceToLink('forwardConstraints', it))).union(source.backwardConstraints->collect(it | thisModule.ReferenceToLink('backwardConstraints', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__CorrespondenceDomain2Complex {
|
|
from
|
|
source : IN!"mltgg::CorrespondenceDomain" in MM (source.oclIsTypeOf(IN!"mltgg::CorrespondenceDomain"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::CorrespondenceDomain',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.rule}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('rule', it)) ).union(source.correspondenceNodes->collect(it | thisModule.ReferenceToLink('correspondenceNodes', it))).union(source.correspondenceLinks->collect(it | thisModule.ReferenceToLink('correspondenceLinks', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__CorrespondenceNode2Complex {
|
|
from
|
|
source : IN!"mltgg::CorrespondenceNode" in MM (source.oclIsTypeOf(IN!"mltgg::CorrespondenceNode"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::CorrespondenceNode',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.type}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('type', it)) ).union(source.outgoingLinks->collect(it | thisModule.ReferenceToLink('outgoingLinks', it))).union(Set{source.correspondenceDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('correspondenceDomain', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EEnum2Complex {
|
|
from
|
|
source : IN!"ecore::EEnum" in MM (source.oclIsTypeOf(IN!"ecore::EEnum"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EEnum',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('instanceClassName', source.instanceClassName)).including(thisModule.DTecore__EJavaClass2Prim('instanceClass', source.instanceClass)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EString2Prim('instanceTypeName', source.instanceTypeName)).including(thisModule.DTecore__EBoolean2Prim('serializable', source.serializable)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.ePackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ePackage', it)) ).union(source.eTypeParameters->collect(it | thisModule.ReferenceToLink('eTypeParameters', it))).union(source.eLiterals->collect(it | thisModule.ReferenceToLink('eLiterals', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__ModelLink2Complex {
|
|
from
|
|
source : IN!"mltgg::ModelLink" in MM (source.oclIsTypeOf(IN!"mltgg::ModelLink"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::ModelLink',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).including(thisModule.DTmltgg__LinkPositionConstraintEnum2Prim('linkPositionConstraint', source.linkPositionConstraint)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.incomingCorrespondenceLink}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('incomingCorrespondenceLink', it)) ).union(Set{source.source}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('source', it)) ).union(Set{source.target}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('target', it)) ).union(Set{source.feature}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('feature', it)) ).union(source.outgoingLinkOrderConstraints->collect(it | thisModule.ReferenceToLink('outgoingLinkOrderConstraints', it))).union(source.incomingLinkOrderConstraints->collect(it | thisModule.ReferenceToLink('incomingLinkOrderConstraints', it))).union(Set{source.modelDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('modelDomain', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EStructuralFeature2Complex {
|
|
from
|
|
source : IN!"ecore::EStructuralFeature" in MM (source.oclIsTypeOf(IN!"ecore::EStructuralFeature"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EStructuralFeature',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).including(thisModule.DTecore__EBoolean2Prim('changeable', source.changeable)).including(thisModule.DTecore__EBoolean2Prim('volatile', source.volatile)).including(thisModule.DTecore__EBoolean2Prim('transient', source.transient)).including(thisModule.DTecore__EString2Prim('defaultValueLiteral', source.defaultValueLiteral)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EBoolean2Prim('unsettable', source.unsettable)).including(thisModule.DTecore__EBoolean2Prim('derived', source.derived)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) ).union(Set{source.eContainingClass}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eContainingClass', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__LinkOrderConstraint2Complex {
|
|
from
|
|
source : IN!"mltgg::LinkOrderConstraint" in MM (source.oclIsTypeOf(IN!"mltgg::LinkOrderConstraint"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::LinkOrderConstraint',
|
|
primitives <- Set{}.including(thisModule.DTmltgg__LinkOrderConstraintEnum2Prim('kind', source.kind)).union(Set{source.predecessorLink}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('predecessorLink', it)) ).union(Set{source.successorLink}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('successorLink', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EDataType2Complex {
|
|
from
|
|
source : IN!"ecore::EDataType" in MM (source.oclIsTypeOf(IN!"ecore::EDataType"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EDataType',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('instanceClassName', source.instanceClassName)).including(thisModule.DTecore__EJavaClass2Prim('instanceClass', source.instanceClass)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EString2Prim('instanceTypeName', source.instanceTypeName)).including(thisModule.DTecore__EBoolean2Prim('serializable', source.serializable)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.ePackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ePackage', it)) ).union(source.eTypeParameters->collect(it | thisModule.ReferenceToLink('eTypeParameters', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EByteObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EByteObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EByteObject'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EParameter2Complex {
|
|
from
|
|
source : IN!"ecore::EParameter" in MM (source.oclIsTypeOf(IN!"ecore::EParameter"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EParameter',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) ).union(Set{source.eOperation}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eOperation', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__RightModelDomain2Complex {
|
|
from
|
|
source : IN!"mltgg::RightModelDomain" in MM (source.oclIsTypeOf(IN!"mltgg::RightModelDomain"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::RightModelDomain',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(source.modelObjects->collect(it | thisModule.ReferenceToLink('modelObjects', it))).union(source.modelLinks->collect(it | thisModule.ReferenceToLink('modelLinks', it))).union(Set{source.rule}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('rule', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EShort2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EShort" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EShort'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EClass2Complex {
|
|
from
|
|
source : IN!"ecore::EClass" in MM (source.oclIsTypeOf(IN!"ecore::EClass"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EClass',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('instanceClassName', source.instanceClassName)).including(thisModule.DTecore__EJavaClass2Prim('instanceClass', source.instanceClass)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EString2Prim('instanceTypeName', source.instanceTypeName)).including(thisModule.DTecore__EBoolean2Prim('abstract', source.abstract)).including(thisModule.DTecore__EBoolean2Prim('interface', source.interface)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.ePackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ePackage', it)) ).union(source.eTypeParameters->collect(it | thisModule.ReferenceToLink('eTypeParameters', it))).union(source.eSuperTypes->collect(it | thisModule.ReferenceToLink('eSuperTypes', it))).union(source.eOperations->collect(it | thisModule.ReferenceToLink('eOperations', it))).union(source.eAllAttributes->collect(it | thisModule.ReferenceToLink('eAllAttributes', it))).union(source.eAllReferences->collect(it | thisModule.ReferenceToLink('eAllReferences', it))).union(source.eReferences->collect(it | thisModule.ReferenceToLink('eReferences', it))).union(source.eAttributes->collect(it | thisModule.ReferenceToLink('eAttributes', it))).union(source.eAllContainments->collect(it | thisModule.ReferenceToLink('eAllContainments', it))).union(source.eAllOperations->collect(it | thisModule.ReferenceToLink('eAllOperations', it))).union(source.eAllStructuralFeatures->collect(it | thisModule.ReferenceToLink('eAllStructuralFeatures', it))).union(source.eAllSuperTypes->collect(it | thisModule.ReferenceToLink('eAllSuperTypes', it))).union(Set{source.eIDAttribute}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eIDAttribute', it)) ).union(source.eStructuralFeatures->collect(it | thisModule.ReferenceToLink('eStructuralFeatures', it))).union(source.eGenericSuperTypes->collect(it | thisModule.ReferenceToLink('eGenericSuperTypes', it))).union(source.eAllGenericSuperTypes->collect(it | thisModule.ReferenceToLink('eAllGenericSuperTypes', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EInvocationTargetException2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EInvocationTargetException" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EInvocationTargetException'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__TGG2Complex {
|
|
from
|
|
source : IN!"mltgg::TGG" in MM (source.oclIsTypeOf(IN!"mltgg::TGG"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::TGG',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).including(thisModule.DTecore__EString2Prim('tggID', source.tggID)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(source.ruleGroups->collect(it | thisModule.ReferenceToLink('ruleGroups', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTmltgg__LinkPositionConstraintEnum2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"mltgg::LinkPositionConstraintEnum" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'mltgg::LinkPositionConstraintEnum'
|
|
)
|
|
}
|
|
|
|
rule CLecore__ENamedElement2Complex {
|
|
from
|
|
source : IN!"ecore::ENamedElement" in MM (source.oclIsTypeOf(IN!"ecore::ENamedElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::ENamedElement',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__RuleParameter2Complex {
|
|
from
|
|
source : IN!"mltgg::RuleParameter" in MM (source.oclIsTypeOf(IN!"mltgg::RuleParameter"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'mltgg::RuleParameter',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('description', source.description)).including(thisModule.DTecore__EString2Prim('displayName', source.displayName)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.type}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('type', it)) ).union(Set{source.forwardCalculationExpression}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('forwardCalculationExpression', it)) ).union(Set{source.backwardCalculationExpression}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('backwardCalculationExpression', it)) ).union(Set{source.rule}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('rule', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__LeftModelDomain2Complex {
|
|
from
|
|
source : IN!"mltgg::LeftModelDomain" in MM (source.oclIsTypeOf(IN!"mltgg::LeftModelDomain"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::LeftModelDomain',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(source.modelObjects->collect(it | thisModule.ReferenceToLink('modelObjects', it))).union(source.modelLinks->collect(it | thisModule.ReferenceToLink('modelLinks', it))).union(Set{source.rule}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('rule', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EByte2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EByte" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EByte'
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__CorrespondenceLink2Complex {
|
|
from
|
|
source : IN!"mltgg::CorrespondenceLink" in MM (source.oclIsTypeOf(IN!"mltgg::CorrespondenceLink"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::CorrespondenceLink',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it))).union(Set{source.source}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('source', it)) ).union(Set{source.target}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('target', it)) ).union(Set{source.correspondenceDomain}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('correspondenceDomain', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EResourceSet2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EResourceSet" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EResourceSet'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EReference2Complex {
|
|
from
|
|
source : IN!"ecore::EReference" in MM (source.oclIsTypeOf(IN!"ecore::EReference"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EReference',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).including(thisModule.DTecore__EBoolean2Prim('changeable', source.changeable)).including(thisModule.DTecore__EBoolean2Prim('volatile', source.volatile)).including(thisModule.DTecore__EBoolean2Prim('transient', source.transient)).including(thisModule.DTecore__EString2Prim('defaultValueLiteral', source.defaultValueLiteral)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EBoolean2Prim('unsettable', source.unsettable)).including(thisModule.DTecore__EBoolean2Prim('derived', source.derived)).including(thisModule.DTecore__EBoolean2Prim('containment', source.containment)).including(thisModule.DTecore__EBoolean2Prim('container', source.container)).including(thisModule.DTecore__EBoolean2Prim('resolveProxies', source.resolveProxies)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) ).union(Set{source.eContainingClass}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eContainingClass', it)) ).union(Set{source.eOpposite}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eOpposite', it)) ).union(Set{source.eReferenceType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eReferenceType', it)) ).union(source.eKeys->collect(it | thisModule.ReferenceToLink('eKeys', it)))
|
|
)
|
|
}
|
|
|
|
rule CLmltgg__CorrespondenceElement2Complex {
|
|
from
|
|
source : IN!"mltgg::CorrespondenceElement" in MM (source.oclIsTypeOf(IN!"mltgg::CorrespondenceElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'mltgg::CorrespondenceElement',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('uuid', source.uuid)).including(thisModule.DTmltgg__TGGModifierEnum2Prim('modifier', source.modifier)).union(source.annotations->collect(it | thisModule.ReferenceToLink('annotations', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EFeatureMapEntry2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EFeatureMapEntry" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EFeatureMapEntry'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__ETreeIterator2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::ETreeIterator" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::ETreeIterator'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EFactory2Complex {
|
|
from
|
|
source : IN!"ecore::EFactory" in MM (source.oclIsTypeOf(IN!"ecore::EFactory"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EFactory',
|
|
primitives <- Set{}.union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.ePackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ePackage', it)) )
|
|
)
|
|
}
|
|
|
|
rule CLecore__EAnnotation2Complex {
|
|
from
|
|
source : IN!"ecore::EAnnotation" in MM (source.oclIsTypeOf(IN!"ecore::EAnnotation"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EAnnotation',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('source', source.source)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(source.details->collect(it | thisModule.ReferenceToLink('details', it))).union(Set{source.eModelElement}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eModelElement', it)) ).union(source.contents->collect(it | thisModule.ReferenceToLink('contents', it))).union(source.references->collect(it | thisModule.ReferenceToLink('references', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EString2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EString" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EString'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EClassifier2Complex {
|
|
from
|
|
source : IN!"ecore::EClassifier" in MM (source.oclIsTypeOf(IN!"ecore::EClassifier"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::EClassifier',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EString2Prim('instanceClassName', source.instanceClassName)).including(thisModule.DTecore__EJavaClass2Prim('instanceClass', source.instanceClass)).including(thisModule.DTecore__EJavaObject2Prim('defaultValue', source.defaultValue)).including(thisModule.DTecore__EString2Prim('instanceTypeName', source.instanceTypeName)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.ePackage}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('ePackage', it)) ).union(source.eTypeParameters->collect(it | thisModule.ReferenceToLink('eTypeParameters', it)))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EByteArray2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EByteArray" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EByteArray'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EDoubleObject2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EDoubleObject" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EDoubleObject'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EMap2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EMap" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EMap'
|
|
)
|
|
}
|
|
|
|
rule CLecore__EStringToStringMapEntry2Complex {
|
|
from
|
|
source : IN!"ecore::EStringToStringMapEntry" in MM (source.oclIsTypeOf(IN!"ecore::EStringToStringMapEntry"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- 'NoName',
|
|
className <- 'ecore::EStringToStringMapEntry',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('key', source.key)).including(thisModule.DTecore__EString2Prim('value', source.value))
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EBoolean2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EBoolean" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EBoolean'
|
|
)
|
|
}
|
|
|
|
rule CLecore__ETypedElement2Complex {
|
|
from
|
|
source : IN!"ecore::ETypedElement" in MM (source.oclIsTypeOf(IN!"ecore::ETypedElement"))
|
|
to
|
|
prim : OUT!Complex (
|
|
reference <- source,
|
|
name <- source.name,
|
|
className <- 'ecore::ETypedElement',
|
|
primitives <- Set{}.including(thisModule.DTecore__EString2Prim('name', source.name)).including(thisModule.DTecore__EBoolean2Prim('ordered', source.ordered)).including(thisModule.DTecore__EBoolean2Prim('unique', source.unique)).including(thisModule.DTecore__EInt2Prim('lowerBound', source.lowerBound)).including(thisModule.DTecore__EInt2Prim('upperBound', source.upperBound)).including(thisModule.DTecore__EBoolean2Prim('many', source.many)).including(thisModule.DTecore__EBoolean2Prim('required', source.required)).union(source.eAnnotations->collect(it | thisModule.ReferenceToLink('eAnnotations', it))).union(Set{source.eType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eType', it)) ).union(Set{source.eGenericType}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink('eGenericType', it)) )
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EEList2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EEList" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EEList'
|
|
)
|
|
}
|
|
|
|
lazy rule DTecore__EDate2Prim {
|
|
from
|
|
attrName : String,
|
|
source : IN!"ecore::EDate" in MM
|
|
to
|
|
prim : OUT!Primitive (
|
|
name <- attrName,
|
|
className <- 'ecore::EDate'
|
|
)
|
|
}
|