/**
 * Automated Exploratory Tests
 *
 * Copyright (C) 2013 Cognifide Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.cognifide.aet.common;

import com.cognifide.aet.communication.api.suiteexecution.ProcessingStatus;
import com.cognifide.aet.communication.api.suiteexecution.SuiteStatusResult;

final class ProcessorFactory {

  private ProcessorFactory() {
    // private
  }

  static StatusProcessor produce(SuiteStatusResult suiteStatusResult, String reportUrl,
                                 RedirectWriter redirectWriter, RunnerTerminator runnerTerminator) {
    StatusProcessor processor = null;
    if (suiteStatusResult != null) {
      if (ProcessingStatus.PROGRESS.equals(suiteStatusResult.getStatus())) {
        processor = new ProgressStatusProcessor(suiteStatusResult);
      } else if (ProcessingStatus.ERROR.equals(suiteStatusResult.getStatus())) {
        processor = new ProcessingErrorStatusProcessor(suiteStatusResult);
      } else if (ProcessingStatus.FATAL_ERROR.equals(suiteStatusResult.getStatus())) {
        processor = new FatalErrorStatusProcessor(suiteStatusResult);
      } else if (ProcessingStatus.FINISHED.equals(suiteStatusResult.getStatus())) {
        processor = new SuiteFinishedProcessor(reportUrl, redirectWriter, runnerTerminator);
      }
    }
    return processor;
  }

}

@@ -668,84 +668,8 @@
 n;%0A%0A
-import com.cognifide.aet.communication.api.suiteexecution.ProcessingStatus;%0A
 impo
@@ -741,16 +741,16 @@
 Result;%0A
+
 %0Afinal c
@@ -1099,44 +1099,15 @@
     
-if (ProcessingStatus.PROGRESS.equals
+switch 
 (sui
@@ -1125,36 +1125,60 @@
 ult.getStatus())
-)
  %7B%0A
+        case PROGRESS:%0A  
         processo
@@ -1239,83 +1239,41 @@
     
-%7D else if (ProcessingStatus.ERROR.equals(suiteStatusResult.getStatus())) %7B%0A
+    break;%0A        case ERROR:%0A  
     
@@ -1353,243 +1353,159 @@
     
-%7D else if (ProcessingStatus.FATAL_ERROR.equals(suiteStatusResult.getStatus())) %7B%0A        processor = new FatalErrorStatusProcessor(suiteStatusResult);%0A      %7D else if (ProcessingStatus.FINISHED.equals(suiteStatusResult.getStatus())) %7B%0A
+    break;%0A        case FATAL_ERROR:%0A          processor = new FatalErrorStatusProcessor(suiteStatusResult);%0A          break;%0A        case FINISHED:%0A  
     
@@ -1593,16 +1593,33 @@
 nator);%0A
+          break;%0A
       %7D%0A

Replace ifs with switch in ProcessorFactory (#50)