package org.eclipse.uml2.diagram.sequence.model.edit; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDBehaviorSpec; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDBracket; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDExecution; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDFrame; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDInvocation; import org.eclipse.uml2.diagram.sequence.model.sequenced.SDMountingRegion; import org.eclipse.uml2.uml.ExecutionSpecification; import org.eclipse.uml2.uml.InteractionFragment; public class InsertFragmentAfter extends InsertAfter<InteractionFragment> { public void executionStarted(SDExecution sdExecution) { ExecutionSpecification umlExecution = sdExecution.getUmlExecutionSpec(); considerAsPast(umlExecution); considerAsPast(umlExecution.getStart()); SDInvocation sdParentInvocation = sdExecution.getInvocation(); if (sdParentInvocation != null) { considerAsPast(sdParentInvocation.getUmlExecutionSpec()); considerAsPast(sdParentInvocation.getUmlStart()); } } public void fragmentFinished(InteractionFragment fragment) { considerAsPast(fragment); if (fragment instanceof ExecutionSpecification) { considerAsPast(((ExecutionSpecification) fragment).getFinish()); } } public void bracketFinished(SDBracket bracket){ if (bracket.getBracketContainer() instanceof SDExecution){ executionStarted((SDExecution)bracket.getBracketContainer()); } if (bracket instanceof SDBehaviorSpec){ fragmentFinished(((SDBehaviorSpec)bracket).getUmlExecutionSpec()); } if (bracket instanceof SDMountingRegion){ SDFrame frame = ((SDMountingRegion)bracket).getFrame(); fragmentFinished(frame.getUmlFragment()); } } }