weka.knowledgeflow.steps

## Class Job

- java.lang.Object
- - weka.knowledgeflow.steps.BaseStep
  - - weka.knowledgeflow.steps.Job

- All Implemented Interfaces:
    java.io.Serializable, BaseStepExtender, Step

      @KFStep(name="Job",
              category="Flow",
              toolTipText="Execute a flow as a \'job\' and wait for it to finish",
              iconPath="weka/gui/knowledgeflow/icons/Job.gif")
      public class Job
      extends BaseStep

  Step that executes another flow as a "job". Typically, you would parameterize the flow to be executed with variables (in steps that support variables) and then use a a data source connected to a SetVariables step to change the values of the variables dynamically at runtime. For example, a DataGrid could be used to define a set of instances with a string variable containing paths to ARFF files to process; SetVariables can be used to transfer these file paths from the incoming instances generated by DataGrid to the values of variables; then the Job step can execute it's sub-flow for each configuration of variables received, thus processing a different ARFF file (if the subflow uses an ArffLoader step).
  Version:
    $Revision: $
  Author:
    Mark Hall (mhall{[at]}pentaho{[dot]}com)
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Job()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getCustomEditorForStep()` Get the custom editor for this step
    `java.io.File` | `getFlowFile()`
    `java.util.List<java.lang.String>` | `getIncomingConnectionTypes()` Get a list of incoming connection types that this step can accept.
    `java.util.List<java.lang.String>` | `getOutgoingConnectionTypes()` Get a list of outgoing connection types that this step can produce.
    `void` | `processIncoming(Data data)` Process an incoming data payload (if the step accepts incoming connections)
    `void` | `setFlowFile(java.io.File flowFile)`
    `void` | `start()` Start processing.
    `void` | `stepInit()` Initialize the step.

    - ### Methods inherited from class weka.knowledgeflow.steps.BaseStep

      `environmentSubstitute, getDefaultSettings, getInteractiveViewers, getInteractiveViewersImpls, getName, getStepManager, globalInfo, isResourceIntensive, isStopRequested, outputStructureForConnectionType, setName, setStepIsResourceIntensive, setStepManager, setStepMustRunSingleThreaded, stepMustRunSingleThreaded, stop`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Job

          public Job()

  - ### Method Detail

    - #### setFlowFile

          @FilePropertyMetadata(fileChooserDialogType=0,
                                directoriesOnly=false)
           @OptionMetadata(displayName="Flow file",
                          description="The flow to execute",
                          displayOrder=0)
          public void setFlowFile(java.io.File flowFile)

    - #### getFlowFile

          public java.io.File getFlowFile()

    - #### stepInit

          public void stepInit()
                        throws WekaException

      Description copied from interface: `Step`
      Initialize the step.
      Throws:
        `WekaException` - if a problem occurs during initialization

    - #### start

          public void start()
                     throws WekaException

      Description copied from class: `BaseStep`
      Start processing. Subclasses should override this method if they can act as a start point in a flow.
      Specified by:
        `start` in interface `BaseStepExtender`
      Specified by:
        `start` in interface `Step`
      Overrides:
        `start` in class `BaseStep`
      Throws:
        `WekaException` - if a problem occurs

    - #### processIncoming

          public void processIncoming(Data data)
                               throws WekaException

      Description copied from class: `BaseStep`
      Process an incoming data payload (if the step accepts incoming connections)
      Specified by:
        `processIncoming` in interface `BaseStepExtender`
      Specified by:
        `processIncoming` in interface `Step`
      Overrides:
        `processIncoming` in class `BaseStep`
      Parameters:
        `data` - the payload to process
      Throws:
        `WekaException` - if a problem occurs

    - #### getIncomingConnectionTypes

          public java.util.List<java.lang.String> getIncomingConnectionTypes()

      Description copied from interface: `Step`
      Get a list of incoming connection types that this step can accept. Ideally (and if appropriate), this should take into account the state of the step and any existing incoming connections. E.g. a step might be able to accept one (and only one) incoming batch data connection.
      Returns:
        a list of incoming connections that this step can accept given its current state

    - #### getOutgoingConnectionTypes

          public java.util.List<java.lang.String> getOutgoingConnectionTypes()

      Description copied from interface: `Step`
      Get a list of outgoing connection types that this step can produce. Ideally (and if appropriate), this should take into account the state of the step and the incoming connections. E.g. depending on what incoming connection is present, a step might be able to produce a trainingSet output, a testSet output or neither, but not both.
      Returns:
        a list of outgoing connections that this step can produce

    - #### getCustomEditorForStep

          public java.lang.String getCustomEditorForStep()

      Get the custom editor for this step
      Specified by:
        `getCustomEditorForStep` in interface `Step`
      Overrides:
        `getCustomEditorForStep` in class `BaseStep`
      Returns:
        the fully qualified class name of the clustom editor for this step