package me.osm.gazetter.striper.builders;
import gnu.trove.list.TLongList;
public abstract class ABuilder implements Builder {
@Override
public void secondRunDoneWays() {
//override me if you need
}
@Override
public void firstRunDoneNodes() {
//override me if you need
}
@Override
public void firstRunDoneWays() {
//override me if you need
}
@Override
public void firstRunDoneRelations() {
//override me if you need
}
// public static final List<ByteBuffer> findAll(List<ByteBuffer> collection, int index,
// long id, int idFieldOffset) {
//
// List<ByteBuffer> result = new ArrayList<ByteBuffer>();
//
// if(index >= 0 ) {
// result.add(collection.get(index));
// for(int i = 1; ;i++) {
//
// boolean lp = false;
// boolean ln = false;
//
// ByteBuffer lineP = getSafe(collection, index + i);
// if(lineP != null && lineP.getLong(idFieldOffset) == id) {
// result.add(lineP);
// lp = true;
// }
//
// ByteBuffer lineN = getSafe(collection, index - i);
// if(lineN != null && lineN.getLong(idFieldOffset) == id) {
// result.add(lineN);
// ln = true;
// }
//
// if(!lp && !ln) {
// break;
// }
//
// }
// }
//
// return result;
// }
public static final int binarySearchWithMask(TLongList list, long key) {
int imin = 0;
int imax = list.size() - 1;
while (imax >= imin) {
int imid = imin + (imax - imin) / 2;
long guess = list.get(imid) >> 16;
if (guess == key) {
return imid;
}
else if (guess < key) {
imin = imid + 1;
}
else {
imax = imid - 1;
}
}
return -1;
}
// private static ByteBuffer getSafe(List<ByteBuffer> collection, int i) {
// if(i >= 0 && i < collection.size()) {
// return collection.get(i);
// }
// return null;
// }
public String getThreadPoolUser() {
return this.getClass().getName();
}
}