Pour faciliter le développement des modèles ecore j’ai réalisé un petit wizard Epsilon qui permet de définir les propriétés des EPackages d’un modèle ecore, d’un simple clique.
Voici le code :
wizard setNestedPackagesInfos {
guard : self.isTypeOf(EPackage)
title : ‘Set properties of nested packages’
do{
for(package in EPackage.allInstances() ){
package.nsPrefix := package.name.toLowerCase();
package.nsUri := package.generateNsUri();
}
}
}operation EPackage generateNsUri () : String {
var ret : String;
if(self.eSuperPackage.isDefined())
{
ret := self.eSuperPackage.generateNsUri() + ‘/’ + self.name;
}
else
{
ret := self.nsUri;
}
return ret;
}
C’est aussi simple ! Ne reste plus qu’à en faire un plugin pourquoi pas ? Mais j’arrive pas à exporter 😦