Использование EAnnotation в ecore

Может ли кто-нибудь объяснить использование EAnnotation в ecore с точки зрения его конкретных полей (например, Источник, Подробности, Элемент EModel, Содержание и Ссылки). Я посмотрел на его API документацию здесь, но не смог получить оттуда столько.

Я ищу своего рода руководство, чтобы объяснить на примере, для чего нужны аннотации с такими полями в ecore.


person qartal    schedule 07.05.2015    source источник


Ответы (1)


Я задал этот вопрос на форуме Eclipse EMF и вот ответ. На этот вопрос также есть ответ здесь.

Тем не менее, я дам краткий ответ на этот вопрос: Обычно EAnnotations используются в Ecore для кодирования любой информации, которая не захватывается Ecore в первую очередь. Например, они используются в OCLInECore для хранения ограничений OCL или в genmodel для хранения информации, связанной с генерацией кода, и т. д.

Источник используется для определения типа аннотации. Обычно он заполняется URI, чтобы однозначно идентифицировать тип аннотации.

Подробности — это набор пар (ключ, значение) для хранения подробной информации об этой аннотации. На самом деле это место, где действительно хранятся данные аннотаций.

Остальное (цитата из здесь):

Элемент EModel , «EAnnotation сам по себе является EModelElement, поэтому его также можно аннотировать. Он не часто используется, но позволит вам построить сложную структуру.».

Содержание EAnnotations может содержать любые другие объекты. Это также не часто используется, и если вы его используете, вы не можете сгенерировать обычный XyzPackageImpl, но должны убедиться, что GenPackage указывает «Инициализировать путем загрузки» ...»

Ссылки. «EAnnotations могут ссылаться на произвольные другие объекты. Это также не часто используется, и такое же предостережение относится и к содержимому ...»

person qartal    schedule 08.05.2015
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person greg-449; 08.05.2015
comment
Я завершил свой ответ. - person qartal; 15.05.2015