protected void rehash(int newN){
  HashIndexSetProperties metaData=hashIndexSetProperties;
  if (TEST_ALWAYS_REHASH) {
    Thread.yield();
  }
  Object[] oldSet=metaData.set;
  int oldCapacity=oldSet.length;
  int mask=newN - 1;
  int _maxSize=computeMaxSize(newN,_loadFactor);
  Object[] newSet=new Object[newN + 1];
  HashIndexSetProperties newHashIndexProperties=new HashIndexSetProperties(newSet,mask);
  newHashIndexProperties.size=metaData.size;
  newHashIndexProperties.free=hashIndexSetProperties.computeNumFree();
  newHashIndexProperties.removedTokens=0;
  newHashIndexProperties.n=newN;
  newHashIndexProperties.maxSize=_maxSize;
  for (int i=oldCapacity; i-- > 0; ) {
    if (oldSet[i] != null && oldSet[i] != REMOVED) {
      Object o=oldSet[i];
      Object key=_imqEvaluator.evaluateKey(o);
      if (key == null) {
        key=IndexManager.NULL;
      }
      int index=insertionIndex(key,newHashIndexProperties);
      if (index >= 0) {
        addObjectToSet(newHashIndexProperties.set,index,o);
      }
    }
  }
  hashIndexSetProperties=newHashIndexProperties;
}

protected void rehash ( int newN ) { HashIndexSetProperties metaData = hashIndexSetProperties ; if ( TEST_ALWAYS_REHASH ) { Thread . yield ( ) ; } Object [ ] oldSet = metaData . set ; int oldCapacity = oldSet . length ; int mask = newN - 1 ; int _maxSize = computeMaxSize ( newN , _loadFactor ) ; Object [ ] newSet = new Object [ newN + 1 ] ; HashIndexSetProperties newHashIndexProperties = new HashIndexSetProperties ( newSet , mask ) ; newHashIndexProperties . size = metaData . size ; newHashIndexProperties . free = hashIndexSetProperties . computeNumFree ( ) ; newHashIndexProperties . removedTokens = 0 ; newHashIndexProperties . n = newN ; newHashIndexProperties . maxSize = _maxSize ; for ( int i = oldCapacity ; i -- > 0 ; ) { if ( oldSet [ i ] != null && oldSet [ i ] != REMOVED ) { Object o = oldSet [ i ] ; Object key = _imqEvaluator . evaluateKey ( o ) ; if ( key == null ) { key = IndexManager . NULL ; } int index = insertionIndex ( key , newHashIndexProperties ) ; if ( index >= 0 ) { addObjectToSet ( newHashIndexProperties . set , index , o ) ; } } } hashIndexSetProperties = newHashIndexProperties ; }
expands or contracts a set to the new specified n .
