blob: d27568af10cf16b0fe2269857c38312b870abafa [file] [log] [blame]
-- @atlcompiler emftvm
-- @nsURI ECORE=http://www.eclipse.org/emf/2002/Ecore
module "Regression::Bug580300";
create OUT : ECORE from IN : ECORE;
helper def: diff2 : Integer = 0;
-- This helper increments diff2 value
-- CONTEXT: thisModule
-- RETURN: Integer
helper def: incDiff2() : Integer =
thisModule.refSetValue('diff2', thisModule.diff2+1).refGetValue('diff2');
rule EPackage {
from
s : ECORE!EPackage
to
t : ECORE!EPackage (
name <- s.name + 'Counter',
eClassifiers <- s.eClassifiers->select(c | c.oclIsKindOf(ECORE!EClass)),
eSubpackages <- s.eSubpackages
)
}
rule EClass {
from
s : ECORE!EClass
to
t : ECORE!EClass (
name <- thisModule.incDiff2().toString()
)
}
endpoint rule After() {
do {
thisModule.refUnsetValue('diff2');
thisModule.getEnv().debug('getEnv')
.findStaticField(EMFTVM!ExecEnv, 'diff2').debug('findField')
.getStaticValue().debug('getStaticValue');
}
}