svn commit: r19140 - trunk/src: argouml-app/src/org/argouml/notation/providers argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram argouml-core-model-euml/src/org/argouml/model/euml argouml-core-model-mdr/src/org/argouml/model/mdr argouml-core-model/src/org/argouml/model

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2011-03-26 04:46:00-0700
New Revision: 19140

Modified:
   trunk/src/argouml-app/src/org/argouml/notation/providers/MessageNotation.java
   trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/ModeCreateMessage.java
   trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/SequenceDiagramGraphModel.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsFactoryEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsHelperEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MessageSortEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelEventPumpEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlHelperEUMLImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MessageSortMDRImpl.java
   trunk/src/argouml-core-model/src/org/argouml/model/AbstractCollaborationsHelperDecorator.java
   trunk/src/argouml-core-model/src/org/argouml/model/CollaborationsHelper.java
   trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
   trunk/src/argouml-core-model/src/org/argouml/model/MessageSort.java

Log:
First attempt at drawing messages in UML2

Modified: trunk/src/argouml-app/src/org/argouml/notation/providers/MessageNotation.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/MessageNotation.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/notation/providers/MessageNotation.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/notation/providers/MessageNotation.java	2011-03-26 04:46:00-0700
@@ -65,33 +65,31 @@
 
     @Override
     public void initialiseListener(Object umlMessage) {
-        if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
-            addElementListener(umlMessage,
-                    new String[] {"activator", "predecessor", "successor", 
-                        "sender", "receiver", "action", "name"});
-            Object action = Model.getFacade().getAction(umlMessage);
-            if (action != null) {
-                addElementListener(action,
-                        new String[] {"remove", "recurrence", "script", 
-                            "actualArgument", "signal", "operation"});
-                List args = Model.getFacade().getActualArguments(action);
-                for (Object argument : args) {
-                    addElementListener(argument,
-                            new String[] {"remove", "value"});
-                }
-                if (Model.getFacade().isACallAction(action)) {
-                    Object operation = Model.getFacade().getOperation(action);
-                    if (Model.getFacade().isAOperation(operation)) {
-                        addElementListener(operation,
-                                new String[] {"name"});
-                    }
+        addElementListener(umlMessage,
+                new String[] {"activator", "predecessor", "successor", 
+                    "sender", "receiver", "action", "name"});
+        Object action = Model.getFacade().getAction(umlMessage);
+        if (action != null) {
+            addElementListener(action,
+                    new String[] {"remove", "recurrence", "script", 
+                        "actualArgument", "signal", "operation"});
+            List args = Model.getFacade().getActualArguments(action);
+            for (Object argument : args) {
+                addElementListener(argument,
+                        new String[] {"remove", "value"});
+            }
+            if (Model.getFacade().isACallAction(action)) {
+                Object operation = Model.getFacade().getOperation(action);
+                if (Model.getFacade().isAOperation(operation)) {
+                    addElementListener(operation,
+                            new String[] {"name"});
                 }
-                if (Model.getFacade().isASendAction(action)) {
-                    Object signal = Model.getFacade().getSignal(action);
-                    if (Model.getFacade().isASignal(signal)) {
-                        addElementListener(signal,
-                                new String[] {"name"});
-                    }
+            }
+            if (Model.getFacade().isASendAction(action)) {
+                Object signal = Model.getFacade().getSignal(action);
+                if (Model.getFacade().isASignal(signal)) {
+                    addElementListener(signal,
+                            new String[] {"name"});
                 }
             }
         }

Modified: trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/ModeCreateMessage.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/ModeCreateMessage.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/ModeCreateMessage.java	(original)
+++ trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/ModeCreateMessage.java	2011-03-26 04:46:00-0700
@@ -119,10 +119,9 @@
             
             // create the return message modelelement with the interaction
             // and the collaboration
-            final Object returnMessage = gm.connect(
+            final Object returnMessage = gm.connectMessage(
                     returnMessageSource,
                     returnMessageDest, 
-                    Model.getMetaTypes().getMessage(),
                     Model.getMetaTypes().getReturnAction());
             
             // Correct the activator value

Modified: trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/SequenceDiagramGraphModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/SequenceDiagramGraphModel.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/SequenceDiagramGraphModel.java	(original)
+++ trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/SequenceDiagramGraphModel.java	2011-03-26 04:46:00-0700
@@ -337,7 +337,7 @@
         Mode mode = modeManager.top();
         Hashtable args = mode.getArgs();
         Object actionType = args.get("action");
-        return connect(fromPort, toPort, edgeType, actionType);
+        return connectMessage(fromPort, toPort, actionType);
     }
     
     /**
@@ -350,34 +350,45 @@
      * @see org.tigris.gef.graph.MutableGraphModel#connect(
      *          Object, Object, Class)
      */
-    public Object connect(Object fromPort, Object toPort, Object edgeType, 
-    		Object actionType) {
+    public Object connectMessage(Object fromPort, Object toPort, Object messageSort) {
+        // TODO: Lets move this behind the model interface
+        if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
+            return createMessage1(fromPort, toPort, messageSort);
+        } else {
+            return createMessage2(fromPort, toPort, messageSort);
+        }
+    }
+
+    private Object createMessage1(Object fromPort, Object toPort, Object messageSort) {
         Object edge = null;
         Object action = null;
-        if (Model.getMetaTypes().getCallAction().equals(actionType)) {
+        if (Model.getMessageSort().getSynchCall().equals(messageSort)) {
             action = Model.getCommonBehaviorFactory().createCallAction();
             Model.getCommonBehaviorHelper().setAsynchronous(action, false);
-        } else if (Model.getMetaTypes().getCreateAction()
-                .equals(actionType)) {
+        } else if (Model.getMessageSort().getASynchCall().equals(messageSort)) {
+            action = Model.getCommonBehaviorFactory().createCallAction();
+            Model.getCommonBehaviorHelper().setAsynchronous(action, true);
+        } else if (Model.getMessageSort().getCreateMessage()
+                .equals(messageSort)) {
             action = Model.getCommonBehaviorFactory().createCreateAction();
             Model.getCommonBehaviorHelper().setAsynchronous(action, false);
-        } else if (Model.getMetaTypes().getReturnAction()
-                .equals(actionType)) {
+        } else if (Model.getMessageSort().getReply()
+                .equals(messageSort)) {
             action = Model.getCommonBehaviorFactory().createReturnAction();
             Model.getCommonBehaviorHelper().setAsynchronous(action, true);
-        } else if (Model.getMetaTypes().getDestroyAction()
-                .equals(actionType)) {
+        } else if (Model.getMessageSort().getDeleteMessage()
+                .equals(messageSort)) {
             action = Model.getCommonBehaviorFactory().createDestroyAction();
             Model.getCommonBehaviorHelper().setAsynchronous(action, false);
-        } else if (Model.getMetaTypes().getSendAction()
-                .equals(actionType)) {
+        } else if (Model.getMessageSort().getASynchSignal()
+                .equals(messageSort)) {
             action = Model.getCommonBehaviorFactory().createSendAction();
             Model.getCommonBehaviorHelper().setAsynchronous(action, true);
         } else if (Model.getMetaTypes().getTerminateAction()
-                .equals(actionType)) {
+                .equals(messageSort)) {
             // not implemented yet
         }
-        if (fromPort != null && toPort != null && action != null) {
+        if (fromPort != null && toPort != null) {
             Object associationRole =
                 Model.getCollaborationsHelper().getAssociationRole(
                     fromPort,
@@ -387,7 +398,7 @@
                     Model.getCollaborationsFactory().buildAssociationRole(
                             fromPort, toPort);
             }
-
+    
             Object message =
                 Model.getCollaborationsFactory().buildMessage(
                     getInteraction(),
@@ -400,7 +411,7 @@
                 .setSender(message, fromPort);
             Model.getCommonBehaviorHelper()
                 .setReceiver(message, toPort);
-
+    
             addEdge(message);
             edge = message;
         }
@@ -408,8 +419,27 @@
             LOG.debug("Incorrect edge");
         }
         return edge;
-
+    
+    }
+    
+    private Object createMessage2(Object fromPort, Object toPort, Object messageSort) {
+        if (fromPort != null && toPort != null) {
+    
+            Object message =
+                Model.getCollaborationsFactory().buildMessage(
+                    fromPort,
+                    toPort);
+            Model.getCollaborationsHelper().setMessageSort(message, messageSort);
+    
+            addEdge(message);
+            return message;
+        }
+        LOG.debug("Incorrect edge");
+        return null;
+    
     }
+
+    
     
     /*
      * @see org.tigris.gef.graph.MutableGraphModel#addEdge(java.lang.Object)

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsFactoryEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsFactoryEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsFactoryEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -16,9 +16,12 @@
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.Collaboration;
 import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Gate;
 import org.eclipse.uml2.uml.Interaction;
 import org.eclipse.uml2.uml.Lifeline;
 import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageEnd;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
 import org.eclipse.uml2.uml.UMLFactory;
 
 /**
@@ -109,9 +112,24 @@
         return interaction;
     }
 
-    public Message buildMessage(Object acollab, Object arole) {
-        // TODO: Auto-generated method stub
-        return createMessage();
+    public Message buildMessage(Object from, Object to) {
+        
+        Lifeline l1 = (Lifeline) from;
+        Lifeline l2 = (Lifeline) to;
+
+        Message message = UMLFactory.eINSTANCE.createMessage();
+        
+        MessageOccurrenceSpecification receive = 
+            UMLFactory.eINSTANCE.createMessageOccurrenceSpecification();
+        MessageOccurrenceSpecification send = 
+            UMLFactory.eINSTANCE.createMessageOccurrenceSpecification();
+        
+        message.setReceiveEvent(receive);
+        message.setSendEvent(send);
+        
+        l1.getCoveredBys().add(send);
+        l2.getCoveredBys().add(receive);
+        return message;
     }
 
     public Object createAssociationEndRole() {

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsHelperEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsHelperEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsHelperEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CollaborationsHelperEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -14,6 +14,8 @@
 import java.util.Collection;
 
 import org.argouml.model.CollaborationsHelper;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageSort;
 
 /**
  * Eclipse UML2 implementation of CollaborationsHelper.
@@ -149,9 +151,8 @@
         
     }
 
-    public void setAction(Object handle, Object action) {
-        // TODO: Auto-generated method stub
-        
+    public void setAction(Object message, Object action) {
+        setMessageSort(message, action);
     }
 
     public void setActivator(Object ames, Object anactivator) {
@@ -173,6 +174,12 @@
         // TODO: Auto-generated method stub
         
     }
+    
+    public void setMessageSort(Object message, Object messageSort) {
+        MessageSort ms = (MessageSort) messageSort;
+        Message m = (Message) message;
+        m.setMessageSort(ms);
+    }
 
     public void setPredecessors(Object handle, Collection predecessors) {
         // TODO: Auto-generated method stub

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -77,8 +77,11 @@
     }
 
     public Object getAction(Object handle) {
+        if (handle instanceof Message) {
+            // In UML a message could have an Action. In UML2 it never does.
+            return null;
+        }
         throw new NotYetImplementedException();
-
     }
 
     public Object getActionSequence(Object handle) {
@@ -878,6 +881,11 @@
         throw new NotYetImplementedException();
     }
 
+    public Object getMessageSort(Object handle) {
+        Message message = (Message) handle;
+        return message.getMessageSort();
+    }
+
     public Collection getMethods(Object handle) {
         if (handle instanceof BehavioralFeature) {
             return ((BehavioralFeature)handle).getMethods();
@@ -1201,7 +1209,10 @@
     }
 
     public Object getReceiver(Object handle) {
-        throw new NotYetImplementedException();
+        Message message = (Message) handle;
+        MessageOccurrenceSpecification mos =
+            (MessageOccurrenceSpecification) message.getReceiveEvent();
+        return mos.getCovereds().get(0);
     }
 
     public Collection getReceptions(Object handle) {
@@ -1262,7 +1273,10 @@
     }
 
     public Object getSender(Object handle) {
-        throw new NotYetImplementedException();
+        Message message = (Message) handle;
+        MessageOccurrenceSpecification mos =
+            (MessageOccurrenceSpecification) message.getSendEvent();
+        return mos.getCovereds().get(0);
     }
 
     public Collection getSentMessages(Object handle) {
@@ -2255,7 +2269,12 @@
     }
 
     public boolean isAsynchronous(Object handle) {
-        return !((CallAction) handle).isSynchronous();
+        if (handle == MessageSort.ASYNCH_CALL_LITERAL) return true;
+        if (handle == MessageSort.ASYNCH_SIGNAL_LITERAL) return true;
+        if (handle instanceof CallAction) {
+            return !((CallAction) handle).isSynchronous();
+        }
+        return false;
     }
 
     public boolean isComposite(Object handle) {

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MessageSortEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MessageSortEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MessageSortEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MessageSortEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -20,23 +20,27 @@
 class MessageSortEUMLImpl implements MessageSort {
 
     public Object getASynchCall() {
-        return org.eclipse.uml2.uml.MessageSort.ASYNCH_CALL;
+        return org.eclipse.uml2.uml.MessageSort.ASYNCH_CALL_LITERAL;
     }
 
     public Object getCreateMessage() {
-        return org.eclipse.uml2.uml.MessageSort.CREATE_MESSAGE;
+        return org.eclipse.uml2.uml.MessageSort.CREATE_MESSAGE_LITERAL;
     }
 
     public Object getDeleteMessage() {
-        return org.eclipse.uml2.uml.MessageSort.DELETE_MESSAGE;
+        return org.eclipse.uml2.uml.MessageSort.DELETE_MESSAGE_LITERAL;
     }
 
     public Object getReply() {
-        return org.eclipse.uml2.uml.MessageSort.REPLY;
+        return org.eclipse.uml2.uml.MessageSort.REPLY_LITERAL;
     }
 
     public Object getSynchCall() {
-        return org.eclipse.uml2.uml.MessageSort.SYNCH_CALL;
+        return org.eclipse.uml2.uml.MessageSort.SYNCH_CALL_LITERAL;
+    }
+
+    public Object getASynchSignal() {
+        return org.eclipse.uml2.uml.MessageSort.ASYNCH_SIGNAL_LITERAL;
     }
 
 

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelEventPumpEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelEventPumpEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelEventPumpEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelEventPumpEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -181,7 +181,8 @@
         if (!(modelElement instanceof EObject)) {
             throw new IllegalArgumentException(
                     "The modelelement must be instance " //$NON-NLS-1$
-                            + "of EObject."); //$NON-NLS-1$
+                            + "of EObject. We got " //$NON-NLS-1$
+                            + modelElement);
         }
         registerListener(
                 modelElement, listener, propertyNames, registerForElements);

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlHelperEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlHelperEUMLImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlHelperEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlHelperEUMLImpl.java	2011-03-26 04:46:00-0700
@@ -28,6 +28,7 @@
 import org.eclipse.uml2.uml.Extend;
 import org.eclipse.uml2.uml.ExtensionPoint;
 import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Message;
 import org.eclipse.uml2.uml.Operation;
 import org.eclipse.uml2.uml.Parameter;
 import org.eclipse.uml2.uml.ParameterSet;
@@ -84,8 +85,12 @@
         } else if (relationship instanceof Property) {
             // TODO: We expect an association end here - check more carefully? - tfm
             return modelImpl.getCoreHelper().getSource(relationship);
+        } else if (relationship instanceof Message) {
+            return modelImpl.getFacade().getSender(relationship);
         }
-        throw new IllegalArgumentException();
+        throw new IllegalArgumentException(
+                "Getting source of this object is not implemented" //$NON-NLS-1$
+                + relationship);
     }
 
     /*
@@ -104,8 +109,12 @@
         } else if (relationship instanceof Property) {
             // TODO: We expect an association end here - check more carefully? - tfm
             return modelImpl.getCoreHelper().getDestination(relationship);
+        } else if (relationship instanceof Message) {
+            return modelImpl.getFacade().getReceiver(relationship);
         }
-        throw new IllegalArgumentException();
+        throw new IllegalArgumentException(
+                "Getting destination of this object is not implemented" //$NON-NLS-1$
+                + relationship);
     }
 
    /*

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java	2011-03-26 04:46:00-0700
@@ -871,7 +871,10 @@
         throw new IllegalArgumentException("predecessor: " + handle
                 + " or messages: " + messages);
     }
-
+    
+    public void setMessageSort(Object message, Object messageSort) {
+        setAction(message, messageSort);
+    }
 
     public void setPredecessors(Object handle, Collection predecessors) {
         if (handle instanceof Message) {

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	2011-03-26 04:46:00-0700
@@ -2036,6 +2036,15 @@
         return illegalArgumentCollection(handle);
     }
 
+    /**
+     * @see org.argouml.model.Facade#getMessageSort(java.lang.Object)
+     */
+    public Object getMessageSort(Object handle) {
+        return getAction(handle);
+    }
+    
+    
+    
     public Collection getSuccessors(Object handle) {
         try {
             if (handle instanceof Message) {

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MessageSortMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MessageSortMDRImpl.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MessageSortMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MessageSortMDRImpl.java	2011-03-26 04:46:00-0700
@@ -26,7 +26,7 @@
 class MessageSortMDRImpl implements MessageSort {
 
     public Object getASynchCall() {
-        return SendAction.class;
+        return CallAction.class;
     }
 
     public Object getCreateMessage() {
@@ -44,4 +44,8 @@
     public Object getSynchCall() {
         return CallAction.class;
     }
+    
+    public Object getASynchSignal() {
+        return SendAction.class;
+    }
 }

Modified: trunk/src/argouml-core-model/src/org/argouml/model/AbstractCollaborationsHelperDecorator.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/AbstractCollaborationsHelperDecorator.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/AbstractCollaborationsHelperDecorator.java	(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/AbstractCollaborationsHelperDecorator.java	2011-03-26 04:46:00-0700
@@ -186,6 +186,10 @@
         impl.setContext(handle, col);
     }
 
+    public void setMessageSort(Object handle, Object messageSort) {
+        impl.setAction(handle, messageSort);
+    }
+
     public void setSuccessors(Object handle, Collection messages) {
         impl.setSuccessors(handle, messages);
     }

Modified: trunk/src/argouml-core-model/src/org/argouml/model/CollaborationsHelper.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/CollaborationsHelper.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/CollaborationsHelper.java	(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/CollaborationsHelper.java	2011-03-26 04:46:00-0700
@@ -307,6 +307,14 @@
     void setAction(Object handle, Object action);
 
     /**
+     * Sets the MessageSort to a message.
+     *
+     * @param message is the Message
+     * @param messageSort is the MessageSort
+     */
+    void setMessageSort(Object message, Object messageSort);
+
+    /**
      * Set the context of an interaction.
      *
      * @param interaction The interaction.

Modified: trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/Facade.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/Facade.java	(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/Facade.java	2011-03-26 04:46:00-0700
@@ -1946,6 +1946,14 @@
     Collection getMessages(Object handle);
 
     /**
+     * Return the MessageSort of the Message
+     * 
+     * @param handle the message
+     * @return the MessageSort
+     */
+    Object getMessageSort(Object handle);
+
+    /**
      * Return the Messages which are successors to the given Message.
      *
      * @param handle the message

Modified: trunk/src/argouml-core-model/src/org/argouml/model/MessageSort.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/MessageSort.java?view=diff&pathrev=19140&r1=19139&r2=19140
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/MessageSort.java	(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/MessageSort.java	2011-03-26 04:46:00-0700
@@ -42,4 +42,9 @@
      * @return Returns the Reply MessageSort
      */
     Object getReply();
+    
+    /**
+     * @return Returns the ASynchSignal MessageSort
+     */
+    Object getASynchSignal();    
 }

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2714327

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.