2012-05-11 18 views
1

私は大きなEMFモデル、具体的にはMDTプロジェクトのBPMN2.0モデルを持っています。当社のソフトウェアには、Oracle 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> 

はNS2のためのXSDスキーマがあるので、私は簡単にcorrespindingのたEcoreモデルを生成しました。私が2日間解決しようとしている問題は、OracleExtensionsモデルを既存のBPMN2.0 eCoreモデルに正しくプラグインする方法です。私が達成しようとしているのは、BPMN2.0モデラー・プラグインを使用してモデルを編集し、Oracle固有のフィーチャーを編集するための拡張プロパティーを提供することです。

どのようなご提案も大歓迎です!

答えて

2

これはEMF Facetのための作業のように聞こえる:

問題あなたがツールを開発するときに、最終的なユーザーが本当に欲しいますすべての可能な拡張を想像することはできませんということです。そのため、EMFファセットは、既存のEcoreメタモデルを変更せずに拡張するソリューションを提案しています。

アイデアは、メタモデルに新しい機能(種類、属性、操作および参照)を追加すると、余分なプロパティ(アイコン、ラベル、など)

を追加することによって、既存の機能をカスタマイズするために、非侵入のメカニズムを提供することです
関連する問題