Improved UX + Cleanup.

Added names in ItemProviders that allow easy viewing of elements in
Loss.
Cleaned up the mm2loss project.
This commit is contained in:
Anish Bhobe 2024-06-17 16:55:28 +02:00
parent 368c791d13
commit 39b349b5b1
17 changed files with 202 additions and 5222 deletions

View File

@ -121,13 +121,20 @@ public class ComplexItemProvider extends NamedObjectItemProvider {
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @generated NOT
*/
@Override
public String getText(Object object) {
String label = ((Complex) object).getName();
return label == null || label.length() == 0 ? getString("_UI_Complex_type")
: getString("_UI_Complex_type") + " " + label;
Complex complex = (Complex)object;
String label = complex.getName();
String typeName = complex.getClassName();
if (label == null) {
label = "";
}
if (typeName == null) {
typeName = "";
}
return getString("_UI_Complex_type") + " | " + label + " : " + typeName;
}
/**

View File

@ -2,6 +2,7 @@
*/
package fr.tpt.mem4csd.loss.provider;
import fr.tpt.mem4csd.loss.Complex;
import fr.tpt.mem4csd.loss.Link;
import fr.tpt.mem4csd.loss.LossPackage;
@ -91,9 +92,20 @@ public class LinkItemProvider extends PrimitiveItemProvider {
*/
@Override
public String getText(Object object) {
String label = ((Link) object).getName();
return label == null || label.length() == 0 ? getString("_UI_Link_type")
: getString("_UI_Link_type") + " " + label;
Link link = (Link) object;
String label = link.getName();
Complex complex = (Complex)link.getReferenceTo();
String ref = null;
if (complex != null) {
ref = complex.getName();
}
if (label == null) {
label = "";
}
if (ref == null) {
ref = "";
}
return getString("_UI_Link_type") + " | " + label + " : " + ref;
}
/**

View File

@ -1,2 +1,2 @@
/face2loss.asm
/mm2loss.asm
**/*.asm

View File

@ -0,0 +1,4 @@
library faceConfig;
helper def : inname : String = 'aaxl';
helper def : packageNames : Set(String) = Set{ 'IN', 'AADL' };

View File

@ -0,0 +1,4 @@
library faceConfig;
helper def : inname : String = 'face';
helper def : packageNames : Set(String) = Set{ 'IN', 'ECORE' };

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="ASCII"?>
<instance:SystemInstance xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:instance="http://aadl.info/AADL/2.0/instance" name="FACE_IntegrationModel">
<componentInstance name="Speed_Transporter">
<featureInstance name="output" direction="out"/>
<featureInstance name="input"/>
</componentInstance>
<componentInstance name="Heading_Transporter">
<featureInstance name="output" direction="out"/>
<featureInstance name="input"/>
</componentInstance>
<componentInstance name="Position_Transporter">
<featureInstance name="output" direction="out"/>
<featureInstance name="input"/>
</componentInstance>
<componentInstance name="FACE_UoPModel" category="process">
<featureInstance name="Position" direction="out"/>
<featureInstance name="Heading"/>
<featureInstance name="Position"/>
<featureInstance name="Heading" direction="out"/>
<componentInstance name="Doppler_Log" category="threadgroup">
<componentInstance name="uopThread" category="thread"/>
</componentInstance>
<componentInstance name="GNSS_Receiver" category="threadgroup">
<featureInstance name="Position" direction="out"/>
<componentInstance name="uopThread" category="thread"/>
</componentInstance>
<componentInstance name="Display" category="threadgroup">
<featureInstance name="Heading"/>
<featureInstance name="Position"/>
<componentInstance name="uopThread" category="thread"/>
</componentInstance>
<componentInstance name="Magnetic_Compass" category="threadgroup">
<featureInstance name="Heading" direction="out"/>
<componentInstance name="uopThread" category="thread"/>
</componentInstance>
</componentInstance>
<connectionInstance name="CompassHeading_Transporter" kind="portConnection" destination="//@componentInstance.1/@featureInstance.1">
<connectionReference destination="//@componentInstance.1/@featureInstance.1"/>
<connectionReference/>
</connectionInstance>
<connectionInstance name="GPSPosition_Transporter" kind="portConnection" destination="//@componentInstance.2/@featureInstance.1" source="//@componentInstance.3/@featureInstance.0">
<connectionReference source="//@componentInstance.3/@componentInstance.1/@featureInstance.0" destination="//@componentInstance.3/@featureInstance.0"/>
<connectionReference source="//@componentInstance.3/@featureInstance.0" destination="//@componentInstance.2/@featureInstance.1"/>
</connectionInstance>
<connectionInstance name="DisplayHeading_Transporter" kind="portConnection" destination="//@componentInstance.3/@featureInstance.1" source="//@componentInstance.1/@featureInstance.0">
<connectionReference context="//@componentInstance.3" source="//@componentInstance.3/@featureInstance.1" destination="//@componentInstance.3/@componentInstance.2/@featureInstance.0"/>
<connectionReference context="/" source="//@componentInstance.1/@featureInstance.0" destination="//@componentInstance.3/@featureInstance.1"/>
</connectionInstance>
<connectionInstance name="DisplayPosition_Transporter" kind="portConnection" destination="//@componentInstance.3/@featureInstance.2" source="//@componentInstance.2/@featureInstance.0">
<connectionReference context="//@componentInstance.3" source="//@componentInstance.3/@featureInstance.2" destination="//@componentInstance.3/@componentInstance.2/@featureInstance.1"/>
<connectionReference context="/" source="//@componentInstance.2/@featureInstance.0" destination="//@componentInstance.3/@featureInstance.2"/>
</connectionInstance>
</instance:SystemInstance>

View File

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<face:ArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:conceptual="http://www.opengroup.us/face/datamodel/conceptual/3.0" xmlns:face="http://www.opengroup.us/face/3.0" xmlns:integration="http://www.opengroup.us/face/integration/3.0" xmlns:logical="http://www.opengroup.us/face/datamodel/logical/3.0" xmlns:plateform="http://www.opengroup.us/face/datamodel/platform/3.0" xmlns:uop="http://www.opengroup.us/face/uop/3.0" xmi:id="uid0" name="FACE_Architecture">
<dm xmi:id="uid1" name="FACE_DataModel">
<cdm xmi:id="uid10" name="FACE_ConceptualDataModel">
<element xsi:type="conceptual:Query" xmi:id="uid100" name="Speed" description="Distance covered by unit of time" specification=""/>
<element xsi:type="conceptual:Query" xmi:id="uid101" name="Angle" description="Two straight lines sharing a common point" specification=""/>
<element xsi:type="conceptual:Query" xmi:id="uid102" name="Longitude" description="East-West position along a parallel" specification=""/>
<element xsi:type="conceptual:Query" xmi:id="uid103" name="Latitude" description="North-South position along a meridian" specification=""/>
<element xsi:type="conceptual:CompositeQuery" xmi:id="uid104" name="Position" description="Point defined by a longitude and a latitude">
<composition xmi:id="uid1040" rolename="Longitude" type="uid102"/>
<composition xmi:id="uid1041" rolename="Latitude" type="uid103"/>
</element>
</cdm>
<ldm xmi:id="uid11" name="FACE_LogicalDataModel">
<element xsi:type="logical:Query" xmi:id="uid110" name="Speed_In_Knots" description="Speed in nautical miles per hour" realizes="uid100" specification=""/>
<element xsi:type="logical:Query" xmi:id="uid111" name="Heading" description="Angle between 0 and 360" realizes="uid101" specification=""/>
<element xsi:type="logical:Query" xmi:id="uid112" name="Longitude" description="Longitude in degrees" realizes="uid102" specification=""/>
<element xsi:type="logical:Query" xmi:id="uid113" name="Latitude" description="Latitude in degrees" realizes="uid103" specification=""/>
<element xsi:type="logical:CompositeQuery" xmi:id="uid114" name="Position" description="Point defined by a longitude and a latitude in degrees" realizes="uid104">
<composition xmi:id="uid1140" rolename="Longitude" type="uid112"/>
<composition xmi:id="uid1141" rolename="Latitude" type="uid113"/>
</element>
</ldm>
<pdm xmi:id="uid12" name="FACE_PlatformDataModel">
<element xsi:type="plateform:Query" xmi:id="uid120" name="Speed_pq" realizes="uid110" specification=""/>
<element xsi:type="plateform:Template" xmi:id="uid121" name="Speed_In_Knots_Int" description="Integer representation of the speed in knots" specification="" boundQuery="uid120"/>
<element xsi:type="plateform:Query" xmi:id="uid122" name="Heading_pq" realizes="uid111" specification=""/>
<element xsi:type="plateform:Template" xmi:id="uid123" name="Heading_Int" description="Integer representation of the heading: 0..360" specification="" boundQuery="uid122"/>
<element xsi:type="plateform:Query" xmi:id="uid124" name="Longitude_pd" realizes="uid112" specification=""/>
<element xsi:type="plateform:Template" xmi:id="uid125" name="Longitude_Int" description="Integer representation of the longitude: -180..+180" specification="" boundQuery="uid124"/>
<element xsi:type="plateform:Query" xmi:id="uid126" name="Latitude_pq" realizes="uid113" specification=""/>
<element xsi:type="plateform:Template" xmi:id="uid127" name="Latitude_Int" description="Integer representation of the latitude: -180..+180" specification="" boundQuery="uid126"/>
<element xsi:type="plateform:CompositeTemplate" xmi:id="uid128" name="Position_Int" description="Point defined by a Longitude_Int and a Latitude_Int" realizes="uid114">
<composition xmi:id="uid1280" rolename="Longitude" realizes="uid1140" type="uid125"/>
<composition xmi:id="uid1281" rolename="Latitude" realizes="uid1141" type="uid127"/>
</element>
</pdm>
</dm>
<um xmi:id="uid2" name="FACE_UoPModel">
<element xsi:type="uop:PortableComponent" xmi:id="uid20" name="Doppler_Log" description="A doppler log is an instrument to measure ship's relative speed with water">
<thread xmi:id="uid200" period="0.02" timeCapacity="0.005"/>
<memoryRequirements xmi:id="uid201"/>
<connection xsi:type="uop:QueuingConnection" xmi:id="uid202" name="Speed" period="1.0" messageType="uid121" messageExchangeType="OutboundMessage" depth="5"/>
</element>
<element xsi:type="uop:PortableComponent" xmi:id="uid21" name="Magnetic_Compass" description="A magnetic compass is an instrument to measure ship's heading">
<thread xmi:id="uid210" period="0.05" timeCapacity="0.01"/>
<memoryRequirements xmi:id="uid211"/>
<connection xsi:type="uop:SingleInstanceMessageConnection" xmi:id="uid212" name="Heading" period="1.0" messageType="uid123" messageExchangeType="OutboundMessage"/>
</element>
<element xsi:type="uop:PortableComponent" xmi:id="uid22" name="GNSS_Receiver" description="A GNSS receiver is an instrument to measure geographical position">
<thread xmi:id="uid220" period="0.05" timeCapacity="0.02"/>
<memoryRequirements xmi:id="uid221"/>
<connection xsi:type="uop:SingleInstanceMessageConnection" xmi:id="uid222" name="Position" period="1.0" messageType="uid128" messageExchangeType="OutboundMessage"/>
</element>
<element xsi:type="uop:PortableComponent" xmi:id="uid23" name="Display">
<thread xmi:id="uid230" period="0.02" timeCapacity="0.01"/>
<memoryRequirements xmi:id="uid231"/>
<connection xsi:type="uop:QueuingConnection" xmi:id="uid232" name="Speed" period="0.1" messageType="uid121" depth="5"/>
<connection xsi:type="uop:SingleInstanceMessageConnection" xmi:id="uid233" name="Heading" period="0.1" messageType="uid123"/>
<connection xsi:type="uop:SingleInstanceMessageConnection" xmi:id="uid234" name="Position" period="0.1" messageType="uid128"/>
</element>
</um>
<im xmi:id="uid3" name="FACE_IntegrationModel">
<element xsi:type="integration:UoPInstance" xmi:id="uid30" name="Log" realizes="uid20">
<output xmi:id="uid300" connection="uid202"/>
</element>
<element xsi:type="integration:UoPInstance" xmi:id="uid31" name="Compass" realizes="uid21">
<output xmi:id="uid310" connection="uid212"/>
</element>
<element xsi:type="integration:UoPInstance" xmi:id="uid32" name="GPS" realizes="uid22">
<output xmi:id="uid320" connection="uid222"/>
</element>
<element xsi:type="integration:UoPInstance" xmi:id="uid33" name="Display" realizes="uid23">
<input xmi:id="uid330" connection="uid232"/>
<input xmi:id="uid331" connection="uid233"/>
<input xmi:id="uid332" connection="uid234"/>
</element>
<element xsi:type="integration:IntegrationContext" xmi:id="uid34" name="FACE_IntegrationContext">
<connection xmi:id="uid340" source="uid300" destination="uid3460"/>
<connection xmi:id="uid341" source="uid3461" destination="uid330"/>
<connection xmi:id="uid342" source="uid310" destination="uid3470"/>
<connection xmi:id="uid343" source="uid3471" destination="uid331"/>
<connection xmi:id="uid344" source="uid320" destination="uid3480"/>
<connection xmi:id="uid345" source="uid3481" destination="uid332"/>
<node xsi:type="integration:ViewTransporter" xmi:id="uid346" name="Speed_Transporter" channel="uid35">
<outPort xmi:id="uid3461" view="uid121"/>
<inPort xmi:id="uid3460" view="uid121"/>
</node>
<node xsi:type="integration:ViewTransporter" xmi:id="uid347" name="Heading_Transporter" channel="uid35">
<outPort xmi:id="uid3471" view="uid123"/>
<inPort xmi:id="uid3470" view="uid123"/>
</node>
<node xsi:type="integration:ViewTransporter" xmi:id="uid348" name="Position_Transporter" channel="uid35">
<outPort xmi:id="uid3481" view="uid128"/>
<inPort xmi:id="uid3480" view="uid128"/>
</node>
</element>
<element xsi:type="integration:TransportChannel" xmi:id="uid35" name="NMEA" description="NMEA is a plug-and-play communications standard used for connecting marine sensors and display units within ships"/>
</im>
</face:ArchitectureModel>

View File

@ -0,0 +1,2 @@
/loss_demo.aaxl2.loss
/loss_demo.face.loss

View File

@ -1,515 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:loss="http://mem4csd.telecom-paris.fr/loss">
<loss:Complex name="NMEA" className="face::integration::TransportChannel" reference="/0">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Position_Int" className="face::datamodel::platform::CompositeTemplate" reference="/1">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/50"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/49"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/70"/>
</loss:Complex>
<loss:Complex name="FACE_IntegrationContext" className="face::integration::IntegrationContext" reference="/2">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/71"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/3"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/4"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/5"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/74"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/73"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/75"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/72"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/76"/>
</loss:Complex>
<loss:Complex name="Speed_Transporter" className="face::integration::ViewTransporter" reference="/3">
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/29"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/17"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_Transporter" className="face::integration::ViewTransporter" reference="/4">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/30"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/18"/>
</loss:Complex>
<loss:Complex name="Position_Transporter" className="face::integration::ViewTransporter" reference="/5">
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/31"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/19"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::uop::SingleInstanceMessageConnection" reference="/6">
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/52"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
</loss:Complex>
<loss:Complex name="Position" className="face::uop::SingleInstanceMessageConnection" reference="/7">
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/1"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::uop::SingleInstanceMessageConnection" reference="/8">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="Position" className="face::uop::SingleInstanceMessageConnection" reference="/9">
<primitives name="name" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/10">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/32"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/11">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/6"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/12">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/7"/>
</loss:Complex>
<loss:Complex name="Speed_In_Knots" className="face::datamodel::logical::Query" reference="/13">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/56"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::datamodel::logical::Query" reference="/14">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/57"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude" className="face::datamodel::logical::Query" reference="/15">
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/58"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude" className="face::datamodel::logical::Query" reference="/16">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/59"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/17">
<primitives xsi:type="loss:Link" name="view" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/18">
<primitives xsi:type="loss:Link" name="view" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/19">
<primitives xsi:type="loss:Link" name="view" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::conceptual::QueryComposition" reference="/20">
<primitives xsi:type="loss:Link" name="type" referenceTo="/58"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::conceptual::QueryComposition" reference="/21">
<primitives xsi:type="loss:Link" name="type" referenceTo="/59"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_UoPModel" className="face::uop::UoPModel" reference="/22">
<primitives xsi:type="loss:Link" name="element" referenceTo="/43"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/41"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/44"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/42"/>
</loss:Complex>
<loss:Complex name="Speed_pq" className="face::datamodel::platform::Query" reference="/23">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/13"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_pq" className="face::datamodel::platform::Query" reference="/24">
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/14"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude_pd" className="face::datamodel::platform::Query" reference="/25">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/15"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude_pq" className="face::datamodel::platform::Query" reference="/26">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/16"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::logical::QueryComposition" reference="/27">
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="type" referenceTo="/15"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::logical::QueryComposition" reference="/28">
<primitives xsi:type="loss:Link" name="type" referenceTo="/16"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/29">
<primitives xsi:type="loss:Link" name="view" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/30">
<primitives xsi:type="loss:Link" name="view" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/31">
<primitives xsi:type="loss:Link" name="view" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::uop::QueuingConnection" reference="/32">
<primitives name="period" className="ecore::EFloat"/>
<primitives name="depth" className="ecore::EInt"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::uop::QueuingConnection" reference="/33">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/51"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="depth" className="ecore::EInt"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
</loss:Complex>
<loss:Complex name="FACE_PlatformDataModel" className="face::datamodel::PlatformDataModel" reference="/34">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/24"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/25"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/54"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/1"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/53"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/26"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/23"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/52"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/35">
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/36">
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/37">
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/38">
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="FACE_LogicalDataModel" className="face::datamodel::LogicalDataModel" reference="/39">
<primitives xsi:type="loss:Link" name="element" referenceTo="/15"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/70"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/13"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/16"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/14"/>
</loss:Complex>
<loss:Complex name="FACE_Architecture" className="face::ArchitectureModel" reference="/40">
<primitives xsi:type="loss:Link" name="dm" referenceTo="/64"/>
<primitives xsi:type="loss:Link" name="um" referenceTo="/22"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="im" referenceTo="/65"/>
</loss:Complex>
<loss:Complex name="Doppler_Log" className="face::uop::PortableComponent" reference="/41">
<primitives xsi:type="loss:Link" name="thread" referenceTo="/45"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/32"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/35"/>
</loss:Complex>
<loss:Complex name="Magnetic_Compass" className="face::uop::PortableComponent" reference="/42">
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/36"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="thread" referenceTo="/46"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/6"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
</loss:Complex>
<loss:Complex name="GNSS_Receiver" className="face::uop::PortableComponent" reference="/43">
<primitives xsi:type="loss:Link" name="thread" referenceTo="/47"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/37"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/7"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Display" className="face::uop::PortableComponent" reference="/44">
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="thread" referenceTo="/48"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/33"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/9"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/38"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/8"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/45">
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="timeCapacity" className="ecore::EFloat"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/46">
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/47">
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/48">
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
<primitives name="relativePriority" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::platform::TemplateComposition" reference="/49">
<primitives xsi:type="loss:Link" name="type" referenceTo="/53"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/27"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::platform::TemplateComposition" reference="/50">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/28"/>
<primitives name="rolename" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="type" referenceTo="/54"/>
</loss:Complex>
<loss:Complex name="Speed_In_Knots_Int" className="face::datamodel::platform::Template" reference="/51">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/23"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_Int" className="face::datamodel::platform::Template" reference="/52">
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/24"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
</loss:Complex>
<loss:Complex name="Longitude_Int" className="face::datamodel::platform::Template" reference="/53">
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/25"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude_Int" className="face::datamodel::platform::Template" reference="/54">
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/26"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_ConceptualDataModel" className="face::datamodel::ConceptualDataModel" reference="/55">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/60"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/57"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/58"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/59"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/56"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::datamodel::conceptual::Query" reference="/56">
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Angle" className="face::datamodel::conceptual::Query" reference="/57">
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude" className="face::datamodel::conceptual::Query" reference="/58">
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude" className="face::datamodel::conceptual::Query" reference="/59">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Position" className="face::datamodel::conceptual::CompositeQuery" reference="/60">
<primitives xsi:type="loss:Link" name="composition" referenceTo="/21"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/20"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/61">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/33"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/62">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/8"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/63">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/9"/>
</loss:Complex>
<loss:Complex name="FACE_DataModel" className="face::datamodel::DataModel" reference="/64">
<primitives xsi:type="loss:Link" name="ldm" referenceTo="/39"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="cdm" referenceTo="/55"/>
<primitives xsi:type="loss:Link" name="pdm" referenceTo="/34"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_IntegrationModel" className="face::integration::IntegrationModel" reference="/65">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/66"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/67"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/2"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/68"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/69"/>
</loss:Complex>
<loss:Complex name="Log" className="face::integration::UoPInstance" reference="/66">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/10"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/41"/>
<primitives name="configurationURI" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Compass" className="face::integration::UoPInstance" reference="/67">
<primitives name="configurationURI" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/11"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/42"/>
</loss:Complex>
<loss:Complex name="GPS" className="face::integration::UoPInstance" reference="/68">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/43"/>
<primitives name="configurationURI" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/12"/>
</loss:Complex>
<loss:Complex name="Display" className="face::integration::UoPInstance" reference="/69">
<primitives name="configurationURI" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/44"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/61"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/63"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/62"/>
</loss:Complex>
<loss:Complex name="Position" className="face::datamodel::logical::CompositeQuery" reference="/70">
<primitives xsi:type="loss:Link" name="composition" referenceTo="/27"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/60"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/28"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/71">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/29"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/10"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/72">
<primitives xsi:type="loss:Link" name="source" referenceTo="/17"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/61"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/73">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/30"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/11"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/74">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/62"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/18"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/75">
<primitives xsi:type="loss:Link" name="source" referenceTo="/12"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/31"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/76">
<primitives xsi:type="loss:Link" name="source" referenceTo="/19"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/63"/>
</loss:Complex>
</xmi:XMI>

View File

@ -0,0 +1,2 @@
/aaxl2loss.atl
/face2loss.atl

View File

@ -1,16 +1,16 @@
query mm2loss =
let modulename : String = 'face2loss' in
let ecoreClassifiers : Sequence(ECORE!EClassifier) = ECORE!EClassifier.allInstancesFrom('ECORE') in
let classifiers : Sequence(String) = ECORE!EClassifier.allInstancesFrom('IN').union(ecoreClassifiers).asSet()->collect(item | item.toRule()) in
let modulename : String = thisModule.inname + '2loss' in -- inname from Config
let classifiers : Sequence(String) = thisModule.packageNames->collect( it | ECORE!EClassifier.allInstancesFrom(it) )->iterate( it ; acc : Set(ECORE!EClassifier) = Set{} | acc.union(it) ).asSet()->collect(item | item.toRule()) in
let linkRules : Sequence(String) = ECORE!EClass.allInstancesFrom('IN').asSet()->collect(cl | cl.toLink()) in
('module ' + modulename + ';\n\ncreate LOSS : OUT from MM : IN;\n\n' + thisModule.toLink + '\n' + thisModule.join(classifiers.union(linkRules), '\n').toString()).writeTo((modulename + '.atl').path);
uses Config;
helper def : join(seq : Sequence(String), separator : String) : String =
seq->iterate(el ; acc : String = '' | if acc = '' then el else acc + separator + el endif);
helper context String def : path : String =
('/fr.tpt.mem4csd.loss.mm2loss/' + self);
('/fr.tpt.mem4csd.loss.mm2loss/transformations-gen/' + self);
helper context ECORE!EClassifier def : qualifiedName : String =
self.ePackage.qualifiedName + '::' + self.name;
@ -59,11 +59,12 @@ helper def : toLink : String =
'\t' + ')' + '\n' +
'}\n';
helper def : referenceToPrimitive ( ref : ECORE!EReference ) : String =
if ref.many
then '.union(source.' + ref.name + '->collect(it | thisModule.ReferenceToLink(\'' + ref.name + '\', it)))'
else '.including(thisModule.ReferenceToLink(\'' + ref.name + '\', source.' + ref.name + '))'
else
'.union(Set{source.' + ref.name + '}->select( e | not e.oclIsUndefined())->collect(it | thisModule.ReferenceToLink(\'' + ref.name + '\', it)) )'
-- '.including(thisModule.ReferenceToLink(\'' + ref.name + '\', source.' + ref.name + '))'
endif;
helper def : attributeToPrimitive ( attr : ECORE!EAttribute ) : String =
@ -74,7 +75,7 @@ helper def : attributeToPrimitive ( attr : ECORE!EAttribute ) : String =
helper context ECORE!EClass def : toRule() : String =
let noname : Boolean = self.getEStructuralFeature('name').oclIsUndefined() in
'rule CL' + self.sanitizedFullName.debug('class: ') + '2Complex {\n' +
'rule CL' + self.sanitizedFullName + '2Complex {\n' +
'\t' + 'from' + '\n' +
'\t' + 'source : IN!"' + self.qualifiedName + '" in MM (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' +
'\t' + 'to' + '\n' +

View File

@ -1,7 +0,0 @@
/Complex.class
/Link.class
/LossFactory.class
/LossPackage$Literals.class
/LossPackage.class
/NamedObject.class
/Primitive.class

View File

@ -1,6 +0,0 @@
/ComplexImpl.class
/LinkImpl.class
/LossFactoryImpl.class
/LossPackageImpl.class
/NamedObjectImpl.class
/PrimitiveImpl.class

View File

@ -1,3 +0,0 @@
/LossAdapterFactory$1.class
/LossAdapterFactory.class
/LossSwitch.class