diff --git a/src/tmltranslator/TMLAttribute.java b/src/tmltranslator/TMLAttribute.java index bf3b5550d1b1f88ae5b9878471f8131d6ef6446b..0eb7ba186aa406a1791ce4c6652d5109fe9ef498 100755 --- a/src/tmltranslator/TMLAttribute.java +++ b/src/tmltranslator/TMLAttribute.java @@ -101,7 +101,7 @@ public class TMLAttribute extends DIPLOElement { } public String toString() { - return name + ":" + type.toString() + "=" + initialValue; + return instanceName + "." + name + ":" + type.toString() + "=" + initialValue; } public boolean hasInitialValue() { diff --git a/src/tmltranslator/TMLCPTextSpecification.java b/src/tmltranslator/TMLCPTextSpecification.java index 28574e41c58feae6ffeef79c909067b6d4cf1a0f..c2ee89bdfed6a1f68bdfa961f6132387f8bd030f 100755 --- a/src/tmltranslator/TMLCPTextSpecification.java +++ b/src/tmltranslator/TMLCPTextSpecification.java @@ -103,6 +103,8 @@ public class TMLCPTextSpecification { private String beginArray[] = {"TASK", "FOR", "IF", "ELSE", "ORIF", "SELECTEVT", "CASE", "RAND", "CASERAND", "RANDOMSEQ", "SEQ"}; private String endArray[] = {"ENDTASK", "ENDFOR", "ENDIF", "ELSE", "ORIF", "ENDSELECTEVT", "ENDCASE", "ENDRAND", "ENDCASERAND", "ENDRANDOMSEQ", "ENDSEQ"}; */ + private static String SEQUENCE_DIAGRAM = "SEQUENCE"; + private String nextElem; //used to produce the TML text private String currentElem; //used to produce the TML text private String currentJunc = "junction"; //used to produce the TML text @@ -230,16 +232,24 @@ public class TMLCPTextSpecification { //Generating code for Sequence Diagrams ArrayList<TMLCPSequenceDiagram> listSDs = tmlcp.getCPSequenceDiagrams(); for( TMLCPSequenceDiagram seqDiag: listSDs ) { - sb += "SEQUENCE " + seqDiag.getName() + CR2 + TAB; + sb += SEQUENCE_DIAGRAM + SP + seqDiag.getName() + CR2 + TAB; ArrayList<tmltranslator.tmlcp.TMLSDInstance> listInstances = seqDiag.getInstances(); + if( seqDiag.getAttributes().size() > 0 ) { + for( TMLAttribute attribute: seqDiag.getAttributes() ) { + sb += attribute.toString() + CR + TAB; + } + sb += CR; + } for( tmltranslator.tmlcp.TMLSDInstance inst: listInstances ) { - sb += inst.getType() + " " + inst.getName() + CR + TAB; - ArrayList<TMLSDEvent> listEvents = inst.getEvents(); - Collections.sort( listEvents ); - for( TMLSDEvent event: listEvents ) { - sb += TAB + event.toString() + CR; + sb += TAB + inst.getType() + " " + inst.getName() + CR; + if( inst.getEvents().size() > 0 ) { + ArrayList<TMLSDEvent> listEvents = inst.getEvents(); + Collections.sort( listEvents ); + for( TMLSDEvent event: listEvents ) { + sb += TAB2 + event.toString() + CR; + } + sb += CR; } - sb += CR + TAB; } sb += END + CR2; } diff --git a/src/tmltranslator/tmlcp/TMLSDEvent.java b/src/tmltranslator/tmlcp/TMLSDEvent.java index 6d73f504ec3b245d8932949c6da170583dd9062c..75a7a70c6661c78a7dfdc75921568167e62c5c0c 100755 --- a/src/tmltranslator/tmlcp/TMLSDEvent.java +++ b/src/tmltranslator/tmlcp/TMLSDEvent.java @@ -54,14 +54,19 @@ import myutil.*; public class TMLSDEvent implements Comparable<TMLSDEvent> { - private final static String MESSAGE_EVENT = "message"; - private final static String ACTION_EVENT = "action"; - private final static String ERROR = "ERROR IN EVENT"; - private String type; + public final static int SEND_MESSAGE_EVENT = 0; + public final static int RECEIVE_MESSAGE_EVENT = 1; + public final static int ACTION_EVENT = 2; + + private final static String SEND_MESSAGE_LABEL = "SND:"; + private final static String RECEIVE_MESSAGE_LABEL = "RCV:"; + private final static String ACTION_LABEL = "ACT:"; + private final static String ERROR = "ERROR_IN_EVENT"; + private int type; private int yCoord; private Object ref; - public TMLSDEvent( Object _referenceObject, String _type, int _yCoord ) { + public TMLSDEvent( Object _referenceObject, int _type, int _yCoord ) { this.ref = _referenceObject; this.yCoord = _yCoord; this.type = _type; @@ -88,14 +93,21 @@ public class TMLSDEvent implements Comparable<TMLSDEvent> { };*/ @Override public String toString() { - if( type.equals( MESSAGE_EVENT ) ) { - TMLSDMessage msg = ( (TMLSDMessage) ref); - return msg.toString(); - } - if( type.equals( ACTION_EVENT ) ) { - TMLSDAction action = ( (TMLSDAction) ref); - return action.toString(); - } - return ERROR; + + TMLSDMessage msg; + + switch( type ) { + case 0: //send message + msg = ( (TMLSDMessage) ref); + return SEND_MESSAGE_LABEL + msg.toString(); + case 1: //receive message + msg = ( (TMLSDMessage) ref); + return RECEIVE_MESSAGE_LABEL + msg.toString(); + case 2: //action + TMLSDAction action = ( (TMLSDAction) ref); + return ACTION_LABEL + action.toString(); + default: + return ERROR; + } } } //End of class diff --git a/src/tmltranslator/tmlcp/TMLSDInstance.java b/src/tmltranslator/tmlcp/TMLSDInstance.java index bbbad8b6b6163316312d94b7775c64fe6a7cad1e..a96c41de319716c6ea7f75829aa799d8f0104a51 100755 --- a/src/tmltranslator/tmlcp/TMLSDInstance.java +++ b/src/tmltranslator/tmlcp/TMLSDInstance.java @@ -57,8 +57,6 @@ import myutil.*; public class TMLSDInstance extends TMLElement { - private final static String MESSAGE_EVENT = "message"; - private final static String ACTION_EVENT = "action"; private String type; private TMLArchiNode mappedUnit; //the unit of the architecture where the instance is mapped to private ArrayList<TMLAttribute> globalVariables; @@ -120,7 +118,7 @@ public class TMLSDInstance extends TMLElement { public void addAction( TMLSDAction _action ) { //TraceManager.addDev("SD: Adding action in " + getName() + " nb of events: " + events.size()); actions.add( _action ); - events.add( new TMLSDEvent( _action, ACTION_EVENT, _action.getYCoord() ) ); + events.add( new TMLSDEvent( _action, TMLSDEvent.ACTION_EVENT, _action.getYCoord() ) ); Collections.sort( events ); } @@ -132,12 +130,19 @@ public class TMLSDInstance extends TMLElement { return mappedUnit; } - public void addMessage( TMLSDMessage _msg ) { - //TraceManager.addDev("SD: Adding message in " + getName()+ " nb of events: " + events.size()); - messages.add( _msg ); - int yCoord = ( (TGConnectorMessageTMLSD) _msg.getReferenceObject()).getTGConnectingPointP1().getY(); - events.add( new TMLSDEvent( _msg, MESSAGE_EVENT, yCoord ) ); - Collections.sort( events ); + public void addMessage( TMLSDMessage _msg, int _type ) { + + //TraceManager.addDev("SD: Adding message in " + getName()+ " nb of events: " + events.size()); + messages.add( _msg ); + if( _type == TMLSDEvent.SEND_MESSAGE_EVENT ) { + int yCoord = ( (TGConnectorMessageTMLSD) _msg.getReferenceObject()).getTGConnectingPointP1().getY(); + events.add( new TMLSDEvent( _msg, TMLSDEvent.SEND_MESSAGE_EVENT, yCoord ) ); + } + if( _type == TMLSDEvent.RECEIVE_MESSAGE_EVENT ) { + int yCoord = ( (TGConnectorMessageTMLSD) _msg.getReferenceObject()).getTGConnectingPointP2().getY(); + events.add( new TMLSDEvent( _msg, TMLSDEvent.RECEIVE_MESSAGE_EVENT, yCoord ) ); + } + Collections.sort( events ); } public void insertInitialValue( String _name, String value ) { diff --git a/src/ui/GTMLModeling.java b/src/ui/GTMLModeling.java index 95fb05e567bccf690df6c13b8161e8d351141599..86a6964daa7df228a7dee652c657a8c3739db3b9 100755 --- a/src/ui/GTMLModeling.java +++ b/src/ui/GTMLModeling.java @@ -2481,8 +2481,13 @@ public class GTMLModeling { for( tmltranslator.tmlcp.TMLSDInstance tempInstance: SD.getInstances() ) { if( tempInstance.getName().equals( sender ) ) { TraceManager.addDev( "Adding message " + message.toString() + " to instance " + tempInstance.toString() ); - tempInstance.addMessage( message ); - break; + tempInstance.addMessage( message, TMLSDEvent.SEND_MESSAGE_EVENT ); + //break; + } + if( tempInstance.getName().equals( receiver ) ) { + TraceManager.addDev( "Adding message " + message.toString() + " to instance " + tempInstance.toString() ); + tempInstance.addMessage( message, TMLSDEvent.RECEIVE_MESSAGE_EVENT ); + //break; } } }