Class ScriptMeta

java.lang.Object
org.pentaho.di.trans.step.BaseStepMeta
org.pentaho.di.trans.steps.script.ScriptMeta
All Implemented Interfaces:
Cloneable, StepAttributesInterface, StepMetaInterface

public class ScriptMeta extends BaseStepMeta implements StepMetaInterface
  • Constructor Details

    • ScriptMeta

      public ScriptMeta()
  • Method Details

    • getLength

      public int[] getLength()
      Returns:
      Returns the length.
    • setLength

      public void setLength(int[] length)
      Parameters:
      length - The length to set.
    • getFieldname

      public String[] getFieldname()
      Returns:
      Returns the name.
    • setFieldname

      public void setFieldname(String[] fieldname)
      Parameters:
      fieldname - The name to set.
    • getPrecision

      public int[] getPrecision()
      Returns:
      Returns the precision.
    • setPrecision

      public void setPrecision(int[] precision)
      Parameters:
      precision - The precision to set.
    • getRename

      public String[] getRename()
      Returns:
      Returns the rename.
    • setRename

      public void setRename(String[] rename)
      Parameters:
      rename - The rename to set.
    • getType

      public int[] getType()
      Returns:
      Returns the type.
    • setType

      public void setType(int[] type)
      Parameters:
      type - The type to set.
    • getNumberOfJSScripts

      public int getNumberOfJSScripts()
    • getJSScriptNames

      public String[] getJSScriptNames()
    • getJSScripts

      public ScriptValuesScript[] getJSScripts()
    • setJSScripts

      public void setJSScripts(ScriptValuesScript[] jsScripts)
    • 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
      Description copied from interface: StepMetaInterface
      Load the values for this step from an XML Node
      Specified by:
      loadXML in interface StepMetaInterface
      Overrides:
      loadXML in class BaseStepMeta
      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.)
    • allocate

      public void allocate(int nrfields)
    • clone

      public Object clone()
      Description copied from interface: StepMetaInterface
      Make an exact copy of this step, make sure to explicitly copy Collections etc.
      Specified by:
      clone in interface StepMetaInterface
      Overrides:
      clone in class BaseStepMeta
      Returns:
      an exact copy of this step
    • setDefault

      public void setDefault()
      Description copied from interface: StepMetaInterface
      Set default values
      Specified by:
      setDefault in interface StepMetaInterface
    • getFields

      public void getFields(org.pentaho.di.core.row.RowMetaInterface row, String originStepname, 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
      Description copied from class: BaseStepMeta
      Gets the fields.
      Specified by:
      getFields in interface StepMetaInterface
      Overrides:
      getFields in class BaseStepMeta
      Parameters:
      row - the input row meta that is modified in this method to reflect the output row metadata of the step
      originStepname - 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

      public String getXML()
      Description copied from class: BaseStepMeta
      Produces the XML string that describes this step's information.
      Specified by:
      getXML in interface StepMetaInterface
      Overrides:
      getXML in class BaseStepMeta
      Returns:
      String containing the XML describing this step.
    • 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
      Description copied from interface: StepMetaInterface
      Read the steps information from a Kettle repository
      Specified by:
      readRep in interface StepMetaInterface
      Overrides:
      readRep in class BaseStepMeta
      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)
    • 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
      Description copied from interface: StepMetaInterface
      Save the steps data into a Kettle repository
      Specified by:
      saveRep in interface StepMetaInterface
      Overrides:
      saveRep in class BaseStepMeta
      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)
    • 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)
      Description copied from interface: StepMetaInterface
      Checks the settings of this step and puts the findings in a remarks List.
      Specified by:
      check in interface StepMetaInterface
      Overrides:
      check in class BaseStepMeta
      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
    • getFunctionFromScript

      public String getFunctionFromScript(String strFunction, String strScript)
    • getValue

      public boolean getValue(Bindings scope, int i, org.pentaho.di.compatibility.Value res, StringBuilder message)
    • getStep

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

      public StepDataInterface getStepData()
      Description copied from interface: StepMetaInterface
      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.
      Specified by:
      getStepData in interface StepMetaInterface
      Returns:
      The appropriate StepDataInterface class.
    • parseXmlForAdditionalClasses

      public void parseXmlForAdditionalClasses() throws org.pentaho.di.core.exception.KettleException
      Throws:
      org.pentaho.di.core.exception.KettleException
    • getAddClasses

      public ScriptAddClasses[] getAddClasses()
    • supportsErrorHandling

      public boolean supportsErrorHandling()
      Specified by:
      supportsErrorHandling in interface StepMetaInterface
      Overrides:
      supportsErrorHandling in class BaseStepMeta
      Returns:
      true if this step supports error "reporting" on rows: the ability to send rows to a certain target step.
    • getReplace

      public boolean[] getReplace()
      Returns:
      the replace
    • setReplace

      public void setReplace(boolean[] replace)
      Parameters:
      replace - the replace to set
    • createNewScriptEngine

      public static ScriptEngine createNewScriptEngine(String stepName)
      Instanciates the right scripting language interpreter, falling back to Javascript for backward compat. Because Kettle GUI sucks for extensibility, we use the script name extension to determine the language rather than add a Combo box. Complain to Pentaho please.
      Parameters:
      stepName -
      Returns: