Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.pentaho.di.core.row
Class RowDataUtil

    java.lang.Object
      org.pentaho.di.core.row.RowDataUtil

    public class RowDataUtil

extends Object

We use this class to do row manipulations like add, delete, resize, etc. That way, when we want to go for a metadata driven system with hiding deletes, over sized arrays etc, we can change these methods to find occurrences.

Author:
  Matt

Field Summary
`static int` | `OVER_ALLOCATE_SIZE`

Constructor Summary
`RowDataUtil()`

Method Summary
`static Object[]` | `addRowData(Object[] one, int sourceLength, Object[] two)` Add two arrays and make one new one.
`static Object[]` | `addValueData(Object[] rowData, int length, Object extra)` Add a single value to a row of data
`static Object[]` | `allocateRowData(int size)` Allocate a new Object array.
`static Object[]` | `createResizedCopy(Object[] objects, int newSize)` Resize an object array making it bigger, over allocate, always create a copy of the original array, even if there's enough room in the old one.
`static Object[]` | `removeItem(Object[] objects, int index)` Remove an item from an Object array.
`static Object[]` | `removeItems(Object[] rowData, int[] index)` Remove a number of items in a row of data.
`static Object[]` | `resizeArray(Object[] objects, int newSize)` Resize an object array making it bigger, over allocate, return the original array if there's enough room.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### OVER_ALLOCATE_SIZE

    public static int OVER_ALLOCATE_SIZE

Constructor Detail

### RowDataUtil

    public RowDataUtil()

Method Detail

### allocateRowData

    public static Object[] allocateRowData(int size)

  Allocate a new Object array. However, over allocate by a constant factor to make adding values faster.

  Parameters:
    `size` - the minimum size to allocate.
  Returns:
    the newly allocated object array

### resizeArray

    public static Object[] resizeArray(Object[] objects,
                                       int newSize)

  Resize an object array making it bigger, over allocate, return the original array if there's enough room.

  Parameters:
    `objects` -
    `newSize` -
  Returns:
    A new object array, resized.

### createResizedCopy

    public static Object[] createResizedCopy(Object[] objects,
                                             int newSize)

  Resize an object array making it bigger, over allocate, always create a copy of the original array, even if there's enough room in the old one.

  Parameters:
    `objects` - the original row
    `newSize` - the new size
  Returns:
    A new object array, resized.

### removeItem

    public static Object[] removeItem(Object[] objects,
                                      int index)

  Remove an item from an Object array. This is a slow operation, later we want to just flag this object and discard it at the next resize. The question is of-course if it makes that much of a difference in the end.

  Parameters:
    `objects` -
    `index` -
  Returns:

### addRowData

    public static Object[] addRowData(Object[] one,
                                      int sourceLength,
                                      Object[] two)

  Add two arrays and make one new one.

  Parameters:
    `one` - The first array
    `the` - length of the row data or of it's longer, the location of the new extra value in the returned data row
    `two` - The second array
  Returns:
    a new Array containing all elements from one and two after one another

### addValueData

    public static Object[] addValueData(Object[] rowData,
                                        int length,
                                        Object extra)

  Add a single value to a row of data

  Parameters:
    `rowData` - The original row of data
    `the` - length of the row data or of it's longer, the location of the new extra value in the returned data row
    `extra` - The extra value to add
  Returns:
    a new Array containing all elements, including the extra one

### removeItems

    public static Object[] removeItems(Object[] rowData,
                                       int[] index)

  Remove a number of items in a row of data.

  Parameters:
    `rowData` - the row of data to remove from
    `index` - the index of all the items in the source table to remove. We don't check if the same index gets deleted twice!

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD