001    package toolbus.tool.execution;
002    
003    import toolbus.ToolBus;
004    import toolbus.tool.ToolDefinition;
005    import toolbus.tool.ToolInstance;
006    
007    /**
008     * Interface all tool executor factories much implement.
009     * 
010     * @author Arnold Lankamp
011     */
012    public interface IToolExecutorFactory{
013            
014            /**
015             * Constructs a tool executor.
016             * 
017             * @param toolInstance
018             *            The tool instance to which the tool is associated.
019             * @param toolDefinition
020             *            The definition of the tool.
021             * @param toolbus
022             *            The toolbus to which the tool should connect.
023             *            
024             * @return The constructed tool executor.
025             */
026            public IToolExecutor getToolExecutor(ToolInstance toolInstance, ToolDefinition toolDefinition, ToolBus toolbus);
027    }