本文整理汇总了Java中org.pentaho.di.core.hash.ByteArrayHashIndex类的典型用法代码示例。如果您正苦于以下问题:Java ByteArrayHashIndex类的具体用法?Java ByteArrayHashIndex怎么用?Java ByteArrayHashIndex使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ByteArrayHashIndex类属于org.pentaho.di.core.hash包,在下文中一共展示了ByteArrayHashIndex类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addToCache
import org.pentaho.di.core.hash.ByteArrayHashIndex; //导入依赖的package包/类
private void addToCache(RowMetaInterface keyMeta, Object[] keyData, RowMetaInterface valueMeta, Object[] valueData) throws KettleValueException
{
if (meta.isMemoryPreservationActive())
{
if (meta.isUsingSortedList())
{
KeyValue keyValue = new KeyValue(keyData, valueData);
int idx = Collections.binarySearch(data.list, keyValue, data.comparator);
if (idx<0)
{
int index = -idx-1; // this is the insertion point
data.list.add(index, keyValue); // insert to keep sorted.
}
else
{
data.list.set(idx, keyValue); // Overwrite to simulate Hashtable behaviour
}
}
else
{
if (meta.isUsingIntegerPair())
{
if (!data.metadataVerifiedIntegerPair) {
data.metadataVerifiedIntegerPair=true;
if (keyMeta.size()!=1 || valueMeta.size()!=1 || !keyMeta.getValueMeta(0).isInteger() || !valueMeta.getValueMeta(0).isInteger()) {
throw new KettleValueException(Messages.getString("StreamLookup.Exception.CanNotUseIntegerPairAlgorithm"));
}
}
Long key = keyMeta.getInteger(keyData, 0);
Long value = valueMeta.getInteger(valueData, 0);
data.longIndex.put(key, value);
}
else
{
if (data.hashIndex==null)
{
data.hashIndex = new ByteArrayHashIndex(keyMeta);
}
data.hashIndex.put(RowMeta.extractData(keyMeta, keyData), RowMeta.extractData(valueMeta, valueData));
}
}
}
else
{
// We can't just put Object[] in the map
// The compare function is not in it.
// We need to wrap in and use that.
// Let's use RowMetaAndData for this one.
//
data.look.put(new RowMetaAndData(keyMeta, keyData), valueData);
}
}
示例2: addToCache
import org.pentaho.di.core.hash.ByteArrayHashIndex; //导入依赖的package包/类
private void addToCache(RowMetaInterface keyMeta, Object[] keyData, RowMetaInterface valueMeta, Object[] valueData) throws KettleValueException
{
if (meta.isMemoryPreservationActive())
{
if (meta.isUsingSortedList())
{
KeyValue keyValue = new KeyValue(keyData, valueData);
int idx = Collections.binarySearch(data.list, keyValue, data.comparator);
if (idx<0)
{
int index = -idx-1; // this is the insertion point
data.list.add(index, keyValue); // insert to keep sorted.
}
else
{
data.list.set(idx, keyValue); // Overwrite to simulate Hashtable behaviour
}
}
else
{
if (meta.isUsingIntegerPair())
{
if (!data.metadataVerifiedIntegerPair) {
data.metadataVerifiedIntegerPair=true;
if (keyMeta.size()!=1 || valueMeta.size()!=1 || !keyMeta.getValueMeta(0).isInteger() || !valueMeta.getValueMeta(0).isInteger()) {
throw new KettleValueException(BaseMessages.getString(PKG, "StreamLookup.Exception.CanNotUseIntegerPairAlgorithm"));
}
}
Long key = keyMeta.getInteger(keyData, 0);
Long value = valueMeta.getInteger(valueData, 0);
data.longIndex.put(key, value);
}
else
{
if (data.hashIndex==null)
{
data.hashIndex = new ByteArrayHashIndex(keyMeta);
}
data.hashIndex.put(RowMeta.extractData(keyMeta, keyData), RowMeta.extractData(valueMeta, valueData));
}
}
}
else
{
// We can't just put Object[] in the map
// The compare function is not in it.
// We need to wrap in and use that.
// Let's use RowMetaAndData for this one.
//
data.look.put(new RowMetaAndData(keyMeta, keyData), valueData);
}
}
示例3: addToCache
import org.pentaho.di.core.hash.ByteArrayHashIndex; //导入依赖的package包/类
private void addToCache( RowMetaInterface keyMeta, Object[] keyData, RowMetaInterface valueMeta,
Object[] valueData ) throws KettleValueException {
if ( meta.isMemoryPreservationActive() ) {
if ( meta.isUsingSortedList() ) {
KeyValue keyValue = new KeyValue( keyData, valueData );
int idx = Collections.binarySearch( data.list, keyValue, data.comparator );
if ( idx < 0 ) {
int index = -idx - 1; // this is the insertion point
data.list.add( index, keyValue ); // insert to keep sorted.
} else {
data.list.set( idx, keyValue ); // Overwrite to simulate Hashtable behaviour
}
} else {
if ( meta.isUsingIntegerPair() ) {
if ( !data.metadataVerifiedIntegerPair ) {
data.metadataVerifiedIntegerPair = true;
if ( keyMeta.size() != 1
|| valueMeta.size() != 1 || !keyMeta.getValueMeta( 0 ).isInteger()
|| !valueMeta.getValueMeta( 0 ).isInteger() ) {
throw new KettleValueException( BaseMessages.getString(
PKG, "StreamLookup.Exception.CanNotUseIntegerPairAlgorithm" ) );
}
}
Long key = keyMeta.getInteger( keyData, 0 );
Long value = valueMeta.getInteger( valueData, 0 );
data.longIndex.put( key, value );
} else {
if ( data.hashIndex == null ) {
data.hashIndex = new ByteArrayHashIndex( keyMeta );
}
data.hashIndex
.put( RowMeta.extractData( keyMeta, keyData ), RowMeta.extractData( valueMeta, valueData ) );
}
}
} else {
// We can't just put Object[] in the map The compare function is not in it.
// We need to wrap in and use that. Let's use RowMetaAndData for this one.
data.look.put( new RowMetaAndData( keyMeta, keyData ), valueData );
}
}