我想知道如何访问我的程序的解析模型。我有一个用 xtend 编写的验证检查,它接受规则A作为它的参数。但是我想搜索整个解析树,并确保对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
}
我怎样才能为我的验证者做同样的事情。先感谢您!