2016-05-20 7 views
0

Я пишу перевод ATL из BPMN2 в другую модель. Редактор целевой модели требует, чтобы диаграмма GMF открывала выход преобразования ATL. В следующем правиле я создаю диаграмму, проблема заключается в том, что диаграмма и модель не записаны в одном файле. Если я выберу один и тот же файл для своего вывода, он переопределит другой.Добавление диаграммы в модели EMF

rule def2mod { 
    from 
     b: BPMN20!Definitions 
    to 
     m: reo!Module, 
     m : GMF!Diagram(
      type<-'Reo', 
      name<-'test', 
      measurementUnit<-#Pixel 
     ) 
} 

Я отправил код АТЛ и мой вход здесь на: https://github.com/behnaaz/BPMN2ATL.git

сливая содержимое этих файлов в один файл также не помогает. Выходной сигнал генерируется как: Файл 1:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_zHQiAB6HEeaECbYRnMkrCw" type="Reo" name="test" measurementUnit="Pixel"/> 

Файл 2:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<reo:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:channels="http://www.cwi.nl/reo/channels" xmlns:components="http://www.cwi.nl/reo/components" xmlns:reo="http://www.cwi.nl/reo" xsi:schemaLocation="http://www.cwi.nl/reo/channels Reo/reo.ecore#//channels http://www.cwi.nl/reo/components Reo/reo.ecore#//components http://www.cwi.nl/reo Reo/reo.ecore" xmi:id="_zHOFwB6HEeaECbYRnMkrCw" name="d"> 
    <connectors xmi:type="reo:Connector" xmi:id="_zHOFwR6HEeaECbYRnMkrCw" name="p"> 
    <nodes xmi:type="reo:Node" xmi:id="_zHOFwh6HEeaECbYRnMkrCw" sourceEnds="_zHOF0x6HEeaECbYRnMkrCw" sinkEnds="_zHOF2B6HEeaECbYRnMkrCw"/> 
    <nodes xmi:type="reo:Node" xmi:id="_zHOFwx6HEeaECbYRnMkrCw" sourceEnds="_zHOF1h6HEeaECbYRnMkrCw" sinkEnds="_zHOF0R6HEeaECbYRnMkrCw"/> 
    <nodes xmi:type="reo:Node" xmi:id="_zHOFxB6HEeaECbYRnMkrCw" name="in" sourceEnds="_zHOF0B6HEeaECbYRnMkrCw"/> 
    <nodes xmi:type="reo:Node" xmi:id="_zHOFxR6HEeaECbYRnMkrCw" name="int" sinkEnds="_zHOF1B6HEeaECbYRnMkrCw"/> 
    <primitives xmi:type="channels:Sync" xmi:id="_zHOFxh6HEeaECbYRnMkrCw"> 
     <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOFxx6HEeaECbYRnMkrCw"/> 
     <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOFyB6HEeaECbYRnMkrCw"/> 
    </primitives> 
    <primitives xmi:type="channels:Sync" xmi:id="_zHOFyR6HEeaECbYRnMkrCw"> 
     <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOFyh6HEeaECbYRnMkrCw"/> 
     <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOFyx6HEeaECbYRnMkrCw"/> 
    </primitives> 
    <primitives xmi:type="channels:Sync" xmi:id="_zHOFzB6HEeaECbYRnMkrCw"> 
     <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOFzR6HEeaECbYRnMkrCw"/> 
     <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOFzh6HEeaECbYRnMkrCw"/> 
    </primitives> 
    <primitives xmi:type="channels:Sync" xmi:id="_zHOFzx6HEeaECbYRnMkrCw"> 
     <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOF0B6HEeaECbYRnMkrCw" node="_zHOFxB6HEeaECbYRnMkrCw"/> 
     <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOF0R6HEeaECbYRnMkrCw" node="_zHOFwx6HEeaECbYRnMkrCw"/> 
    </primitives> 
    <primitives xmi:type="channels:Sync" xmi:id="_zHOF0h6HEeaECbYRnMkrCw"> 
     <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOF0x6HEeaECbYRnMkrCw" node="_zHOFwh6HEeaECbYRnMkrCw"/> 
     <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOF1B6HEeaECbYRnMkrCw" node="_zHOFxR6HEeaECbYRnMkrCw"/> 
    </primitives> 
    </connectors> 
    <components xmi:type="components:Reader" xmi:id="_zHOF1R6HEeaECbYRnMkrCw"> 
    <sourceEnds xmi:type="reo:SourceEnd" xmi:id="_zHOF1h6HEeaECbYRnMkrCw" node="_zHOFwx6HEeaECbYRnMkrCw"/> 
    </components> 
    <components xmi:type="components:Writer" xmi:id="_zHOF1x6HEeaECbYRnMkrCw"> 
    <sinkEnds xmi:type="reo:SinkEnd" xmi:id="_zHOF2B6HEeaECbYRnMkrCw" node="_zHOFwh6HEeaECbYRnMkrCw"/> 
    </components> 
</reo:Module> 
+0

Также я спросил его здесь: https://www.eclipse.org/forums/index.php/m/1732820/#msg_1732820 – BeC

ответ

0

Что-то, что работает до сих пор, чтобы открыть модель эдс в Java кода выполнения и добавить схему программно, как:

//module is my emf model generated by ATL 
Diagram diagram = ViewService.createDiagram(module, ModuleEditPart.MODEL_ID, 
    ReoDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); 
res.getContents().add(diagram); 
res.getContents().add(diagram.getElement()); 
res.save(module, Collections.EMPTY_MAP); 
+0

Все еще ищете АТЛ решение иметь альтер родной. – BeC

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

  • Нет связанных вопросов^_^