Class Row

java.lang.Object
org.pentaho.di.compatibility.Row
All Implemented Interfaces:
Serializable, Comparable<Row>, XMLInterface

public class Row extends Object implements XMLInterface, Comparable<Row>, Serializable
This class describes a single row in a stream of data. A row is a array/list of Value objects. Note that most methods in this class assume that a value with a certain name only occurs once in the Row.
Since:
Beginning 2003.
Author:
Matt
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Row()
    Create a new empty row (with 0 values)
    Read a row of Values from an input-stream.
    Row(DataInputStream dis, int size, Row meta)
    Read a number of Values without meta-data into a row.
    Row(DataInputStream dis, Row meta)
    Read a number of Values without meta-data into a row.
    Row(Row r)
    Creates a new row as a duplicate of the given row.
    Row(Node rowNode)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(Object obj)
    Deprecated. 
    void
    Add all the values of row r to the Row.
    void
    addValue(int idx, Value v)
    Add a value on a certain location in the row.
    void
    Add a value after the last value of the row
    void
    Removes all values from the row.
    Returns an exact copy of this row.
    int
    Compare 2 complete rows of values with each other.
    int
    compare(Row r, boolean caseInsensitive)
    Compare 2 complete rows of values with each other
    int
    compare(Row r, int[] fieldnrs, boolean[] ascending)
    Compare 2 rows with each other using certain values in the rows and also considering an ascending clause.
    int
    compare(Row r, int[] fieldnrs, boolean[] ascending, boolean[] caseInsensitive)
     
    int
    compare(Row r, int[] fieldnrs1, int[] fieldnrs2, boolean[] ascending, boolean[] caseInsensitive)
    Compare 2 rows with each other using certain values in the rows and also considering an ascending clause.
    int
    compare(Row r, int fieldnr, boolean sort_desc)
    Compare 2 rows with each other using one value in the rows and also considering an ascending clause.
    int
     
    boolean
     
    static final byte[]
     
    get(int idx)
    Deprecated. 
    boolean
    getBoolean(String valuename, boolean def)
    Search for a value, if it doesn't occur in the row, return the default value.
    getDate(String valuename, Date def)
    Search for a value, if it doesn't occur in the row, return the default value.
    Get an array of the names of all the Values in the Row.
    Get an array of strings showing the name of the values in the row padded to a maximum length, followed by the types of the values.
    long
    getInteger(String valuename, long def)
    Search for a value, if it doesn't occur in the row, return the default value.
    double
    getNumber(String valuename, double def)
    Search for a value, if it doesn't occur in the row, return the default value.
    static final Row
    getRow(byte[] data, Row metadata)
     
    long
    getShort(String valuename, int def)
    Search for a value, if it doesn't occur in the row, return the default value.
    getString(String valuename, String def)
    Search for a value, if it doesn't occur in the row, return the default value.
     
    getValue(int index)
    Get the value on a given position in the row.
    Return the XML representation of a row.
    int
     
    boolean
    Checks whether or not the row is empty A row is empty if all the values in the row are null A row is empty if there are no values in the row.
    boolean
    Check wether or not this row should be ignored...
    void
    Merge the data of row r to this Row.
    void
    Merge the values of row r to this Row.
    void
    Print the names and the String representations of the values of the Values in row to stdout.
    void
    remove(int idx)
    Deprecated. 
    void
    removeValue(int idx)
    Remove a value on a certain index.
    boolean
    Remove a value with a given name from the row.
    Search the Value by name in the row.
    int
    Search the Value by name in the row, return the Values index.
    void
    Marks this row as to be ignored by the next steps.
    void
    setIgnore(boolean i)
    Marks this row as to be ignored or not by the next steps.
    void
     
    void
    setValue(int idx, Value v)
    Set the value on index idx.
    int
    Return number of Values in Row.
    static final void
    sortRows(List<Row> rows, int[] fieldNrs, boolean[] ascDesc)
     
    Convert the row to a String representation.
    Return the meta-data of a row as a String.
    void
    Write the content of the row to a DataOutputStream.
    boolean
    Write a row of Values to a DataOutputStream, without saving the meta-data.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • Row

      public Row()
      Create a new empty row (with 0 values)
    • Row

      public Row(Row r)
      Creates a new row as a duplicate of the given row. The values are copied one by one into new values.
      Parameters:
      r - The row to be copied.
    • Row

      public Row(DataInputStream dis) throws KettleFileException
      Read a row of Values from an input-stream.
      Parameters:
      dis - The DataInputStream to read from
      Throws:
      KettleFileException
    • Row

      public Row(DataInputStream dis, Row meta) throws KettleFileException
      Read a number of Values without meta-data into a row.
      Parameters:
      dis - The DataInputStream to read from
      meta - The description (name, type, length, precision) of the values to be read (the same number of values are read)
      Throws:
      KettleFileException - if the row couldn't be created by reading from the data input stream.
    • Row

      public Row(DataInputStream dis, int size, Row meta) throws KettleFileException
      Read a number of Values without meta-data into a row.
      Parameters:
      dis - The DataInputStream to read from
      size - the number or values to read
      meta - The description (name, type, length, precision) of the values to be read
      Throws:
      KettleFileException - if the row couldn't be created by reading from the data input stream.
    • Row

      public Row(Node rowNode)
  • Method Details

    • getValue

      public Value getValue(int index)
      Get the value on a given position in the row.
      Parameters:
      index - The position to look for
      Returns:
      The Value on in the given index
    • addValue

      public void addValue(Value v)
      Add a value after the last value of the row
      Parameters:
      v - The value to add to the row
    • setValue

      public void setValue(int idx, Value v)
      Set the value on index idx.
      Parameters:
      idx - The index
      v - The value to set
    • addValue

      public void addValue(int idx, Value v)
      Add a value on a certain location in the row.
      Parameters:
      idx - The index where the value needs to be put in the row
      v - The value to add to the row
    • add

      @Deprecated public void add(Object obj)
      Deprecated.
      Add an object to the row.
      Parameters:
      obj - the object to add
    • get

      @Deprecated public Object get(int idx)
      Deprecated.
      Get an object from the row.
      Parameters:
      idx - the index to get the object from
      Returns:
      the object
    • remove

      @Deprecated public void remove(int idx)
      Deprecated.
      Remove an object in the row on index idx.
      Parameters:
      idx - The object to remove
    • removeValue

      public boolean removeValue(String valname)
      Remove a value with a given name from the row.
      Parameters:
      valname - The value name to remove from this row
      Returns:
      true if the value was found and removed, false if the value wasn't found.
    • removeValue

      public void removeValue(int idx)
      Remove a value on a certain index.
      Parameters:
      idx - the index to remove in the row
    • clear

      public void clear()
      Removes all values from the row.
    • addRow

      public void addRow(Row r)
      Add all the values of row r to the Row.
      Parameters:
      r - The row to be added to this row.
    • mergeRow

      public void mergeRow(Row r)
      Merge the values of row r to this Row. Merge means: only the values that are not yet in the row are added (comparing on the value name).
      Parameters:
      r - The row to be merged with this row
    • mergeData

      public void mergeData(Row r)
      Merge the data of row r to this Row. That means: All fields in row r that do exist in this row (same name and same type) and have non-empty values will have their values written into this row, if the value of that field is empty in this row.
      Parameters:
      r - The row to be merged with this row
    • searchValueIndex

      public int searchValueIndex(String name)
      Search the Value by name in the row, return the Values index.
      Parameters:
      name - the value name to search for.
      Returns:
      the index of the value with the given name, -1 is nothing was found.
    • searchValue

      public Value searchValue(String name)
      Search the Value by name in the row.
      Parameters:
      name - the value name to search for
      Returns:
      the Value with the given name, null if nothing was found.
    • size

      public int size()
      Return number of Values in Row.
      Returns:
      number of Values.
    • print

      public void print()
      Print the names and the String representations of the values of the Values in row to stdout.
    • toString

      public String toString()
      Convert the row to a String representation.
      Overrides:
      toString in class Object
      Returns:
      the row as a String.
    • toStringMeta

      public String toStringMeta()
      Return the meta-data of a row as a String.
      Returns:
      the meta-data of a row as a String
    • setIgnore

      public void setIgnore()
      Marks this row as to be ignored by the next steps.
    • setIgnore

      public void setIgnore(boolean i)
      Marks this row as to be ignored or not by the next steps.
      Parameters:
      i - true: ignore this row, false: don't ignore.
    • isIgnored

      public boolean isIgnored()
      Check wether or not this row should be ignored...
      Returns:
      true if the row should be ignored.
    • write

      public void write(DataOutputStream dos) throws KettleFileException
      Write the content of the row to a DataOutputStream.
      Parameters:
      dos - The DataOutputStream to write to
      Throws:
      KettleFileException - if an error occurs.
    • writeData

      public boolean writeData(DataOutputStream dos) throws KettleFileException
      Write a row of Values to a DataOutputStream, without saving the meta-data.
      Parameters:
      dos - The DataOutputStream to write to
      Returns:
      true if the row was written successfuly, false if something went wrong.
      Throws:
      KettleFileException
    • compare

      public int compare(Row r, int[] fieldnrs, boolean[] ascending)
      Compare 2 rows with each other using certain values in the rows and also considering an ascending clause.
      Parameters:
      r - The row to compare with
      fieldnrs - The indexes of the values to compare
      ascending - an entry for each value to compare where true means and normal compare, false the reverse.
      Returns:
      -1 if the row is smaller, 0 if they are equal and 1 if the row is larger.
    • compare

      public int compare(Row r, int[] fieldnrs, boolean[] ascending, boolean[] caseInsensitive)
    • compare

      public int compare(Row r, int[] fieldnrs1, int[] fieldnrs2, boolean[] ascending, boolean[] caseInsensitive)
      Compare 2 rows with each other using certain values in the rows and also considering an ascending clause.
      Parameters:
      r - The row to compare with
      fieldnrs - The indexes of the values to compare in the source row (this)
      fieldnrs2 - The indexes of the values to compare with.
      ascending - an entry for each value to compare where true means and normal compare, false the reverse.
      Returns:
      -1 if the row is smaller, 0 if they are equal and 1 if the row is larger.
    • compare

      public int compare(Row r, int fieldnr, boolean sort_desc)
      Compare 2 rows with each other using one value in the rows and also considering an ascending clause.
      Parameters:
      r - The row to compare with
      fieldnr - The indexe of the values to compare
      sort_desc - true means and normal compare, false the reverse.
      Returns:
      -1 if the row is smaller, 0 if they are equal and 1 if the row is larger.
    • compare

      public int compare(Row r)
      Compare 2 complete rows of values with each other. Strings are compared in a case insensitive way
      Parameters:
      r - the row to compare with
      Returns:
      -1 if the row is smaller, 0 if both rows are equal, 1 if the row is larger.
    • compare

      public int compare(Row r, boolean caseInsensitive)
      Compare 2 complete rows of values with each other
      Parameters:
      r - the row to compare with
      Returns:
      -1 if the row is smaller, 0 if both rows are equal, 1 if the row is larger.
    • compareTo

      public int compareTo(Row obj)
      Specified by:
      compareTo in interface Comparable<Row>
    • equals

      public boolean equals(Object r)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • Clone

      public Row Clone()
      Returns an exact copy of this row. On purpose not the real clone() method (notice the uppercase 'C') because of (rhino) javascript problems with it.
      Returns:
      an exact copy of this row
    • isEmpty

      public boolean isEmpty()
      Checks whether or not the row is empty A row is empty if all the values in the row are null A row is empty if there are no values in the row.
      Returns:
      true if the row is considered empty, false if the row is not empty.
    • getFieldNames

      public String[] getFieldNames()
      Get an array of the names of all the Values in the Row.
      Returns:
      an array of Strings: the names of all the Values in the Row.
    • getFieldNamesAndTypes

      public String[] getFieldNamesAndTypes(int maxlen)
      Get an array of strings showing the name of the values in the row padded to a maximum length, followed by the types of the values.
      Parameters:
      maxlen - The length to which the name will be padded.
      Returns:
      an array of strings: the names and the types of the fieldnames in the row.
    • getBoolean

      public boolean getBoolean(String valuename, boolean def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The boolean representation of the value found or the default
    • getString

      public String getString(String valuename, String def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The String representation of the value found or the default
    • getDate

      public Date getDate(String valuename, Date def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The Date representation of the value found or the default
    • getNumber

      public double getNumber(String valuename, double def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The double representation of the value found or the default
    • getInteger

      public long getInteger(String valuename, long def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The long integer representation of the value found or the default
    • getShort

      public long getShort(String valuename, int def)
      Search for a value, if it doesn't occur in the row, return the default value.
      Parameters:
      valuename - The valuename to look for
      def - The default value to return
      Returns:
      The short integer representation of the value found or the default
    • getXML

      public String getXML()
      Return the XML representation of a row.
      Specified by:
      getXML in interface XMLInterface
      Returns:
      The XML representation of this row
    • sortRows

      public static final void sortRows(List<Row> rows, int[] fieldNrs, boolean[] ascDesc)
    • extractData

      public static final byte[] extractData(Row row)
    • getRow

      public static final Row getRow(byte[] data, Row metadata)
    • getUsedValueListeners

      public List<ValueUsedListener> getUsedValueListeners()
      Returns:
      the usedValueListeners
    • setUsedValueListeners

      public void setUsedValueListeners(List<ValueUsedListener> usedValueListeners)
      Parameters:
      usedValueListeners - the usedValueListeners to set