0

我想知道如何访问我的程序的解析模型。我有一个用 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
    }

我怎样才能为我的验证者做同样的事情。先感谢您!

4

1 回答 1

1

act.eResource()允许访问包含操作的资源。

于 2014-04-08T10:08:13.340 回答