package org.eclipse.uml2.diagram.sequence.internal.layout.model;
import org.eclipse.uml2.diagram.sequence.internal.layout.vertical.input.LifeLineElement;
import org.eclipse.uml2.diagram.sequence.internal.layout.vertical.input.OrderingConstraint;
/**
*
*/
public interface LMMessageEnd {
void addMessage(LMMessage lmMessage);
void removeMessage(LMMessage lmMessage);
void messageIsJustReshaped(LMMessage lmMessage, JustReshapedState justReshapedState);
LMFrame getContainingFrame();
Positioning getPositioning();
interface Positioning {
}
interface OnLifeLinePositioning extends Positioning {
LMLifeLine getLifeLine();
}
interface ConnectableLifeLineElement extends LifeLineElement {
void addBeforeConstraint(OrderingConstraint orderingConstraint);
void removeBeforeConstraint(OrderingConstraint orderingConstraint);
void addAfterConstraint(OrderingConstraint orderingConstraint);
void removeAfterConstraint(OrderingConstraint orderingConstraint);
}
interface VerticalConstraintedPositioning extends OnLifeLinePositioning {
boolean canSetMessageAsHorizontalConstraint(LMCallMessageSynch lmCallMessageSynch);
void setMessageAsHorizontalConstraint(LMCallMessageSynch lmCallMessageSynch, boolean isConstraint);
boolean hasMessageAsHorizontalConstraint(LMCallMessageSynch lmCallMessageSynch);
ConnectableLifeLineElement getTopLifeLineElement();
/**
* @return may be null (i.e. this end is not aligned by (invisible ) return link)
*/
LifeLineElement getBottomLifeLineElement();
}
interface FloatingPositioning extends Positioning {
int getXPos();
void setXPos(int xPos);
void setYPos(int yPos);
}
}