blob: 14368a571a46f6b57d4d81df300ea0435abdddb2 [file] [log] [blame]
modeltype ECORE "strict" uses ecore('http://www.eclipse.org/emf/2002/Ecore');
transformation DuplicatedNamesDetection(in target : ECORE, in others : ECORE);
// FIXME improve this functionality so that it doesn't need to receive an others ecore. Instead,
// analyzing via target classes supertypes, we can compute all the involved epacakges to compare with
main() {
var mainPackage = target.rootObjects()![EPackage];
var otherPackage = others.rootObjects()![EPackage];
log ("Processing " + mainPackage.name + " - " + otherPackage.name);
var othersClassifiers = otherPackage.eClassifiers->selectByType(EClass);
var clashedClasses = mainPackage.eClassifiers->selectByType(EClass)
->select(x | othersClassifiers->exists(y | y.name = x.name));
clashedClasses->forEach(classifier) {
log(mainPackage.name + "::" + classifier.name);
}
}