public class MapHeap
extends java.lang.Object
implements java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
Modifier and Type | Class and Description |
---|---|
protected class |
MapHeap.FullMapIterator |
class |
MapHeap.KeyIterator |
Modifier and Type | Field and Description |
---|---|
private BLOB |
blob |
private ARC<byte[],java.util.Map<java.lang.String,java.lang.String>> |
cache |
private char |
fillchar |
private static GenericFormatter |
my_SHORT_SECOND_FORMATTER |
static byte[] |
POISON_QUEUE_ENTRY |
Constructor and Description |
---|
MapHeap(java.io.File heapFile,
int keylength,
ByteOrder ordering,
int buffermax,
int cachesize,
char fillchar) |
Modifier and Type | Method and Description |
---|---|
private static java.util.Map<java.lang.String,java.lang.String> |
bytes2map(byte[] b) |
void |
clear()
clears the content of the database
|
void |
close()
close the Map table
|
boolean |
containsKey(java.lang.Object k)
check if a specific key is in the database
|
boolean |
containsValue(java.lang.Object value) |
void |
delete(byte[] key)
remove a Map
|
java.util.Iterator<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> |
entries(boolean up,
boolean rotating) |
java.util.Iterator<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> |
entries(boolean up,
boolean rotating,
byte[] firstKey,
byte[] secondKey) |
java.util.Set<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> |
entrySet() |
void |
finalize() |
java.util.Map<java.lang.String,java.lang.String> |
get(byte[] key)
retrieve the whole Map from the table
|
protected java.util.Map<java.lang.String,java.lang.String> |
get(byte[] key,
boolean storeCache) |
java.util.Map<java.lang.String,java.lang.String> |
get(java.lang.Object key) |
void |
insert(byte[] key,
java.util.Map<java.lang.String,java.lang.String> newMap)
write a whole byte array as Map to the table
|
boolean |
isEmpty() |
int |
keylength()
ask for the length of the primary key
|
java.util.concurrent.BlockingQueue<byte[]> |
keyQueue(int size) |
CloneableIterator<byte[]> |
keys(boolean up,
boolean rotating)
iterator over all keys
|
CloneableIterator<byte[]> |
keys(boolean up,
boolean rotating,
byte[] firstKey,
byte[] secondKey)
return an iteration of the keys in the map
the keys in the map are de-normalized which means that the fill-character is removed
|
CloneableIterator<byte[]> |
keys(boolean up,
byte[] firstKey) |
java.util.Set<byte[]> |
keySet() |
static void |
main(java.lang.String[] args) |
private static java.lang.String |
map2string(java.util.Map<java.lang.String,java.lang.String> map,
java.lang.String comment) |
private byte[] |
normalizeKey(byte[] key) |
ByteOrder |
ordering()
get the ordering of the primary keys
|
java.util.Map<java.lang.String,java.lang.String> |
put(byte[] key,
java.util.Map<java.lang.String,java.lang.String> newMap) |
void |
putAll(java.util.Map<? extends byte[],? extends java.util.Map<java.lang.String,java.lang.String>> map) |
java.util.Map<java.lang.String,java.lang.String> |
remove(java.lang.Object key) |
private byte[] |
removeFillchar(byte[] key) |
int |
size()
ask for the number of entries
|
java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> |
values() |
private final BLOB blob
private final ARC<byte[],java.util.Map<java.lang.String,java.lang.String>> cache
private final char fillchar
private static final GenericFormatter my_SHORT_SECOND_FORMATTER
public static final byte[] POISON_QUEUE_ENTRY
public MapHeap(java.io.File heapFile, int keylength, ByteOrder ordering, int buffermax, int cachesize, char fillchar) throws java.io.IOException
java.io.IOException
public int keylength()
public ByteOrder ordering()
public void clear()
clear
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
java.io.IOException
private static java.lang.String map2string(java.util.Map<java.lang.String,java.lang.String> map, java.lang.String comment)
private static java.util.Map<java.lang.String,java.lang.String> bytes2map(byte[] b) throws java.io.IOException, SpaceExceededException
java.io.IOException
SpaceExceededException
public void insert(byte[] key, java.util.Map<java.lang.String,java.lang.String> newMap) throws java.io.IOException, SpaceExceededException
key
- the primary keynewMap
- java.io.IOException
SpaceExceededException
public java.util.Map<java.lang.String,java.lang.String> put(byte[] key, java.util.Map<java.lang.String,java.lang.String> newMap)
put
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public void delete(byte[] key) throws java.io.IOException
key
- the primary keyjava.io.IOException
public java.util.Map<java.lang.String,java.lang.String> remove(java.lang.Object key)
remove
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public boolean containsKey(java.lang.Object k)
containsKey
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
key
- the primary keyjava.io.IOException
public java.util.Map<java.lang.String,java.lang.String> get(byte[] key) throws java.io.IOException, SpaceExceededException
key
- the primary keyjava.io.IOException
SpaceExceededException
public java.util.Map<java.lang.String,java.lang.String> get(java.lang.Object key)
get
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
private byte[] normalizeKey(byte[] key)
private byte[] removeFillchar(byte[] key)
protected java.util.Map<java.lang.String,java.lang.String> get(byte[] key, boolean storeCache) throws java.io.IOException, SpaceExceededException
java.io.IOException
SpaceExceededException
public CloneableIterator<byte[]> keys(boolean up, boolean rotating) throws java.io.IOException
up
- rotating
- java.io.IOException
public CloneableIterator<byte[]> keys(boolean up, boolean rotating, byte[] firstKey, byte[] secondKey) throws java.io.IOException
up
- rotating
- firstKey
- secondKey
- java.io.IOException
public CloneableIterator<byte[]> keys(boolean up, byte[] firstKey) throws java.io.IOException
java.io.IOException
public java.util.Iterator<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> entries(boolean up, boolean rotating) throws java.io.IOException
java.io.IOException
public java.util.Iterator<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> entries(boolean up, boolean rotating, byte[] firstKey, byte[] secondKey) throws java.io.IOException
java.io.IOException
public int size()
size
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public boolean isEmpty()
isEmpty
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public void close()
public void finalize()
finalize
in class java.lang.Object
public void putAll(java.util.Map<? extends byte[],? extends java.util.Map<java.lang.String,java.lang.String>> map)
putAll
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public java.util.Set<byte[]> keySet()
keySet
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public java.util.concurrent.BlockingQueue<byte[]> keyQueue(int size)
public java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> values()
values
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public java.util.Set<java.util.Map.Entry<byte[],java.util.Map<java.lang.String,java.lang.String>>> entrySet()
entrySet
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public boolean containsValue(java.lang.Object value)
containsValue
in interface java.util.Map<byte[],java.util.Map<java.lang.String,java.lang.String>>
public static void main(java.lang.String[] args)