package edu.berkeley.nlp.lm.map;
import java.io.Serializable;
import edu.berkeley.nlp.lm.array.LongArray;
import edu.berkeley.nlp.lm.util.Annotations.PrintMemoryCount;
class CompressedMap implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
@PrintMemoryCount
LongArray compressedKeys;
@PrintMemoryCount
private LongArray uncompressedKeys;
private long numKeys;
public long add(final long key) {
uncompressedKeys.addWithFixedCapacity(key);
return uncompressedKeys.size();
}
public long size() {
return uncompressedKeys == null ? numKeys : uncompressedKeys.size();
}
public void init(final long l) {
uncompressedKeys = LongArray.StaticMethods.newLongArray(Long.MAX_VALUE, l, l);
}
public void trim() {
uncompressedKeys.trim();
}
public void clearUncompressedKeys() {
numKeys = uncompressedKeys.size();
uncompressedKeys = null;
}
public LongArray getUncompressedKeys() {
return uncompressedKeys;
}
}