2012-05-11 3 views
1

У меня есть большая модель EMF, более конкретно модель BPMN2.0 из проекта MDT. Для нашего программного обеспечения существует требование, что мы должны поддерживать формат экспорта JDeveloper BPMN2, который почти соответствует схеме BPMN2.0, но имеет собственное расширение. Вот пример:EMF Расширение существующей модели

<startEvent isInterrupting="false" name="Start" id="startEvent0"> 
     <ns2:OracleExtensions> 
      <ns2:GraphicsAttributes> 
       <ns2:Position y="225" x="100"/> 
       <ns2:Size height="21" width="21"/> 
      </ns2:GraphicsAttributes> 
      <ns2:FeatureSet> 
       <ns2:BooleanFeature value="false" name="sync"/> 
       <ns2:BooleanFeature value="false" name="catchAllErrors"/> 
       <ns2:BooleanFeature value="false" name="catchAllSystemExceptions"/> 
       <ns2:StringFeature value="" name="associatedProcess"/> 
       <ns2:StringFeature value="" name="associatedNode"/> 
       <ns2:StringFeature value="" name="initiator"/> 
       <ns2:StringFeature value="operation" name="definedOperationName"/> 
       <ns2:StringFeature value="PROCESS_DEFAULT" name="generatesEvents"/> 
       <ns2:StringFeature value="USE_PROCESS_PERMISSION" name="sealType"/> 
      </ns2:FeatureSet> 
      <ns2:Participant/> 
     </ns2:OracleExtensions> 
     <outputSet/> 
     <messageEventDefinition/> 
    </startEvent> 

Там есть XSD схемы для NS2, так что я легко создать модель Ecore correspinding. Проблема, которую я пытаюсь решить в течение двух дней - это «правильно подключить» модель OracleExtensions в существующую модель BPMN2.0 eCore. Цель, которую я пытаюсь достичь, - это отредактировать модель с помощью плагинов-модификаторов BPMN2.0 и предоставить расширенные свойства для редактирования функций, связанных с оракулом.

Любые предложения приветствуются!

ответ

2

Это звучит как задание для EMF Facet:

Проблемы при разработке инструмента является то, что вы никогда не можете себе представить все возможные расширения, что конечный пользователь будет на самом деле хочет. Именно поэтому EMF Facet предлагает решение для расширения существующих метамоделей Ecore без необходимости их изменения.

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

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