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