/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.execution.internal; import de.rcenvironment.core.component.execution.api.BatchingConsoleRowsForwarder; import de.rcenvironment.core.component.execution.api.Component; /** * Creates instances used when executing a {@link Component}. * * @author Doreen Seider */ public interface ComponentExecutionRelatedInstancesFactory { /** * Creates new instance of {@link ComponentExecutionStorageBridge} and adds them to given {@link ComponentExecutionRelatedInstances}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new * {@link ComponentExecutionStorageBridge} instance is associated with * @return new instance of {@link ComponentExecutionStorageBridge} added to given {@link ComponentExecutionRelatedInstances} */ ComponentExecutionStorageBridge createComponentExecutionStorageBridge(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link ComponentStateMachine}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new {@link ComponentStateMachine} * instance is associated with * @return new instance of {ComponentStateMachine} */ ComponentStateMachine createComponentStateMachine(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link ComponentExecutionScheduler}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new * {@link ComponentExecutionScheduler} instance is associated with * @return new instance of {@link ComponentExecutionScheduler} */ ComponentExecutionScheduler createComponentExecutionScheduler(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link ComponentContextBridge}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new {@link ComponentContextBridge} * instance is associated with * @return new instance of {ComponentContextBridge} */ ComponentContextBridge createComponentContextBridge(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link TypedDatumToOutputWriter}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new {@link TypedDatumToOutputWriter} * instance is associated with * @return new instance of {TypedDatumToOutputWriter} */ TypedDatumToOutputWriter createTypedDatumToOutputWriter(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link ConsoleRowsSender}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new {@link ConsoleRowsSender} instance * is associated with * @return new instance of {ConsoleRowsSender} */ ConsoleRowsSender createConsoleRowsSender(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link BatchingConsoleRowsForwarder}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new * {@link BatchingConsoleRowsForwarder} instance is associated with * @return new instance of {BatchingConsoleRowsForwarder */ BatchingConsoleRowsForwarder createBatchingConsoleRowsForwarder(ComponentExecutionRelatedInstances compExeRelatedInstances); /** * Creates new instance of {@link WorkflowExecutionControllerBridgeDelegator}. * * @param compExeRelatedInstances {@link ComponentExecutionRelatedInstances} of the component the new * {@link WorkflowExecutionControllerBridgeDelegator} instance is associated with * @return new instance of {WorkflowExecutionControllerBridgeDelegator} */ WorkflowExecutionControllerBridgeDelegator createWorkflowExecutionControllerBridgeDelegator( ComponentExecutionRelatedInstances compExeRelatedInstances); }