当前位置: 首页>>代码示例>>Java>>正文


Java ByteArrayHashIndex类代码示例

本文整理汇总了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);
    }
}
 
开发者ID:icholy,项目名称:geokettle-2.0,代码行数:55,代码来源:StreamLookup.java

示例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);
    }
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:55,代码来源:StreamLookup.java

示例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 );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:43,代码来源:StreamLookup.java


注:本文中的org.pentaho.di.core.hash.ByteArrayHashIndex类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。