コード例 #1
0
 /**
  * Overridden to tells if the specified {@link ISequenceEvent} is owned by the current {@link
  * Lifeline}.
  *
  * <p>{@inheritDoc}
  */
 public boolean apply(ISequenceEvent input) {
   boolean result = false;
   Option<Lifeline> inputLifeline = input.getLifeline();
   if (inputLifeline.some()) {
     result = inputLifeline.get().equals(owner);
   } else if (input instanceof Message) {
     Message message = (Message) input;
     ISequenceNode sourceElt = message.getSourceElement();
     ISequenceNode targetElt = message.getSourceElement();
     Option<Lifeline> sourceLifeline = sourceElt.getLifeline();
     Option<Lifeline> targetLifeline = targetElt.getLifeline();
     result =
         sourceLifeline.some() && sourceLifeline.get().equals(owner)
             || targetLifeline.some() && targetLifeline.get().equals(owner);
   } else if (input instanceof Operand) {
     result = true;
   } else if (input instanceof AbstractFrame) {
     AbstractFrame frame = (AbstractFrame) input;
     Collection<Lifeline> coverage = frame.computeCoveredLifelines();
     result = coverage.contains(owner);
   }
   return result;
 }