001 package nl.cwi.sen1.tunit.execution; 002 003 import java.util.HashMap; 004 import java.util.Map; 005 006 import nl.cwi.sen1.tunit.TUnitTestCase; 007 import toolbus.ToolBus; 008 import toolbus.tool.ToolDefinition; 009 import toolbus.tool.ToolInstance; 010 import toolbus.tool.execution.DefaultToolExecutor; 011 import toolbus.tool.execution.IToolExecutor; 012 import toolbus.tool.execution.IToolExecutorFactory; 013 014 public class DefaultTestToolExecutorFactory implements IToolExecutorFactory{ 015 private final TUnitTestCase testCase; 016 017 private final Map<String, Class<?>> execuableToolComValidators; 018 019 public DefaultTestToolExecutorFactory(TUnitTestCase testCase){ 020 super(); 021 022 this.testCase = testCase; 023 024 execuableToolComValidators = new HashMap<String, Class<?>>(); 025 } 026 027 public void addComValidatorForExecutableTool(String name, Class<?> toolStubClass){ 028 execuableToolComValidators.put(name, toolStubClass); 029 } 030 031 public IToolExecutor getToolExecutor(ToolInstance toolInstance, ToolDefinition toolDefinition, ToolBus toolbus){ 032 String name = toolInstance.getToolName(); 033 Class<?> toolComValidatorClass = execuableToolComValidators.get(name); 034 if(toolComValidatorClass != null){ 035 return new ToolComValidatorExecutor(testCase, name, toolInstance.getToolID(), toolComValidatorClass); 036 } 037 038 return new DefaultToolExecutor(toolInstance, toolDefinition, toolbus); 039 } 040 }