Мне нужно проверить, срабатывает ли модель для одного или нескольких ограничений OCL. Модели хранятся в XMI, загружаемом EMF. Ограничения OCL генерируются автоматически (String или тому подобное).Оценка модели OCL vs Оценка объекта
я нашел способ проверить ограничение на EObject
helper.setContext(ecClass);
query = helper.createQuery(expression);
Object o = ocl.check(eo, invariant);
о затем содержит результат: истина или ложь.
Должен ли я проверять каждый объект модели «вручную» или есть способ, метод или класс, которые могли бы сделать это напрямую (и, возможно, более эффективно)?
Обратите внимание, что: - Никакая информации моделирования не является жестко: метамодели, модель и OCL манипулируют в наиболее общем виде, - Я работаю на автономном мягком: все банки добавляют специально. Я пытался использовать DresdenOCL, но я не знаю, почему регистрация пакетов затруднительна.
Вы имеете в виду «нарушает» авторские права? Вам требуется, чтобы проверка OCL запускалась из кода Java? Последний вопрос, потому что если вы не возражаете против использования Eclipse, то проверка легко выполнима, и вы можете протестировать все экземпляры данного класса с использованием универсальной квантификации в OCL. –
Да, я имею в виду «нарушает» (но слово немного тяжелое). И нет, я не против использования Eclipse. Автономные звуки легче выполнять на калькуляторе (возможно, я ошибаюсь). –
Я не понимаю, что вы подразумеваете под «регистрацией пакетов является неприятным» в исходном вопросе. Также я не понимаю, что вы подразумеваете под «проще выполнить на калькуляторе». Вы уточните? Я могу написать ответ, в котором я покажу, как оценивать ограничения OCL для экземпляров моделей Ecore с использованием Eclipse, используя простой пример фиктивного кода (например, проверка того, что все экземпляры автомобилей имеют 4 установленных шины). Другой вариант заключается в том, чтобы вы могли поделиться некоторыми из моделей, которые у вас есть (и соответствующими моделями Ecore), а также несколькими ограничениями OCL - я мог бы написать ответ на основе этого. –