2011-12-05 2 views
0

Je veux vérifier une transformation ATL si un élément est un type d'un autre métamodèle, qui n'est ni le métamodèle source ni le métamodèle cible. (Dans ce cas JavaModelMM).Transformation ATL: inclure un troisième métamodèle

Ceci est le message d'erreur: org.eclipse.m2m.atl.engine.emfvm.VMException: Vous ne trouvez pas le modèle de référence JavaModelMM

Quelqu'un comment « inclure » d'autres modèles?

Merci beaucoup

-- @nsURI JavaModelMM=http://www.eclipse.org/MoDisco/Java/0.2.incubation/java 
-- @nsURI Javapp=http://www.eclipse.org/MoDisco/Java/Composition/0.1.incubation /javaApplication 
-- @nsURI SMM=http://www.eclipse.org/MoDisco/SMM/1.0.Beta2/smm 


module JavaApp2LOC; 
create Metrics: SMM from JavaApplication: Javapp; 

rule name { 
    from 
     region: Javapp!JavaNodeSourceRegion (
      region.javaNode.isMethodDeclaration() 
     ) 
    to 
     loc: SMM!NamedMeasure (
      name <- region.javaNode.toString() 
     ) 
} 


helper context OclAny def: isMethodDeclaration() : Boolean = 
    if self.oclIsTypeOf(JavaModelMM!MethodDeclaration.oclType()) then true 
    else false 
    endif; 

Répondre

0

Vous avez juste besoin d'inscrire le troisième dans la clause de la create.

-- @nsURI JavaModelMM=http://www.eclipse.org/MoDisco/Java/0.2.incubation/java 
-- @nsURI Javapp=http://www.eclipse.org/MoDisco/Java/Composition/0.1.incubation/javaApplication 
-- @nsURI SMM=http://www.eclipse.org/MoDisco/SMM/1.0.Beta2/smm 
-- @nsURI ECore=http://www.eclipse.org/emf/2002/Ecore 

module JavaApp2LOC; 
create Metrics: SMM from JavaApplication: Javapp, anotherInput: ECore; 

Notez que vous pouvez également spécifier plusieurs modèles cible.

Questions connexes