Home | History | Annotate | Download | only in graph
      1 package org.testng.internal.thread.graph;
      2 
      3 import org.testng.ISuite;
      4 import org.testng.SuiteRunnerWorker;
      5 import org.testng.collections.Lists;
      6 import org.testng.internal.SuiteRunnerMap;
      7 
      8 import java.util.List;
      9 
     10 /**
     11  * An {@code IThreadWorkerFactory} for {@code SuiteRunner}s
     12  *
     13  * @author nullin
     14  *
     15  */
     16 public class SuiteWorkerFactory implements IThreadWorkerFactory<ISuite>
     17 {
     18   private Integer m_verbose;
     19   private String m_defaultSuiteName;
     20   private SuiteRunnerMap m_suiteRunnerMap;
     21 
     22   public SuiteWorkerFactory(SuiteRunnerMap suiteRunnerMap,
     23       Integer verbose, String defaultSuiteName) {
     24     m_suiteRunnerMap = suiteRunnerMap;
     25     m_verbose = verbose;
     26     m_defaultSuiteName = defaultSuiteName;
     27   }
     28 
     29   /**
     30    * For each suite, creates a {@code SuiteRunnerWorker}
     31    * @param suites set of suite runners
     32    * @return list of suite runner workers
     33    */
     34   @Override
     35   public List<IWorker<ISuite>> createWorkers(List<ISuite> suites)
     36   {
     37     List<IWorker<ISuite>> suiteWorkers = Lists.newArrayList();
     38     for (ISuite suiteRunner : suites) {
     39       SuiteRunnerWorker worker = new SuiteRunnerWorker(suiteRunner, m_suiteRunnerMap,
     40         m_verbose, m_defaultSuiteName);
     41       suiteWorkers.add(worker);
     42     }
     43     return suiteWorkers;
     44   }
     45 
     46 }
     47