Как сгенерировать код из модели ecore с выражениями OCL в отдельном файле? - PullRequest
0 голосов
/ 07 апреля 2020

Я использую аддон 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 };
    }
...
}

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Как только подробности были представлены на форуме Eclipse OCL, выяснилось, что не было выражений OCLE, из которых можно было бы генерировать код. Ноль в => ноль в.

0 голосов
/ 07 апреля 2020

Прямой вопрос об Eclipse следует задать в группе новостей Eclipse OCL.

https://www.eclipse.org/forums/index.php/f/26/

Ваши файлы Ecore / GenModel не являются файлами Ecore / GenModel; они являются снимками объявлений верхнего уровня. моментальные снимки очень редко заменяют файлы.

Ваш фрагмент genmodel выглядит хорошо, но без остальной части проекта очень сложно прокомментировать множество возможных ошибок, которые вы могли допустить.

Я полагаю, что, учитывая, что вы публикуете образец снимка редактора Ecore Model Editor, а не снимок редактора OCLinEcore, вы не смогли синтезировать все примечания EA, необходимые для регистрации ваших дополнений OCL. Редактор OCLinEcore делает все это автоматически.

Я предлагаю вам опубликовать сжатый проект в новостной группе Eclipse OCL.

...