package org.eclipse.uml2.diagram.timing.edit.policies; import java.util.Collections; import java.util.LinkedList; import java.util.List; import org.eclipse.uml2.diagram.timing.model.timingd.DBlock; import org.eclipse.uml2.diagram.timing.model.timingd.DFrame; import org.eclipse.uml2.diagram.timing.model.timingd.DFrameContainer; import org.eclipse.uml2.diagram.timing.model.timingd.DSegmentMiddlePoint; import org.eclipse.uml2.diagram.timing.model.timingd.DSegmentStart; import org.eclipse.uml2.diagram.timing.model.timingd.util.TimingDSwitch; import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.Lifeline; public class RelatedUMLElementAccessor extends TimingDSwitch<List<Element>> { @Override public List<Element> caseDBlock(DBlock object) { List<Element> result = new LinkedList<Element>(); Lifeline lifeline = object.getLifeline(); result.add(lifeline); if (lifeline != null){ result.addAll(lifeline.getCoveredBys()); } return result; } @Override public List<Element> caseDFrame(DFrame object) { return Collections.<Element>singletonList(object.getInteraction()); } @Override public List<Element> caseDFrameContainer(DFrameContainer object) { return Collections.<Element>singletonList(object.getPakkage()); } @Override public List<Element> caseDSegmentMiddlePoint(DSegmentMiddlePoint object) { return Collections.<Element>singletonList(object.getOccurrence()); } @Override public List<Element> caseDSegmentStart(DSegmentStart object) { // TODO Auto-generated method stub return super.caseDSegmentStart(object); } }