| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.pentaho.di.trans.steps.dimensionlookup.DimensionCache
public class DimensionCache
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.
| 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 | 
|---|
public DimensionCache(org.pentaho.di.core.row.RowMetaInterface rowMeta,
                      int[] keyIndexes,
                      int fromDateIndex,
                      int toDateIndex)
rowMeta - the description of the rows to storekeyIndexes - the indexes of the natural key (in that order)fromDateIndex - the field index where the start of the date range can be foundtoDateIndex - the field index where the end of the date range can be found| Method Detail | 
|---|
public void addRow(Object[] row)
row - the row to addpublic Object[] getRow(int index)
index - the index to look for
public void addRow(int index,
                   Object[] row)
index - the index on which the row should be insertedrow - the row to add
public int lookupRow(Object[] lookupRowData)
              throws org.pentaho.di.core.exception.KettleException
lookupRowData - The data of the lookup row.  Make sure that on the index of the from date, you put the lookup date.
a - KettleException in case there are conversion errors during the lookup of the row
org.pentaho.di.core.exception.KettleExceptionpublic void sortRows()
public int compare(Object[] o1,
                   Object[] o2)
compare in interface Comparator<Object[]>o1 - o2 - 
public org.pentaho.di.core.row.RowMetaInterface getRowMeta()
public void setRowMeta(org.pentaho.di.core.row.RowMetaInterface rowMeta)
rowMeta - the rowMeta to setpublic List<Object[]> getRowCache()
public void setRowCache(List<Object[]> rowCache)
rowCache - the rowCache to setpublic int[] getKeyIndexes()
public void setKeyIndexes(int[] keyIndexes)
keyIndexes - the keyIndexes to setpublic int getFromDateIndex()
public void setFromDateIndex(int fromDateIndex)
fromDateIndex - the fromDateIndex to setpublic int getToDateIndex()
public void setToDateIndex(int toDateIndex)
toDateIndex - the toDateIndex to set
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||