ATL转换:包括第三个Metamodel

时间:2011-12-05 12:08:46

标签: transformation eclipse-emf

我想检查一个ATL转换,如果一个元素是另一个元模型的类型,既不是源模型也不是目标元模型。 (在本例中为JavaModelMM)。

这是错误消息: org.eclipse.m2m.atl.engine.emfvm.VMException:找不到参考模型JavaModelMM

有人如何“包括”其他模特?

非常感谢

-- @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;

1 个答案:

答案 0 :(得分:0)

您只需要在create语句的from子句中列出第三个。

-- @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;

请注意,您还可以指定多个目标模型。