Class TextFileInputMeta

All Implemented Interfaces:
Cloneable, StepAttributesInterface, StepMetaInterface, CsvInputAwareMeta

  • Field Details

    • FILE_FORMAT_DOS

      public static final int FILE_FORMAT_DOS
      See Also:
    • FILE_FORMAT_UNIX

      public static final int FILE_FORMAT_UNIX
      See Also:
    • FILE_FORMAT_MIXED

      public static final int FILE_FORMAT_MIXED
      See Also:
    • FILE_TYPE_CSV

      public static final int FILE_TYPE_CSV
      See Also:
    • FILE_TYPE_FIXED

      public static final int FILE_TYPE_FIXED
      See Also:
    • content

      public TextFileInputMeta.Content content
    • errorCountField

      public String errorCountField
      The name of the field that will contain the number of errors in the row
    • errorFieldsField

      public String errorFieldsField
      The name of the field that will contain the names of the fields that generated errors, separated by ,
    • errorTextField

      public String errorTextField
      The name of the field that will contain the error texts, separated by CR
    • errorLineSkipped

      public boolean errorLineSkipped
      If error line are skipped, you can replay without introducing doubles.
  • Constructor Details

    • TextFileInputMeta

      public TextFileInputMeta()
  • Method Details

    • getFileName

      public String[] getFileName()
      Returns:
      Returns the fileName.
    • setFileName

      public void setFileName(String[] fileName)
      Parameters:
      fileName - The fileName to set.
    • getFilter

      public TextFileFilter[] getFilter()
      Returns:
      The array of filters for the metadata of this text file input step.
    • setFilter

      public void setFilter(TextFileFilter[] filter)
      Parameters:
      filter - The array of filters to use
    • 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.)
    • 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 BaseFileInputMeta<BaseFileInputAdditionalField,BaseFileInputFiles,BaseFileField>
      Returns:
      an exact copy of this step
    • allocate

      public void allocate(int nrfiles, int nrfields, int nrfilters)
    • allocateFiles

      public void allocateFiles(int nrFiles)
    • 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 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
      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
      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
    • 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
      Deprecated.
      Description copied from class: BaseStepMeta
      Gets the fields.
      Specified by:
      getFields in interface StepMetaInterface
      Overrides:
      getFields in class BaseStepMeta
      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
    • 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.
    • getLookupStepname

      public String getLookupStepname()
    • searchInfoAndTargetSteps

      public void searchInfoAndTargetSteps(List<StepMeta> steps)
      Description copied from class: BaseStepMeta
      Change step names into step objects to allow them to be name-changed etc.
      Specified by:
      searchInfoAndTargetSteps in interface StepMetaInterface
      Overrides:
      searchInfoAndTargetSteps in class BaseStepMeta
      Parameters:
      steps - optionally search the info step in a list of steps
    • getInfoSteps

      public String[] getInfoSteps()
    • 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
    • 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.
    • getErrorCountField

      public String getErrorCountField()
    • setErrorCountField

      public void setErrorCountField(String errorCountField)
    • getErrorFieldsField

      public String getErrorFieldsField()
    • setErrorFieldsField

      public void setErrorFieldsField(String errorFieldsField)
    • getErrorTextField

      public String getErrorTextField()
    • setErrorTextField

      public void setErrorTextField(String errorTextField)
    • getRequiredFilesDesc

      public String getRequiredFilesDesc(String tt)
    • isErrorLineSkipped

      public boolean isErrorLineSkipped()
    • setErrorLineSkipped

      public void setErrorLineSkipped(boolean errorLineSkipped)
    • setAcceptingStep

      public void setAcceptingStep(StepMeta acceptingStep)
      Parameters:
      acceptingStep - The acceptingStep to set.
    • getFileFormatTypeNr

      public int getFileFormatTypeNr()
      Specified by:
      getFileFormatTypeNr in interface CsvInputAwareMeta
    • getFileTypeNr

      public int getFileTypeNr()
    • 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
      Since the exported transformation that runs this will reside in a ZIP file, we can't reference files relatively. So what this does is turn the name of files into absolute paths OR it simply includes the resource in the ZIP file. For now, we'll simply turn it into an absolute path and pray that the file is on a shared drive or something like that.
      Specified by:
      exportResources in interface StepMetaInterface
      Overrides:
      exportResources in class BaseStepMeta
      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
    • 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.
    • setFileNameForTest

      public void setFileNameForTest(String[] fileName)
    • loadSource

      protected String loadSource(Node filenode, Node filenamenode, int i, org.pentaho.metastore.api.IMetaStore metaStore)
    • saveSource

      protected void saveSource(StringBuilder retVal, String source)
    • loadSourceRep

      protected String loadSourceRep(Repository rep, org.pentaho.di.repository.ObjectId id_step, int i, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleException
      Throws:
      org.pentaho.di.core.exception.KettleException
    • saveSourceRep

      protected void saveSourceRep(Repository rep, org.pentaho.di.repository.ObjectId id_transformation, org.pentaho.di.repository.ObjectId id_step, int i, String fileName) throws org.pentaho.di.core.exception.KettleException
      Throws:
      org.pentaho.di.core.exception.KettleException
    • getEncoding

      public String getEncoding()
      Specified by:
      getEncoding in interface CsvInputAwareMeta
      Specified by:
      getEncoding in class BaseFileInputMeta<BaseFileInputAdditionalField,BaseFileInputFiles,BaseFileField>
    • getLength

      public String getLength()
      Returns:
      the length
    • setLength

      public void setLength(String length)
      Parameters:
      length - the length to set
    • isAcceptingFilenames

      public boolean isAcceptingFilenames()
      Required for the Data Lineage.
      Overrides:
      isAcceptingFilenames in class BaseFileInputMeta<BaseFileInputAdditionalField,BaseFileInputFiles,BaseFileField>
    • getAcceptingStepName

      public String getAcceptingStepName()
      Required for the Data Lineage.
      Overrides:
      getAcceptingStepName in class BaseFileInputMeta<BaseFileInputAdditionalField,BaseFileInputFiles,BaseFileField>
    • getAcceptingStep

      public StepMeta getAcceptingStep()
      Required for the Data Lineage.
    • getAcceptingField

      public String getAcceptingField()
      Required for the Data Lineage.
      Overrides:
      getAcceptingField in class BaseFileInputMeta<BaseFileInputAdditionalField,BaseFileInputFiles,BaseFileField>
    • getFilePaths

      public String[] getFilePaths(org.pentaho.di.core.bowl.Bowl bowl, org.pentaho.di.core.variables.VariableSpace space)
    • getTextFileList

      public org.pentaho.di.core.fileinput.FileInputList getTextFileList(org.pentaho.di.core.bowl.Bowl bowl, org.pentaho.di.core.variables.VariableSpace space)
    • hasHeader

      public boolean hasHeader()
      Specified by:
      hasHeader in interface CsvInputAwareMeta
    • getEscapeCharacter

      public String getEscapeCharacter()
      Specified by:
      getEscapeCharacter in interface CsvInputAwareMeta
    • getDelimiter

      public String getDelimiter()
      Specified by:
      getDelimiter in interface CsvInputAwareMeta
    • getEnclosure

      public String getEnclosure()
      Specified by:
      getEnclosure in interface CsvInputAwareMeta
    • getHeaderFileObject

      public org.apache.commons.vfs2.FileObject getHeaderFileObject(TransMeta transMeta)
      Description copied from interface: CsvInputAwareMeta
      Returns a FileObject that corresponds to the first encountered input file. This object is used to read the file headers for the purpose of field parsing.
      Specified by:
      getHeaderFileObject in interface CsvInputAwareMeta
      Parameters:
      transMeta - the TransMeta
      Returns:
      null if the FileObject cannot be created.