Interface StepMetaInterface

All Known Subinterfaces:
InputFileMetaInterface
All Known Implementing Classes:
AbstractStepMeta, BaseFileInputMeta, BaseFileMeta, BaseFileOutputMeta, BaseSerializingMeta, BaseStreamStepMeta, CalculatorMeta, ConstantMeta, CsvInputMeta, DatabaseJoinMeta, DatabaseLookupMeta, DataGridMeta, DBProcMeta, DeleteMeta, DenormaliserMeta, DetectEmptyStreamMeta, DetectLastRowMeta, DimensionLookupMeta, DummyTransMeta, DynamicSQLRowMeta, ExecProcessMeta, ExecSQLMeta, ExecSQLRowMeta, FieldsChangeSequenceMeta, FieldSplitterMeta, FileExistsMeta, FileLockedMeta, FilesFromResultMeta, FilesToResultMeta, FilterRowsMeta, FixedInputMeta, FlattenerMeta, FormulaMeta, FuzzyMatchMeta, GetFileNamesMeta, GetFilesRowsCountMeta, GetSlaveSequenceMeta, GetSubFoldersMeta, GetTableNamesMeta, GetVariableMeta, GroupByMeta, HTTPMeta, HTTPPOSTMeta, IfNullMeta, InjectorMeta, InsertUpdateMeta, JaninoMeta, JavaFilterMeta, JobExecutorMeta, JoinRowsMeta, LDIFInputMeta, LoadFileInputMeta, MappingInputMeta, MappingMeta, MappingOutputMeta, MemoryGroupByMeta, MergeJoinMeta, MergeRowsMeta, MissingTrans, MultiMergeJoinMeta, NormaliserMeta, NullIfMeta, NumberRangeMeta, OlapInputMeta, ParGzipCsvInputMeta, PGPDecryptStreamMeta, PGPEncryptStreamMeta, PrioritizeStreamsMeta, ProcessFilesMeta, PropertyInputMeta, PropertyOutputMeta, RandomValueMeta, RecordsFromStreamMeta, RegexEvalMeta, ReplaceStringMeta, ReservoirSamplingMeta, RowGeneratorMeta, RowsFromResultMeta, RowsToResultMeta, SampleRowsMeta, SasInputMeta, ScriptMeta, ScriptValuesMetaMod, SecretKeyGeneratorMeta, SelectValuesMeta, SetValueConstantMeta, SetValueFieldMeta, SetVariableMeta, SimpleMappingMeta, SingleThreaderMeta, SocketReaderMeta, SocketWriterMeta, SortedMergeMeta, SortRowsMeta, SplitFieldToRowsMeta, SQLFileOutputMeta, SSHMeta, StepMetastructureMeta, StepsMetricsMeta, StepWithMappingMeta, StreamLookupMeta, StringCutMeta, StringOperationsMeta, SwitchCaseMeta, SymmetricCryptoTransMeta, SynchronizeAfterMergeMeta, SyslogMessageMeta, SystemDataMeta, TableCompareMeta, TableExistsMeta, TableInputMeta, TableOutputMeta, TextFileInputMeta, TextFileInputMeta, TextFileOutputLegacyMeta, TextFileOutputMeta, TransExecutorMeta, UniqueRowsByHashSetMeta, UniqueRowsMeta, UnivariateStatsMeta, UpdateMeta, UserDefinedJavaClassMeta, ValidatorMeta, ValueMapperMeta, WebServiceAvailableMeta, WebServiceMeta, WriteToLogMeta, XBaseInputMeta, ZipFileMeta

public interface StepMetaInterface
This interface allows custom steps to talk to Kettle. The StepMetaInterface is the main Java interface that a plugin implements. The responsibilities of the implementing class are listed below:

  • Keep track of the step settings
    The implementing class typically keeps track of step settings using private fields with corresponding getters and setters. The dialog class implementing StepDialogInterface is using the getters and setters to copy the user supplied configuration in and out of the dialog.

    The following interface methods also fall into the area of maintaining settings:

    void setDefault()

    This method is called every time a new step is created and should allocate or set the step configuration to sensible defaults. The values set here will be used by Spoon when a new step is created. This is often a good place to ensure that the step’s settings are initialized to non-null values. Null values can be cumbersome to deal with in serialization and dialog population, so most PDI step implementations stick to non-null values for all step settings.

    public Object clone()

    This method is called when a step is duplicated in Spoon. It needs to return a deep copy of this step meta object. It is essential that the implementing class creates proper deep copies if the step configuration is stored in modifiable objects, such as lists or custom helper objects. See org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta.clone() for an example on creating a deep copy.

  • Serialize step settings
    The plugin needs to be able to serialize its settings to both XML and a PDI repository. The interface methods are as follows.

    public String getXML()

    This method is called by PDI whenever a step needs to serialize its settings to XML. It is called when saving a transformation in Spoon. The method returns an XML string, containing the serialized step settings. The string contains a series of XML tags, typically one tag per setting. The helper class org.pentaho.di.core.xml.XMLHandler is typically used to construct the XML string.

    public void loadXML(...)

    This method is called by PDI whenever a step needs to read its settings from XML. The XML node containing the step's settings is passed in as an argument. Again, the helper class org.pentaho.di.core.xml.XMLHandler is typically used to conveniently read the step settings from the XML node.

    public void saveRep(...)

    This method is called by PDI whenever a step needs to save its settings to a PDI repository. The repository object passed in as the first argument provides a convenient set of methods for serializing step settings. The transformation id and step id passed in should be used by the step as identifiers when calling the repository serialization methods.

    public void readRep(...)

    This method is called by PDI whenever a step needs to read its configuration from a PDI repository. The step id given in the arguments should be used as the identifier when using the repositories serialization methods.

  • Provide instances of other plugin classes
    The StepMetaInterface plugin class is the main class tying in with the rest of PDI architecture. It is responsible for supplying instances of the other plugin classes implementing StepDialogInterface, StepInterface and StepDataInterface. The following methods cover these responsibilities. Each of the method’s implementation is typically constructing a new instance of the corresponding class forwarding the passed in arguments to the constructor. The methods are as follows.

    public StepDialogInterface getDialog(...)
    public StepInterface getStep(...)
    public StepDataInterface getStepData()

    Each of the above methods returns a new instance of the plugin class implementing StepDialogInterface, StepInterface and StepDataInterface.

  • Report the step’s changes to the row stream PDI needs to know how a step affects the row structure. A step may be adding or removing fields, as well as modifying the metadata of a field. The method implementing this aspect of a step plugin is getFields().

    public void getFields(...)

    Given a description of the input rows, the plugin needs to modify it to match the structure for its output fields. The implementation modifies the passed in RowMetaInterface object to reflect any changes to the row stream. Typically a step adds fields to the row structure, which is done by creating ValueMeta objects (PDI’s default implementation of ValueMetaInterface), and appending them to the RowMetaInterface object. The section Working with Fields goes into deeper detail on ValueMetaInterface.

  • Validate step settings
    Spoon supports a “validate transformation” feature, which triggers a self-check of all steps. PDI invokes the check() method of each step on the canvas allowing each step to validate its settings.

    public void check()

    Each step has the opportunity to validate its settings and verify that the configuration given by the user is reasonable. In addition to that a step typically checks if it is connected to preceding or following steps, if the nature of the step requires that kind of connection. An input step may expect to not have a preceding step for example. The check method passes in a list of check remarks that the method should append its validation results to. Spoon then displays the list of remarks collected from the steps, allowing the user to take corrective action in case of validation warnings or errors.

  • Given a description of the input rows, the plugin needs to modify it to match the structure for its output fields. The implementation modifies the passed in RowMetaInterface object to reflect any changes to the row stream. Typically a step adds fields to the row structure, which is done by creating ValueMeta objects (PDI’s default implementation of ValueMetaInterface), and appending them to the RowMetaInterface object. The section Working with Fields goes into deeper detail on ValueMetaInterface.
Since:
4-aug-2004
Author:
Matt
  • Method Details

    • setDefault

      void setDefault()
      Set default values
    • getFields

      @Deprecated void getFields(org.pentaho.di.core.row.RowMetaInterface inputRowMeta, String name, org.pentaho.di.core.row.RowMetaInterface[] info, StepMeta nextStep, org.pentaho.di.core.variables.VariableSpace space) throws org.pentaho.di.core.exception.KettleStepException
      Gets the fields.
      Parameters:
      inputRowMeta - the input row meta that is modified in this method to reflect the output row metadata of the step
      name - Name of the step to use as input for the origin field in the values
      info - Fields used as extra lookup information
      nextStep - the next step that is targeted
      space - the space The variable space to use to replace variables
      Throws:
      org.pentaho.di.core.exception.KettleStepException - the kettle step exception
    • getFields

      void getFields(org.pentaho.di.core.row.RowMetaInterface inputRowMeta, String name, org.pentaho.di.core.row.RowMetaInterface[] info, StepMeta nextStep, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Gets the fields.
      Parameters:
      inputRowMeta - the input row meta that is modified in this method to reflect the output row metadata of the step
      name - Name of the step to use as input for the origin field in the values
      info - Fields used as extra lookup information
      nextStep - the next step that is targeted
      space - the space The variable space to use to replace variables
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Throws:
      org.pentaho.di.core.exception.KettleStepException - the kettle step exception
    • getXML

      String getXML() throws org.pentaho.di.core.exception.KettleException
      Get the XML that represents the values in this step
      Returns:
      the XML that represents the metadata in this step
      Throws:
      org.pentaho.di.core.exception.KettleException - in case there is a conversion or XML encoding error
    • loadXML

      @Deprecated void loadXML(Node stepnode, List<org.pentaho.di.core.database.DatabaseMeta> databases, Map<String,org.pentaho.di.core.Counter> counters) throws org.pentaho.di.core.exception.KettleXMLException
      Load the values for this step from an XML Node
      Parameters:
      stepnode - the Node to get the info from
      databases - The available list of databases to reference to
      counters - Counters to reference.
      Throws:
      org.pentaho.di.core.exception.KettleXMLException - When an unexpected XML error occurred. (malformed etc.)
    • loadXML

      void loadXML(Node stepnode, List<org.pentaho.di.core.database.DatabaseMeta> databases, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleXMLException
      Load the values for this step from an XML Node
      Parameters:
      stepnode - the Node to get the info from
      databases - The available list of databases to reference to
      metaStore - the metastore to optionally load external reference metadata from
      Throws:
      org.pentaho.di.core.exception.KettleXMLException - When an unexpected XML error occurred. (malformed etc.)
    • saveRep

      @Deprecated void saveRep(Repository rep, org.pentaho.di.repository.ObjectId id_transformation, org.pentaho.di.repository.ObjectId id_step) throws org.pentaho.di.core.exception.KettleException
      Save the steps data into a Kettle repository
      Parameters:
      rep - The Kettle repository to save to
      id_transformation - The transformation ID
      id_step - The step ID
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • saveRep

      void saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_transformation, org.pentaho.di.repository.ObjectId id_step) throws org.pentaho.di.core.exception.KettleException
      Save the steps data into a Kettle repository
      Parameters:
      rep - The Kettle repository to save to
      metaStore - the metaStore to optionally write to
      id_transformation - The transformation ID
      id_step - The step ID
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • readRep

      @Deprecated void readRep(Repository rep, org.pentaho.di.repository.ObjectId id_step, List<org.pentaho.di.core.database.DatabaseMeta> databases, Map<String,org.pentaho.di.core.Counter> counters) throws org.pentaho.di.core.exception.KettleException
      Read the steps information from a Kettle repository
      Parameters:
      rep - The repository to read from
      id_step - The step ID
      databases - The databases to reference
      counters - The counters to reference
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • readRep

      void readRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_step, List<org.pentaho.di.core.database.DatabaseMeta> databases) throws org.pentaho.di.core.exception.KettleException
      Read the steps information from a Kettle repository
      Parameters:
      rep - The repository to read from
      metaStore - The MetaStore to read external information from
      id_step - The step ID
      databases - The databases to reference
      Throws:
      org.pentaho.di.core.exception.KettleException - When an unexpected error occurred (database, network, etc)
    • check

      @Deprecated void check(List<org.pentaho.di.core.CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info)
      Checks the settings of this step and puts the findings in a remarks List.
      Parameters:
      remarks - The list to put the remarks in @see org.pentaho.di.core.CheckResult
      stepMeta - The stepMeta to help checking
      prev - The fields coming from the previous step
      input - The input step names
      output - The output step names
      info - The fields that are used as information by the step
    • check

      void check(List<org.pentaho.di.core.CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
      Checks the settings of this step and puts the findings in a remarks List.
      Parameters:
      remarks - The list to put the remarks in @see org.pentaho.di.core.CheckResult
      stepMeta - The stepMeta to help checking
      prev - The fields coming from the previous step
      input - The input step names
      output - The output step names
      info - The fields that are used as information by the step
      space - the variable space to resolve variable expressions with
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
    • clone

      Object clone()
      Make an exact copy of this step, make sure to explicitly copy Collections etc.
      Returns:
      an exact copy of this step
    • getTableFields

      org.pentaho.di.core.row.RowMetaInterface getTableFields()
      Returns:
      The fields used by this step, this is being used for the Impact analyses.
    • excludeFromRowLayoutVerification

      boolean excludeFromRowLayoutVerification()
      This method is added to exclude certain steps from layout checking.
      Since:
      2.5.0
    • excludeFromCopyDistributeVerification

      boolean excludeFromCopyDistributeVerification()
      This method is added to exclude certain steps from copy/distribute checking.
      Since:
      4.0.0
    • getDialogClassName

      @Deprecated String getDialogClassName()
      Deprecated.
      As of release 8.1, use annotated-based dialog instead
      Get the name of the class that implements the dialog for this job entry JobEntryBase provides a default
    • getStep

      StepInterface getStep(StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans)
      Get the executing step, needed by Trans to launch a step.
      Parameters:
      stepMeta - The step info
      stepDataInterface - the step data interface linked to this step. Here the step can store temporary data, database connections, etc.
      copyNr - The copy nr to get
      transMeta - The transformation info
      trans - The launching transformation
    • getStepData

      StepDataInterface getStepData()
      Get a new instance of the appropriate data class. This data class implements the StepDataInterface. It basically contains the persisting data that needs to live on, even if a worker thread is terminated.
      Returns:
      The appropriate StepDataInterface class.
    • analyseImpact

      @Deprecated void analyseImpact(List<DatabaseImpact> impact, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info) throws org.pentaho.di.core.exception.KettleStepException
      Each step must be able to report on the impact it has on a database, table field, etc.
      Parameters:
      impact - The list of impacts @see org.pentaho.di.transMeta.DatabaseImpact
      transMeta - The transformation information
      stepMeta - The step information
      prev - The fields entering this step
      input - The previous step names
      output - The output step names
      info - The fields used as information by this step
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • analyseImpact

      void analyseImpact(List<DatabaseImpact> impact, TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, String[] input, String[] output, org.pentaho.di.core.row.RowMetaInterface info, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Each step must be able to report on the impact it has on a database, table field, etc.
      Parameters:
      impact - The list of impacts @see org.pentaho.di.transMeta.DatabaseImpact
      transMeta - The transformation information
      stepMeta - The step information
      prev - The fields entering this step
      input - The previous step names
      output - The output step names
      info - The fields used as information by this step
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • getSQLStatements

      @Deprecated org.pentaho.di.core.SQLStatement getSQLStatements(TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev) throws org.pentaho.di.core.exception.KettleStepException
      Standard method to return an SQLStatement object with SQL statements that the step needs in order to work correctly. This can mean "create table", "create index" statements but also "alter table ... add/drop/modify" statements.
      Parameters:
      transMeta - TransInfo object containing the complete transformation
      stepMeta - StepMeta object containing the complete step
      prev - Row containing meta-data for the input fields (no data)
      Returns:
      The SQL Statements for this step. If nothing has to be done, the SQLStatement.getSQL() == null. @see SQLStatement
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • getSQLStatements

      org.pentaho.di.core.SQLStatement getSQLStatements(TransMeta transMeta, StepMeta stepMeta, org.pentaho.di.core.row.RowMetaInterface prev, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleStepException
      Standard method to return an SQLStatement object with SQL statements that the step needs in order to work correctly. This can mean "create table", "create index" statements but also "alter table ... add/drop/modify" statements.
      Parameters:
      transMeta - TransInfo object containing the complete transformation
      stepMeta - StepMeta object containing the complete step
      prev - Row containing meta-data for the input fields (no data)
      repository - the repository to use to load Kettle metadata objects impacting the output fields
      metaStore - the MetaStore to use to load additional external data or metadata impacting the output fields
      Returns:
      The SQL Statements for this step. If nothing has to be done, the SQLStatement.getSQL() == null. @see SQLStatement
      Throws:
      org.pentaho.di.core.exception.KettleStepException
    • cancelQueries

      void cancelQueries() throws org.pentaho.di.core.exception.KettleDatabaseException
      Call this to cancel trailing database queries (too long running, etc)
      Throws:
      org.pentaho.di.core.exception.KettleDatabaseException
    • getUsedArguments

      Map<String,String> getUsedArguments()
      Default a step doesn't use any arguments. Implement this to notify the GUI that a window has to be displayed BEFORE launching a transformation. You can also use this to specify certain Environment variable values.
      Returns:
      A Map of argument values. (name and optionally a default value) Put 10 values in the map for the possible 10 arguments.
    • getRequiredFields

      org.pentaho.di.core.row.RowMetaInterface getRequiredFields(org.pentaho.di.core.variables.VariableSpace space) throws org.pentaho.di.core.exception.KettleException
      The natural way of data flow in a transformation is source-to-target. However, this makes mapping to target tables difficult to do. To help out here, we supply information to the transformation meta-data model about which fields are required for a step. This allows us to automate certain tasks like the mapping to pre-defined tables. The Table Output step in this case will output the fields in the target table using this method.
      Parameters:
      space - the variable space to reference
      Returns:
      the required fields for this steps metadata.
      Throws:
      org.pentaho.di.core.exception.KettleException - in case the required fields can't be determined.
    • getUsedDatabaseConnections

      org.pentaho.di.core.database.DatabaseMeta[] getUsedDatabaseConnections()
      This method returns all the database connections that are used by the step.
      Returns:
      an array of database connections meta-data. Return an empty array if no connections are used.
    • getUsedLibraries

      String[] getUsedLibraries()
      Returns:
      the libraries that this step or plugin uses.
    • supportsErrorHandling

      boolean supportsErrorHandling()
      Returns:
      true if this step supports error "reporting" on rows: the ability to send rows to a certain target step.
    • getResourceDependencies

      List<ResourceReference> getResourceDependencies(TransMeta transMeta, StepMeta stepMeta)
      Get a list of all the resource dependencies that the step is depending on.
      Parameters:
      transMeta -
      stepMeta -
      Returns:
      a list of all the resource dependencies that the step is depending on
    • exportResources

      @Deprecated String exportResources(org.pentaho.di.core.variables.VariableSpace space, Map<String,ResourceDefinition> definitions, ResourceNamingInterface resourceNamingInterface, Repository repository) throws org.pentaho.di.core.exception.KettleException
      Parameters:
      space - the variable space to use
      definitions -
      resourceNamingInterface -
      repository - The repository to optionally load other resources from (to be converted to XML)
      Returns:
      the filename of the exported resource
      Throws:
      org.pentaho.di.core.exception.KettleException
    • exportResources

      String exportResources(org.pentaho.di.core.variables.VariableSpace space, Map<String,ResourceDefinition> definitions, ResourceNamingInterface resourceNamingInterface, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleException
      Parameters:
      space - the variable space to use
      definitions -
      resourceNamingInterface -
      repository - The repository to optionally load other resources from (to be converted to XML)
      metaStore - the metaStore in which non-kettle metadata could reside.
      Returns:
      the filename of the exported resource
      Throws:
      org.pentaho.di.core.exception.KettleException
    • getParentStepMeta

      StepMeta getParentStepMeta()
      Returns:
      The StepMeta object to which this metadata class belongs. With this, we can see to which transformation metadata (etc) this metadata pertains to. (hierarchy)
    • setParentStepMeta

      void setParentStepMeta(StepMeta parentStepMeta)
      Provide original lineage for this metadata object
      Parameters:
      parentStepMeta - the parent step metadata container object
    • getStepIOMeta

      StepIOMetaInterface getStepIOMeta()
      Returns the Input/Output metadata for this step.
    • getOptionalStreams

      List<StreamInterface> getOptionalStreams()
      Returns:
      The list of optional input streams. It allows the user to select f rom a list of possible actions like "New target step"
    • handleStreamSelection

      void handleStreamSelection(StreamInterface stream)
      When an optional stream is selected, this method is called to handled the ETL metadata implications of that.
      Parameters:
      stream - The optional stream to handle.
    • resetStepIoMeta

      void resetStepIoMeta()
      For steps that handle dynamic input (info) or output (target) streams, it is useful to be able to force the recreate the StepIoMeta definition. By default this definition is cached.
    • searchInfoAndTargetSteps

      void searchInfoAndTargetSteps(List<StepMeta> steps)
      Change step names into step objects to allow them to be name-changed etc.
      Parameters:
      steps - the steps to reference
    • getStepMetaInjectionInterface

      @Deprecated StepMetaInjectionInterface getStepMetaInjectionInterface()
      Deprecated.
      Use annotation-based injection instead
      Returns:
      Optional interface that allows an external program to inject step metadata in a standardized fasion. This method will return null if the interface is not available for this step.
    • extractStepMetadataEntries

      List<StepInjectionMetaEntry> extractStepMetadataEntries() throws org.pentaho.di.core.exception.KettleException
      Returns:
      The step metadata itself, not the metadata description. For lists it will have 0 entries in case there are no entries.
      Throws:
      org.pentaho.di.core.exception.KettleException
    • getSupportedTransformationTypes

      TransMeta.TransformationType[] getSupportedTransformationTypes()
      Returns:
      The supported transformation types that this step supports.
    • hasRepositoryReferences

      boolean hasRepositoryReferences()
      Returns:
      True if the job entry defines one or more references to a repository object.
    • lookupRepositoryReferences

      void lookupRepositoryReferences(Repository repository) throws org.pentaho.di.core.exception.KettleException
      Look up the references after import
      Parameters:
      repository - the repository to reference.
      Throws:
      org.pentaho.di.core.exception.KettleException
    • setChanged

      void setChanged()
    • hasChanged

      boolean hasChanged()
    • getReferencedObjectDescriptions

      String[] getReferencedObjectDescriptions()
      Returns:
      The objects referenced in the step, like a mapping, a transformation, a job, ...
    • isReferencedObjectEnabled

      boolean[] isReferencedObjectEnabled()
      Returns:
      true for each referenced object that is enabled or has a valid reference definition.
    • getActiveReferencedObjectDescription

      String getActiveReferencedObjectDescription()
      Returns:
      A description of the active referenced object in a transformation. Null if nothing special needs to be done or if the active metadata isn't different from design.
    • loadReferencedObject

      Object loadReferencedObject(int index, Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.core.variables.VariableSpace space) throws org.pentaho.di.core.exception.KettleException
      Load the referenced object
      Parameters:
      index - the referenced object index to load (in case there are multiple references)
      rep - the repository
      metaStore - the MetaStore to use
      space - the variable space to use
      Returns:
      the referenced object once loaded
      Throws:
      org.pentaho.di.core.exception.KettleException
    • cleanAfterHopFromRemove

      default boolean cleanAfterHopFromRemove()
      Action remove hop exiting this step
      Returns:
      step was changed
    • cleanAfterHopFromRemove

      default boolean cleanAfterHopFromRemove(StepMeta toStep)

      Action remove hop exiting this step

      Parameters:
      toStep - the to-step of the hop being removed
      Returns:
      step was changed
    • cleanAfterHopToRemove

      default boolean cleanAfterHopToRemove(StepMeta fromStep)

      Action remove hop entering this step.

      Sometimes, in addition to the hops themselves, a Step has internal configuration referencing some of the steps that connect to it (to identify the main step or the one to be used for lookup, for instance). If the hop being deleted comes from one of those steps, the references to them should be removed.

      Parameters:
      fromStep - the from-step of the hop being removed
      Returns:
      step was changed
    • passDataToServletOutput

      default boolean passDataToServletOutput()
      True if the step passes it's result data straight to the servlet output. See exposing Kettle data over a web service http://wiki.pentaho.com/display/EAI/PDI+data+over+web+services
      Returns:
      True if the step passes it's result data straight to the servlet output, false otherwise
    • fetchTransMeta

      default TransMeta fetchTransMeta(StepMetaInterface stepMeta, Repository rep, org.pentaho.metastore.api.IMetaStore metastore, org.pentaho.di.core.variables.VariableSpace space) throws org.pentaho.di.core.exception.KettleException
      Allows for someone to fetch the related TransMeta object. Returns null if not found (or not implemented)
      Parameters:
      stepMeta - StepMetaInterface object
      rep - Repository object
      metastore - metastore object
      space - VariableSpace
      Returns:
      the associated TransMeta object, or null if not found (or not implemented)
      Throws:
      org.pentaho.di.core.exception.KettleException - should something go wrong