|
||||||||||
| 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(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()
|
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(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(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 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
KettleExceptionpublic void sortRows()
public int compare(Object[] o1,
Object[] o2)
compare in interface Comparator<Object[]>o1 - o2 -
public RowMetaInterface getRowMeta()
public void setRowMeta(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 | |||||||||