package org.eclipse.uml2.diagram.sequence.internal.layout.model; import org.eclipse.uml2.diagram.sequence.internal.layout.vertical.input.LifeLine; import org.eclipse.uml2.diagram.sequence.internal.layout.vertical.input.LifeLineElement; import org.eclipse.uml2.diagram.sequence.internal.layout.vertical.input.LifeLineIterator; /** * */ public class LMFakeLifeLine implements SDVerticalLayoutInputImpl.LifeLineSupply { LMFakeLifeLine(int height) { myFirstLifeLineElement = new SDVerticalLayoutInputImpl.LifeLineElementGenAdapter(0, 0, DUMB_POSITION, this) { public String toString() { return "FakeLifelineElement:Top"; //$NON-NLS-1$ } }; myLastLifeLineElement = new SDVerticalLayoutInputImpl.LifeLineElementGenAdapter(0, 0, DUMB_POSITION, this) { public String toString() { return "FakeLifelineElement:Bottom"; //$NON-NLS-1$ } }; myPseudoObjectElement = new SDVerticalLayoutInputImpl.LifeLineElementGenAdapter(0, height, DUMB_POSITION, this); } private SDVerticalLayoutInputImpl.NullFreeIterator verticalLayoutElements() { return new SDVerticalLayoutInputImpl.NullFreeIteratorForArray(3) { protected Object get(int pos) { switch (pos) { case 0: return myFirstLifeLineElement; case 1: return myPseudoObjectElement; case 2: return myLastLifeLineElement; } throw new IndexOutOfBoundsException(); } }; } public LifeLine getVerticalLayoutLifeLine() { return myVerticalLayoutLifeLine; } SDVerticalLayoutInputImpl.LifeLineElementGen getFirstLifeLineElement() { return myFirstLifeLineElement; } SDVerticalLayoutInputImpl.LifeLineElementGen getLastLifeLineElement() { return myLastLifeLineElement; } public String toString() { return "LMFakeLifeline"; //$NON-NLS-1$ } private final SDVerticalLayoutInputImpl.LifeLineElementGen myPseudoObjectElement; private final SDVerticalLayoutInputImpl.LifeLineElementGen myFirstLifeLineElement; private final SDVerticalLayoutInputImpl.LifeLineElementGen myLastLifeLineElement; private final LifeLine myVerticalLayoutLifeLine = new LifeLine() { public LifeLineIterator iterator() { return new SDVerticalLayoutInputImpl.LifeLineIteratorImpl(verticalLayoutElements()); } public String toString() { return "LL:" + LMFakeLifeLine.this; //$NON-NLS-1$ } }; private final static LifeLineElement.Position DUMB_POSITION = new LifeLineElement.Position() { public int getPositionValue() { return 0; } public void setPositionValue(int pos) { } public boolean isVirtual() { return true; } public boolean isFirstPrioritedPosition() { return false; } public boolean isLastPrioritedPosition() { return false; } }; }