package org.eclipse.uml2.diagram.sequence.internal.layout.model; import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsLink; /** * */ public class LMReturnMessage extends LMInterLifeLineMessage { public LMReturnMessage(AbsLink gdeLink, boolean isAsynchronous) { super(gdeLink); myIsAsynchronous = isAsynchronous; } boolean isFromSendToReceive() { return false; } LMReceiveMessageEnd getReceiveMessageEnd() { return myReceiveMessageEnd; } protected void setReceiveMessageEnd(LMReceiveMessageEnd receiveMessageEnd, LMReceiveMessageEnd.HorizontalPositioning receiveEndPositioning) { myReceiveMessageEnd = receiveMessageEnd; myReceivePositioning = receiveEndPositioning; sourceOrDestinationChanged(); } LMSendMessageEnd getSendMessageEnd() { return mySendMessageEnd; } protected void setSendMessageEnd(LMSendMessageEnd sendMessageEnd, LMSendMessageEnd.HorizontalPositioning sendEndPositioning) { mySendMessageEnd = sendMessageEnd; mySendPositioning = sendEndPositioning; sourceOrDestinationChanged(); } protected LMSendMessageEnd.HorizontalPositioning getSendMessageHorizontalPositioning() { return mySendPositioning; } protected LMReceiveMessageEnd.HorizontalPositioning getReceiveMessageHorizontalPositioning() { return myReceivePositioning; } protected int getReceiveEndXPos(boolean toRightNotLeft) { if (myIsAsynchronous) { return myReceivePositioning.getReceiveEndXPos(toRightNotLeft); } return myReceivePositioning.getReceiveEndXPosForSynchReturnNotCallLink(toRightNotLeft); } void resetSendMessageEnd() { mySendMessageEnd = null; mySendPositioning = null; sourceOrDestinationChanged(); } void resetReceiveMessageEnd() { myReceiveMessageEnd = null; myReceivePositioning = null; sourceOrDestinationChanged(); } boolean isAsynchronous() { return myIsAsynchronous; } void becomeLayoutConstraint(boolean on) { } boolean isLayoutConstraint() { return false; } private LMReceiveMessageEnd myReceiveMessageEnd; private LMSendMessageEnd mySendMessageEnd; private LMSendMessageEnd.HorizontalPositioning mySendPositioning; private LMReceiveMessageEnd.HorizontalPositioning myReceivePositioning; private final boolean myIsAsynchronous; }