|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 foundMethod 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 addpublic 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
KettleException
public 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 |