@Override protected int getIdFromValueBytesWithoutCache(byte[] value, int offset, int len, int roundingFlag) { int seq = lookupSeqNoFromValue(headSize, value, offset, offset + len, roundingFlag); int id = calcIdFromSeqNo(seq); if (id < 0) logger.debug("Not a valid value: " + bytesConvert.convertFromBytes(value, offset, len)); return id; }
@Override protected final T getValueFromIdImpl(int id) { if (this.idToValueCache != null) { Object[] cache = idToValueCache.get(); if (cache != null) { int seq = calcSeqNoFromId(id); if (cache[seq] != null) return (T) cache[seq]; byte[] valueBytes = getValueBytesFromIdWithoutCache(id); T value = bytesConvert.convertFromBytes(valueBytes, 0, valueBytes.length); cache[seq] = value; return value; } } byte[] valueBytes = getValueBytesFromIdWithoutCache(id); return bytesConvert.convertFromBytes(valueBytes, 0, valueBytes.length); }
@Override public void dump(PrintStream out) { out.println("TrieDictionaryForest"); out.println("baseId:" + baseId); StringBuilder sb = new StringBuilder(); sb.append("value divide:"); for (ByteArray ba : valueDivide) sb.append(bytesConvert.convertFromBytes(ba.array(), 0, ba.length()) + " "); sb.append("\noffset divide:"); for (Integer offset : accuOffset) sb.append(offset + " "); out.println(sb.toString()); for (int i = 0; i < trees.size(); i++) { out.println("----tree " + i + "--------"); trees.get(i).dump(out); } }
T curNodeValue = bytesConvert.convertFromBytes(returnValue, 0, o); result.add(curNodeValue);
@Override protected int getIdFromValueBytesImpl(byte[] value, int offset, int len, int roundingFlag) { int seq = lookupSeqNoFromValue(headSize, value, offset, offset + len, roundingFlag); int id = calcIdFromSeqNo(seq); if (id < 0) throw new IllegalArgumentException("Not a valid value: " + bytesConvert.convertFromBytes(value, offset, len)); return id; }
@Override final protected T getValueFromIdImpl(int id) { if (enableCache) { Object[] cache = idToValueCache.get(); // SoftReference to skip // cache gracefully when // short of memory if (cache != null) { int seq = calcSeqNoFromId(id); if (seq < 0 || seq >= nValues) throw new IllegalArgumentException("Not a valid ID: " + id); if (cache[seq] != null) return (T) cache[seq]; byte[] value = new byte[getSizeOfValue()]; int length = getValueBytesFromId(id, value, 0); T result = bytesConvert.convertFromBytes(value, 0, length); cache[seq] = result; return result; } } byte[] value = new byte[getSizeOfValue()]; int length = getValueBytesFromId(id, value, 0); return bytesConvert.convertFromBytes(value, 0, length); }
@Override protected int getIdFromValueBytesImpl(byte[] value, int offset, int len, int roundingFlag) { int seq = lookupSeqNoFromValue(headSize, value, offset, offset + len, roundingFlag); int id = calcIdFromSeqNo(seq); if (id < 0) throw new IllegalArgumentException("Not a valid value: '" + bytesConvert.convertFromBytes(value, offset, len) + "'"); return id; }
@Override protected int getIdFromValueBytesWithoutCache(byte[] value, int offset, int len, int roundingFlag) { int seq = lookupSeqNoFromValue(headSize, value, offset, offset + len, roundingFlag); int id = calcIdFromSeqNo(seq); if (id < 0) logger.debug("Not a valid value: " + bytesConvert.convertFromBytes(value, offset, len)); return id; }
@Override public void dump(PrintStream out) { out.println("TrieDictionaryForest"); out.println("baseId:" + baseId); StringBuilder sb = new StringBuilder(); sb.append("value divide:"); for (ByteArray ba : valueDivide) sb.append(bytesConvert.convertFromBytes(ba.array(), 0, ba.length()) + " "); sb.append("\noffset divide:"); for (Integer offset : accuOffset) sb.append(offset + " "); out.println(sb.toString()); for (int i = 0; i < trees.size(); i++) { out.println("----tree " + i + "--------"); trees.get(i).dump(out); } }
@Override protected final T getValueFromIdImpl(int id) { if (this.idToValueCache != null) { Object[] cache = idToValueCache.get(); if (cache != null) { int seq = calcSeqNoFromId(id); if (cache[seq] != null) return (T) cache[seq]; byte[] valueBytes = getValueBytesFromIdWithoutCache(id); T value = bytesConvert.convertFromBytes(valueBytes, 0, valueBytes.length); cache[seq] = value; return value; } } byte[] valueBytes = getValueBytesFromIdWithoutCache(id); return bytesConvert.convertFromBytes(valueBytes, 0, valueBytes.length); }
@Override final protected T getValueFromIdImpl(int id) { if (enableCache) { Object[] cache = idToValueCache.get(); // SoftReference to skip cache gracefully when short of memory if (cache != null) { int seq = calcSeqNoFromId(id); if (seq < 0 || seq >= nValues) throw new IllegalArgumentException("Not a valid ID: " + id); if (cache[seq] != null) return (T) cache[seq]; byte[] value = new byte[getSizeOfValue()]; int length = getValueBytesFromId(id, value, 0); T result = bytesConvert.convertFromBytes(value, 0, length); cache[seq] = result; return result; } } byte[] value = new byte[getSizeOfValue()]; int length = getValueBytesFromId(id, value, 0); return bytesConvert.convertFromBytes(value, 0, length); }
T curNodeValue = bytesConvert.convertFromBytes(returnValue, 0, o); result.add(curNodeValue);