Работа с разобранной моделью в валидаторе Xtend

Я хочу знать, как я могу получить доступ к проанализированной модели моей программы. У меня есть проверка проверки, написанная в 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
    }

Как я могу сделать то же самое для моего валидатора. Заранее спасибо!


person user804723    schedule 28.03.2014    source источник


Ответы (1)


act.eResource() позволяет получить доступ к ресурсу, содержащему действие.

person Sebastian Zarnekow    schedule 08.04.2014