transformation copynameviacontextmapping;
modeltype ECORE uses 'http://www.eclipse.org/emf/2002/Ecore';

mapping main(in pack: ecore::EPackage): ecore::EPackage {

        name := pack.getNameCtx();

}

query ecore::EPackage::getNameCtx(): String {
    return getName(self)
}

query getName(in pack: ecore::EPackage): String {
    return pack.name
}
