Class BaseStepMeta

    • Field Detail

      • loggingObject

        public static final org.pentaho.di.core.logging.LoggingObjectInterface loggingObject
      • databases

        protected org.pentaho.di.core.database.Database[] databases
        database connection object to use for searching fields & checking steps
      • repository

        protected Repository repository
        The repository that is being used for this step
      • parentStepMeta

        protected StepMeta parentStepMeta
      • log

        protected org.pentaho.di.core.logging.LogChannelInterface log
      • attributes

        protected ArrayList<org.pentaho.di.core.KettleAttributeInterface> attributes
    • Constructor Detail

      • BaseStepMeta

        public BaseStepMeta()
        Instantiates a new base step meta.
    • Method Detail

      • setChanged

        public void setChanged​(boolean ch)
        Sets the changed.
        Parameters:
        ch - the new changed
      • setChanged

        public void setChanged()
        Sets the changed.
      • hasChanged

        public boolean hasChanged()
        Checks for changed.
        Returns:
        true, if successful
      • getTableFields

        public org.pentaho.di.core.row.RowMetaInterface getTableFields()
        Gets the table fields.
        Returns:
        the table fields
      • getXML

        public String getXML()
                      throws org.pentaho.di.core.exception.KettleException
        Produces the XML string that describes this step's information.
        Returns:
        String containing the XML describing this step.
        Throws:
        org.pentaho.di.core.exception.KettleException - in case there is an XML conversion or encoding error
      • getFields

        @Deprecated
        public 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

        public 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
      • analyseImpact

        @Deprecated
        public 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

        public 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
        public 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 one or more SQLStatement objects 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 or null if an error occurred. If nothing has to be done, the SQLStatement.getSQL() == null.
        Throws:
        org.pentaho.di.core.exception.KettleStepException
      • getSQLStatements

        public 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

        public 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

        public 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.
        Returns:
        A row of argument values. (name and optionally a default value)
      • getRequiredFields

        @Deprecated
        public org.pentaho.di.core.row.RowMetaInterface getRequiredFields()
                                                                   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.

        This default implementation returns an empty row meaning that no fields are required for this step to operate.

        Returns:
        the required fields for this steps meta data.
        Throws:
        org.pentaho.di.core.exception.KettleException - in case the required fields can't be determined
      • getRequiredFields

        public 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.

        This default implementation returns an empty row meaning that no fields are required for this step to operate.

        Parameters:
        space - the variable space to use to do variable substitution.
        Returns:
        the required fields for this steps meta data.
        Throws:
        org.pentaho.di.core.exception.KettleException - in case the required fields can't be determined
      • getUsedDatabaseConnections

        public 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

        public String[] getUsedLibraries()
        Returns:
        the libraries that this step or plug-in uses.
      • supportsErrorHandling

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

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

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

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

        public 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
        Throws:
        org.pentaho.di.core.exception.KettleException
      • getDialogClassName

        @Deprecated
        public String getDialogClassName()
        Deprecated.
        As of release 8.1, use annotated-based dialog instead {@see org.pentaho.di.core.annotations.PluginDialog}
        This returns the expected name for the dialog that edits a job entry. The expected name is in the org.pentaho.di.ui tree and has a class name that is the name of the job entry with 'Dialog' added to the end.

        e.g. if the job entry is org.pentaho.di.job.entries.zipfile.JobEntryZipFile the dialog would be org.pentaho.di.ui.job.entries.zipfile.JobEntryZipFileDialog

        If the dialog class for a job entry does not match this pattern it should override this method and return the appropriate class name

        Returns:
        full class name of the dialog
      • getParentStepMeta

        public StepMeta getParentStepMeta()
        Gets the parent step meta.
        Returns:
        the parent step meta
      • setParentStepMeta

        public void setParentStepMeta​(StepMeta parentStepMeta)
        Sets the parent step meta.
        Parameters:
        parentStepMeta - the new parent step meta
      • getLog

        public org.pentaho.di.core.logging.LogChannelInterface getLog()
        Gets the log.
        Returns:
        the log
      • isBasic

        public boolean isBasic()
        Checks if is basic.
        Returns:
        true, if is basic
      • isDetailed

        public boolean isDetailed()
        Checks if is detailed.
        Returns:
        true, if is detailed
      • isDebug

        public boolean isDebug()
        Checks if is debug.
        Returns:
        true, if is debug
      • isRowLevel

        public boolean isRowLevel()
        Checks if is row level.
        Returns:
        true, if is row level
      • logMinimal

        public void logMinimal​(String message)
        Log minimal.
        Parameters:
        message - the message
      • logMinimal

        public void logMinimal​(String message,
                               Object... arguments)
        Log minimal.
        Parameters:
        message - the message
        arguments - the arguments
      • logBasic

        public void logBasic​(String message)
        Log basic.
        Parameters:
        message - the message
      • logBasic

        public void logBasic​(String message,
                             Object... arguments)
        Log basic.
        Parameters:
        message - the message
        arguments - the arguments
      • logDetailed

        public void logDetailed​(String message)
        Log detailed.
        Parameters:
        message - the message
      • logDetailed

        public void logDetailed​(String message,
                                Object... arguments)
        Log detailed.
        Parameters:
        message - the message
        arguments - the arguments
      • logDebug

        public void logDebug​(String message)
        Log debug.
        Parameters:
        message - the message
      • logDebug

        public void logDebug​(String message,
                             Object... arguments)
        Log debug.
        Parameters:
        message - the message
        arguments - the arguments
      • logRowlevel

        public void logRowlevel​(String message)
        Log rowlevel.
        Parameters:
        message - the message
      • logRowlevel

        public void logRowlevel​(String message,
                                Object... arguments)
        Log rowlevel.
        Parameters:
        message - the message
        arguments - the arguments
      • logError

        public void logError​(String message)
        Log error.
        Parameters:
        message - the message
      • logError

        public void logError​(String message,
                             Throwable e)
        Log error.
        Parameters:
        message - the message
        e - the e
      • logError

        public void logError​(String message,
                             Object... arguments)
        Log error.
        Parameters:
        message - the message
        arguments - the arguments
      • getLogChannelId

        public String getLogChannelId()
        Gets the log channel id.
        Returns:
        the log channel id
      • getName

        public String getName()
        Gets the name.
        Returns:
        the name
      • getObjectCopy

        public String getObjectCopy()
        Gets the object copy.
        Returns:
        the object copy
      • getObjectId

        public org.pentaho.di.repository.ObjectId getObjectId()
        Gets the object id.
        Returns:
        the object id
      • getObjectRevision

        public org.pentaho.di.repository.ObjectRevision getObjectRevision()
        Gets the object revision.
        Returns:
        the object revision
      • getObjectType

        public org.pentaho.di.core.logging.LoggingObjectType getObjectType()
        Gets the object type.
        Returns:
        the object type
      • getParent

        public org.pentaho.di.core.logging.LoggingObjectInterface getParent()
        Gets the parent.
        Returns:
        the parent
      • getRepositoryDirectory

        public org.pentaho.di.repository.RepositoryDirectory getRepositoryDirectory()
        Gets the repository directory.
        Returns:
        the repository directory
      • getStepIOMeta

        public StepIOMetaInterface getStepIOMeta​(boolean createIfAbsent)
        Returns the Input/Output metadata for this step. By default, each step produces and accepts optional input.
      • setStepIOMeta

        public void setStepIOMeta​(StepIOMetaInterface value)
        Sets the Input/Output metadata for this step. By default, each step produces and accepts optional input.
        Parameters:
        value - the StepIOMetaInterface to set for this step.
      • getOptionalStreams

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

        public 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

        public void resetStepIoMeta()
        Reset step io meta.
      • searchInfoAndTargetSteps

        public 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
        public 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

        public 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
      • createEntry

        protected StepInjectionMetaEntry createEntry​(org.pentaho.di.core.KettleAttributeInterface attr,
                                                     Class<?> PKG)
        Creates the entry.
        Parameters:
        attr - the attr
        PKG - the pkg
        Returns:
        the step injection meta entry
      • getStepInjectionMetadataEntries

        public List<StepInjectionMetaEntry> getStepInjectionMetadataEntries​(Class<?> PKG)
        Describe the metadata attributes that can be injected into this step metadata object.
      • loadStepAttributes

        protected void loadStepAttributes()
                                   throws org.pentaho.di.core.exception.KettleException
        Load step attributes.
        Throws:
        org.pentaho.di.core.exception.KettleException - the kettle exception
      • findParent

        public org.pentaho.di.core.KettleAttributeInterface findParent​(List<org.pentaho.di.core.KettleAttributeInterface> attributes,
                                                                       String parentId)
        Specified by:
        findParent in interface StepAttributesInterface
      • getSupportedTransformationTypes

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

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

        public 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
      • getReferencedObjectDescriptions

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

        public boolean[] isReferencedObjectEnabled()
      • getActiveReferencedObjectDescription

        public 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

        @Deprecated
        public Object loadReferencedObject​(int index,
                                           Repository rep,
                                           org.pentaho.di.core.variables.VariableSpace space)
                                    throws org.pentaho.di.core.exception.KettleException
        Load the referenced object
        Parameters:
        index - the object index to load
        rep - the repository
        space - the variable space to use
        Returns:
        the referenced object once loaded
        Throws:
        org.pentaho.di.core.exception.KettleException
      • loadReferencedObject

        public 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
        Throws:
        org.pentaho.di.core.exception.KettleException
      • readRep

        @Deprecated
        public void readRep​(Repository rep,
                            org.pentaho.di.repository.ObjectId idStep,
                            List<org.pentaho.di.core.database.DatabaseMeta> databases)
                     throws org.pentaho.di.core.exception.KettleException
        Deprecated.
        Throws:
        org.pentaho.di.core.exception.KettleException
      • readRep

        public 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
        Throws:
        org.pentaho.di.core.exception.KettleException
      • readRep

        @Deprecated
        public 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
        Deprecated.
        Throws:
        org.pentaho.di.core.exception.KettleException
      • loadXML

        @Deprecated
        public void loadXML​(Node stepnode,
                            List<org.pentaho.di.core.database.DatabaseMeta> databases)
                     throws org.pentaho.di.core.exception.KettleXMLException
        Parameters:
        stepnode -
        databases -
        Throws:
        org.pentaho.di.core.exception.KettleXMLException
      • loadXML

        @Deprecated
        public 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
        Parameters:
        stepnode -
        databases -
        Throws:
        org.pentaho.di.core.exception.KettleXMLException
      • loadXML

        public 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
        Throws:
        org.pentaho.di.core.exception.KettleXMLException
      • saveRep

        @Deprecated
        public 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
        Parameters:
        stepnode -
        databases -
        Throws:
        org.pentaho.di.core.exception.KettleXMLException
        org.pentaho.di.core.exception.KettleException
      • saveRep

        public 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
        Throws:
        org.pentaho.di.core.exception.KettleException
      • check

        public 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)