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.trans.steps.dimensionlookup
Class DimensionCache

    java.lang.Object
      org.pentaho.di.trans.steps.dimensionlookup.DimensionCache

All Implemented Interfaces:
  Comparator<Object[]>

    public class DimensionCache

extends Object
implements Comparator<Object[]>

This class will act as a special purpose dimension Cache. The idea here is to not only cache the last version of a dimension entry, but all versions. So basically, the entry key is the natural key as well as the from-to date range. The way to achieve that result is to keep a sorted list in memory. Because we want as few conversion errors as possible, we'll use the same row as we get from the database.

Author:
  matt

Constructor Summary
`DimensionCache(org.pentaho.di.core.row.RowMetaInterface rowMeta, int[] keyIndexes, int fromDateIndex, int toDateIndex)` Create a new dimension cache object

Method Summary
`void` | `addRow(int index, Object[] row)` Insert a row into the list on a certain index
`void` | `addRow(Object[] row)` Add a row to the back of the list
`int` | `compare(Object[] o1, Object[] o2)` Compare 2 rows of data using the natural keys and indexes specified.
`int` | `getFromDateIndex()`
`int[]` | `getKeyIndexes()`
`Object[]` | `getRow(int index)` Get a row from the cache on a certain index
`List<Object[]>` | `getRowCache()`
`org.pentaho.di.core.row.RowMetaInterface` | `getRowMeta()`
`int` | `getToDateIndex()`
`int` | `lookupRow(Object[] lookupRowData)` Looks up a row in the (sorted) cache.
`void` | `setFromDateIndex(int fromDateIndex)`
`void` | `setKeyIndexes(int[] keyIndexes)`
`void` | `setRowCache(List<Object[]> rowCache)`
`void` | `setRowMeta(org.pentaho.di.core.row.RowMetaInterface rowMeta)`
`void` | `setToDateIndex(int toDateIndex)`
`void` | `sortRows()`

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

Methods inherited from interface java.util.Comparator
`equals`

Constructor Detail

### DimensionCache

    public DimensionCache(org.pentaho.di.core.row.RowMetaInterface rowMeta,
                          int[] keyIndexes,
                          int fromDateIndex,
                          int toDateIndex)

  Create a new dimension cache object

  Parameters:
    `rowMeta` - the description of the rows to store
    `keyIndexes` - the indexes of the natural key (in that order)
    `fromDateIndex` - the field index where the start of the date range can be found
    `toDateIndex` - the field index where the end of the date range can be found

Method Detail

### addRow

    public void addRow(Object[] row)

  Add a row to the back of the list

  Parameters:
    `row` - the row to add

### getRow

    public Object[] getRow(int index)

  Get a row from the cache on a certain index

  Parameters:
    `index` - the index to look for
  Returns:
    the row on the specified index

### addRow

    public void addRow(int index,
                       Object[] row)

  Insert a row into the list on a certain index

  Parameters:
    `index` - the index on which the row should be inserted
    `row` - the row to add

### lookupRow

    public int lookupRow(Object[] lookupRowData)
                  throws org.pentaho.di.core.exception.KettleException

  Looks up a row in the (sorted) cache.

  Parameters:
    `lookupRowData` - The data of the lookup row. Make sure that on the index of the from date, you put the lookup date.
  Throws:
    `a` - KettleException in case there are conversion errors during the lookup of the row
    `org.pentaho.di.core.exception.KettleException`

### sortRows

    public void sortRows()

### compare

    public int compare(Object[] o1,
                       Object[] o2)

  Compare 2 rows of data using the natural keys and indexes specified.

  Specified by:
    `compare` in interface `Comparator<Object[]>`
  Parameters:
    `o1` -
    `o2` -
  Returns:

### getRowMeta

    public org.pentaho.di.core.row.RowMetaInterface getRowMeta()

  Returns:
    the rowMeta

### setRowMeta

    public void setRowMeta(org.pentaho.di.core.row.RowMetaInterface rowMeta)

  Parameters:
    `rowMeta` - the rowMeta to set

### getRowCache

    public List<Object[]> getRowCache()

  Returns:
    the rowCache

### setRowCache

    public void setRowCache(List<Object[]> rowCache)

  Parameters:
    `rowCache` - the rowCache to set

### getKeyIndexes

    public int[] getKeyIndexes()

  Returns:
    the keyIndexes

### setKeyIndexes

    public void setKeyIndexes(int[] keyIndexes)

  Parameters:
    `keyIndexes` - the keyIndexes to set

### getFromDateIndex

    public int getFromDateIndex()

  Returns:
    the fromDateIndex

### setFromDateIndex

    public void setFromDateIndex(int fromDateIndex)

  Parameters:
    `fromDateIndex` - the fromDateIndex to set

### getToDateIndex

    public int getToDateIndex()

  Returns:
    the toDateIndex

### setToDateIndex

    public void setToDateIndex(int toDateIndex)

  Parameters:
    `toDateIndex` - the toDateIndex to set

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