2015-02-18 2 views
2

У меня есть несколько моделей с атрибутами даты, и я хочу включить ocl для проверки и деривации.Использование атрибутов OCL для даты

Поиск в Интернете Я нашел несколько статей и статей, относящихся к методам date.isBefore(date) или date.before(date), но эти методы не распознаются в OCL.

Кроме того, я хотел бы определить деривацию, такую ​​как derivation: endDate + 10;.

Должен ли я переопределять класс Date со всеми методами, которые мне нужны?

Любой материал или связанная с ним ссылка приветствуется.

ответ

0

Учитывая, что OCL не определяет Date, авторы должны были пойти длинный путь вокруг, чтобы формально определить isBefore (и страницы являются дефицитным ресурсом в научной литературе;)

Несколько «примитив типы ", включая числа и строки, предопределены в UML [RJB98 *, p. 394]. Доступность других типов, таких как дата и , зависит от системы. В любом случае семантика примитивных типов должна быть определена вне UML. (Richters Марк. A Precise Approach to Validating UML Models and OCL Constraints, Университет Бремен, стр. 33, 86)

[RJB98] Рамбо, Джекобсон и Буч. Справочное руководство по языку Unified Modeling . Addison-Wesley, 1998.

В то время как я не специалист в EMF, согласно this link любой Java тип данных может быть использован в моделях, объявляя его как тип экземпляра EDataType для вашей модели Ecore. (См. Также this reference)

+0

Я уже сталкивался с этими ссылками, но это не объясняет. Хотя я объявлял новый 'EDataType', используя' java.util.Date', в OCL операции, такие как '> =', '<' или такие методы, как 'data.before (old_data)', не распознаются. Во всяком случае, я очень ценю вашу помощь. –

Смежные вопросы