プログラムの解析済みモデルにアクセスする方法を知りたいです。パラメータとしてルールAを受け入れる xtend で記述された検証チェックがあります。ただし、解析されたツリー全体を検索し、 A のこの特定のインスタンスへの他の参照が特定の仕様に従っていることを確認したいと考えています。
@Check
def checkActionBelongsToAssociatedRole(ActionDsc act){
var pRole = act.parentRole
var rs = new ResourceSetImpl()
//DONT KNOW IF THIS IS RIGHT
var resource = rs.getResource(URI.createURI("./model/generated/Protocol.ecore"), true)
for(r:resource.allContents.toIterable.filter(typeof(RoleDec))){
if(r.name == pRole.name){
//DO SOMETHING
}
}
}
私が持っているジェネレーター ファイルでは、既に Resource オブジェクトをパラメーターとして取得しています。
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
//Generate code
}
バリデーターに対して同じことを行うにはどうすればよいですか。前もって感謝します!