Я использую аддон Eclipse для работы с OCL. У меня есть модель Ecore с некоторыми операциями и производными атрибутами, также у меня есть отдельный файл OCL с выражениями в нем. Я сделал файл genmodel и добавил:
<genAnnotations source="http://www.eclipse.org/OCL/GenModel">
<details key="Use Delegates" value="false"/>
</genAnnotations>
Также я проверил это в реализации предпочтений OCL, встроенных в модели ecore, настроенные для генерации кода. Но когда я пытаюсь сгенерировать код, используя эту генмодель, он генерирует только код без выражений OCL. Что еще я должен сделать, чтобы сгенерировать код для всех выражений OCL из отдельного файла?
Вот мой файл модели: ecore file
Вот мой файл genmodel: .genmodel file
Начало файла OCL:
import 'CarRental.ecore#/'
package CarRental
context Person
inv Person3:
age > 0 and age < 80
context Person::fullName : String
derive: self.firstname.concat(' ').concat(self.lastname)
...
endpackage
Файл модели в OCLinEcore:
package CarRental : CarRental = 'http:///CarRental.ecore'
{
class Person
{
operation email() : String[*|1];
operation updateAge(newAge : ecore::EInt[1]);
attribute firstname : String[?];
attribute lastname : String[?];
attribute age : ecore::EInt[1];
attribute isMarried : Boolean[1];
attribute fullName : String[?] { derived };
}
...
}