Преобразование ATL: включите третью Метамодель - PullRequest
0 голосов
/ 05 декабря 2011

Я хочу проверить в преобразовании 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 голосов
/ 21 декабря 2012

Вам просто нужно указать третий в предложении from оператора 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;

Обратите внимание, что вы также можете указать несколько целевых моделей.

...