Interface StepMetaInterface

    • Method Detail

      • 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

        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 {@see org.pentaho.di.core.annotations.PluginDialog}
        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

        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