content: package ru.yandex.qatools.allure.events;
  
  import ru.yandex.qatools.allure.model.Status;
  import ru.yandex.qatools.allure.model.Step;
  
  /**
   * Using to mark current step as failed and attach for it {@link Throwable}
   *
   * @author Dmitry Baev charlie@yandex-team.ru
   *         Date: 11.11.13
   *         <p/>
   */
  public class StepFailureEvent extends AbstractStepFailureEvent {
  
      /**
       * Change step status to {@link ru.yandex.qatools.allure.model.Status#FAILED} if
       * throwable instance of AssertionError and to {@link ru.yandex.qatools.allure.model.Status#BROKEN}
       * otherwise
       *
       * @param step which will be changed
       */
      @Override
      public void process(Step step) {
          Status status = throwable instanceof AssertionError ? Status.FAILED : Status.BROKEN;
          step.setStatus(status);
      }
  
      /**
       * Set specified throwable to event using fluent-api interface
       *
       * @param throwable the throwable to set
       * @return modified instance
       */
      public StepFailureEvent withThrowable(Throwable throwable) {
          setThrowable(throwable);
          return this;
      }
  
  }
  