Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » M2M (model-to-model transformation) » ATL:Beginner to ATL
ATL:Beginner to ATL [message #108242] Sat, 11 July 2009 15:09 Go to next message
venkatesh  is currently offline venkatesh Friend
Messages: 41
Registered: July 2009
Member
Hi ,


I have a source MetaModel in ecore & target metaModel in ecore.

In my source Metomodel i have a Eclass LDMCoreview & it has 2 Esupertypes
LDMEntityWithAliases & LDMCoreEntityViewBase

In My target metamodle I have a Eclass LdapCoreVariantObjectClass and it
has 2 Esupertypes LdapObjectClassWithAliases & PDMCoreEntityViewBase

I created rule for

rule LDMCoreEntityViewBase_2_PDMCoreEntityViewBase {
from
v_left : LdmMetaModel!LDMCoreEntityViewBase
to
v_right : PdmModel!PDMCoreEntityViewBase (
childEntities <-
Set {v_left.childEntities},
childViews <-
Set {v_left.childViews}
)
}

rule LDMEntityWithAliases_2_LdapObjectClassWithAliases{
from
v_left : LdmMetaModel!LDMEntityWithAliases
to
v_right : PdmModel!LdapObjectClassWithAliases (
childAliases <-
Set {v_left.childAliases}
)
}
rule LDMCoreView_2_LdapCoreVariantObjectClass{
from
v_left : LdmMetaModel!LDMCoreView
to
v_right : PdmModel!LdapCoreVariantObjectClass(
viewAttributes <-
Set {v_left.viewAttributes},
viewNamings <-
Set {v_left.viewNamings}
)
}


If i have one Esuper Type then i can use extend (for example rule A extend
rule B) .Here i have morethan one Esupertype i don't know how to extend
morethan one Esuper type

LDM.ecore(Source Metomodel)

<eClassifiers xsi:type="ecore:EClass" name="LDMEntityWithAliases"
eSuperTypes="#//LDMEntity">
<eStructuralFeatures xsi:type="ecore:EReference" name="childAliases"
ordered="false"
upperBound="-1" eType="#//LDMAlias" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LDMCoreEntityViewBase">
<eStructuralFeatures xsi:type="ecore:EReference" name="childEntities"
ordered="false"
upperBound="-1" eType="#//LDMCoreEntity" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="childViews"
ordered="false"
upperBound="-1" eType="#//LDMCoreView" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LDMCoreView"
eSuperTypes="#//LDMEntityWithAliases #//LDMCoreEntityViewBase">
<eOperations name="getDnTemplates" ordered="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="viewAttributes"
ordered="false"
upperBound="-1" eType="#//LDMViewAttribute" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="viewNamings"
ordered="false"
upperBound="-1" eType="#//LDMViewNaming" containment="true"/>
</eClassifiers>


PDM.ecore(Target Metamodel)

<eClassifiers xsi:type="ecore:EClass" name="LdapObjectClassWithAliases"
eSuperTypes="#//LdapObjectClass">
<eStructuralFeatures xsi:type="ecore:EReference" name="childAliases"
ordered="false"
upperBound="-1" eType="#//LdapAliasClass" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PDMCoreEntityViewBase">
<eStructuralFeatures xsi:type="ecore:EReference" name="childEntities"
ordered="false"
upperBound="-1" eType="#//LdapCoreObjectClass" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="childViews"
ordered="false"
upperBound="-1" eType="#//LdapCoreVariantObjectClass"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LdapCoreVariantObjectClass"
eSuperTypes="#//LdapObjectClassWithAliases #//PDMCoreEntityViewBase">
<eOperations name="getDnTemplates" ordered="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="viewAttributes"
ordered="false"
upperBound="-1" eType="#//LdapVariantAttribute"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="viewNamings"
ordered="false"
upperBound="-1" eType="#//PDMViewNaming" containment="true"/>
</eClassifiers>

can you please help me .

Thanks in Advance,
venkatesh
Re: ATL:Beginner to ATL [message #108387 is a reply to message #108242] Wed, 15 July 2009 11:13 Go to previous message
Andy Carpenter is currently offline Andy CarpenterFriend
Messages: 145
Registered: July 2009
Senior Member
Venkatesh,

I can give you a definitive answer, but I've just checked the
ATL grammar and this only allows a match rule to extend
one other rule.

Andy.

"venkatesh " <venkateshmvp@gmail.com> wrote in message
news:8cf6cfb42f38629ca0167e6007c0bd29$1@www.eclipse.org...
> Hi ,
>
> I have a source MetaModel in ecore & target metaModel in ecore.
>
> In my source Metomodel i have a Eclass LDMCoreview & it has 2 Esupertypes
> LDMEntityWithAliases & LDMCoreEntityViewBase
>
> In My target metamodle I have a Eclass LdapCoreVariantObjectClass and it
> has 2 Esupertypes LdapObjectClassWithAliases & PDMCoreEntityViewBase
>
> I created rule for
> rule LDMCoreEntityViewBase_2_PDMCoreEntityViewBase { from v_left :
> LdmMetaModel!LDMCoreEntityViewBase
> to v_right : PdmModel!PDMCoreEntityViewBase (
> childEntities <- Set {v_left.childEntities}, childViews <- Set
> {v_left.childViews} )
> }
>
> rule LDMEntityWithAliases_2_LdapObjectClassWithAliases{ from v_left :
> LdmMetaModel!LDMEntityWithAliases
> to v_right : PdmModel!LdapObjectClassWithAliases (
> childAliases <- Set {v_left.childAliases} )
> }
> rule LDMCoreView_2_LdapCoreVariantObjectClass{ from v_left :
> LdmMetaModel!LDMCoreView
> to v_right : PdmModel!LdapCoreVariantObjectClass(
> viewAttributes <- Set {v_left.viewAttributes}, viewNamings <- Set
> {v_left.viewNamings} )
> }
>
>
> If i have one Esuper Type then i can use extend (for example rule A extend
> rule B) .Here i have morethan one Esupertype i don't know how to extend
> morethan one Esuper type
>
> LDM.ecore(Source Metomodel)
>
> <eClassifiers xsi:type="ecore:EClass" name="LDMEntityWithAliases"
> eSuperTypes="#//LDMEntity">
> <eStructuralFeatures xsi:type="ecore:EReference" name="childAliases"
> ordered="false"
> upperBound="-1" eType="#//LDMAlias" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="LDMCoreEntityViewBase">
> <eStructuralFeatures xsi:type="ecore:EReference" name="childEntities"
> ordered="false"
> upperBound="-1" eType="#//LDMCoreEntity" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="childViews"
> ordered="false"
> upperBound="-1" eType="#//LDMCoreView" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="LDMCoreView"
> eSuperTypes="#//LDMEntityWithAliases #//LDMCoreEntityViewBase">
> <eOperations name="getDnTemplates" ordered="false" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="viewAttributes"
> ordered="false"
> upperBound="-1" eType="#//LDMViewAttribute" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="viewNamings"
> ordered="false"
> upperBound="-1" eType="#//LDMViewNaming" containment="true"/>
> </eClassifiers>
>
>
> PDM.ecore(Target Metamodel)
>
> <eClassifiers xsi:type="ecore:EClass" name="LdapObjectClassWithAliases"
> eSuperTypes="#//LdapObjectClass">
> <eStructuralFeatures xsi:type="ecore:EReference" name="childAliases"
> ordered="false"
> upperBound="-1" eType="#//LdapAliasClass" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="PDMCoreEntityViewBase">
> <eStructuralFeatures xsi:type="ecore:EReference" name="childEntities"
> ordered="false"
> upperBound="-1" eType="#//LdapCoreObjectClass" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="childViews"
> ordered="false"
> upperBound="-1" eType="#//LdapCoreVariantObjectClass"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="LdapCoreVariantObjectClass"
> eSuperTypes="#//LdapObjectClassWithAliases #//PDMCoreEntityViewBase">
> <eOperations name="getDnTemplates" ordered="false" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="viewAttributes"
> ordered="false"
> upperBound="-1" eType="#//LdapVariantAttribute"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="viewNamings"
> ordered="false"
> upperBound="-1" eType="#//PDMViewNaming" containment="true"/>
> </eClassifiers>
>
> can you please help me .
>
> Thanks in Advance,
> venkatesh
Previous Topic:[QVTo] print out log and debug messages
Next Topic:[QVT] some questions from a QVT beginner
Goto Forum:
  


Current Time: Fri Apr 19 04:40:11 GMT 2024

Powered by FUDForum. Page generated in 0.01235 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top