public class DB
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
class |
DB.BTreeMapMaker |
class |
DB.BTreeSetMaker |
class |
DB.HTreeMapMaker |
class |
DB.HTreeSetMaker |
protected static class |
DB.IdentityWrapper |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.SortedMap<java.lang.String,java.lang.Object> |
catalog
view over named records
|
protected Engine |
engine
Engine which provides persistence for this DB
|
protected java.util.Map<java.lang.String,java.lang.ref.WeakReference<?>> |
namesInstanciated
already loaded named collections.
|
protected java.util.Map<DB.IdentityWrapper,java.lang.String> |
namesLookup |
protected boolean |
strictDBGet |
| Constructor and Description |
|---|
DB(Engine engine)
Construct new DB.
|
DB(Engine engine,
boolean strictDBGet,
boolean disableLocks) |
| Modifier and Type | Method and Description |
|---|---|
<A> A |
catGet(java.lang.String name) |
<A> A |
catGet(java.lang.String name,
A init) |
<A> A |
catPut(java.lang.String name,
A value) |
<A> A |
catPut(java.lang.String name,
A value,
A retValueIfNull) |
void |
checkNameNotExists(java.lang.String name)
Checks that object with given name does not exist yet.
|
void |
checkNotClosed() |
void |
checkShouldCreate(java.lang.String name) |
void |
checkType(java.lang.String type,
java.lang.String expected) |
void |
close()
Closes database.
|
void |
commit()
Commit changes made on collections loaded by this DB
|
void |
compact()
Perform storage maintenance.
|
Atomic.Boolean |
createAtomicBoolean(java.lang.String name,
boolean initValue) |
Atomic.Integer |
createAtomicInteger(java.lang.String name,
int initValue) |
Atomic.Long |
createAtomicLong(java.lang.String name,
long initValue) |
Atomic.String |
createAtomicString(java.lang.String name,
java.lang.String initValue) |
<E> Atomic.Var<E> |
createAtomicVar(java.lang.String name,
E initValue,
Serializer<E> serializer) |
<E> java.util.concurrent.BlockingQueue<E> |
createCircularQueue(java.lang.String name,
Serializer<E> serializer,
long size) |
protected <K,V> HTreeMap<K,V> |
createHashMap(DB.HTreeMapMaker m)
Creates new HashMap with more specific arguments
|
DB.HTreeMapMaker |
createHashMap(java.lang.String name)
Returns new builder for HashMap with given name
|
protected <K> java.util.Set<K> |
createHashSet(DB.HTreeSetMaker m) |
DB.HTreeSetMaker |
createHashSet(java.lang.String name)
Creates new HashSet
|
<E> java.util.concurrent.BlockingQueue<E> |
createQueue(java.lang.String name,
Serializer<E> serializer,
boolean useLocks) |
<E> java.util.concurrent.BlockingQueue<E> |
createStack(java.lang.String name,
Serializer<E> serializer,
boolean useLocks) |
protected <K,V> BTreeMap<K,V> |
createTreeMap(DB.BTreeMapMaker m) |
DB.BTreeMapMaker |
createTreeMap(java.lang.String name)
Returns new builder for TreeMap with given name
|
<K> java.util.NavigableSet<K> |
createTreeSet(DB.BTreeSetMaker m) |
DB.BTreeSetMaker |
createTreeSet(java.lang.String name)
Creates new TreeSet.
|
void |
delete(java.lang.String name)
delete record/collection with given name
|
boolean |
exists(java.lang.String name) |
protected <K> BTreeKeySerializer<K> |
fillNulls(BTreeKeySerializer<K> keySerializer)
Replace nulls in tuple serializers with default (Comparable) values
|
<E> E |
get(java.lang.String name)
return record with given name or null if name does not exist
|
java.util.Map<java.lang.String,java.lang.Object> |
getAll()
return map of all named collections/records
|
Atomic.Boolean |
getAtomicBoolean(java.lang.String name) |
Atomic.Integer |
getAtomicInteger(java.lang.String name) |
Atomic.Long |
getAtomicLong(java.lang.String name) |
Atomic.String |
getAtomicString(java.lang.String name) |
<E> Atomic.Var<E> |
getAtomicVar(java.lang.String name)
Gets existing Atomic.Var.
|
java.util.SortedMap<java.lang.String,java.lang.Object> |
getCatalog()
Get Name Catalog.
|
<E> java.util.concurrent.BlockingQueue<E> |
getCircularQueue(java.lang.String name) |
Serializer |
getDefaultSerializer() |
Engine |
getEngine() |
java.lang.Object |
getFromWeakCollection(java.lang.String name)
All collections are weakly referenced to prevent two instances of the same collection in memory.
|
<K,V> HTreeMap<K,V> |
getHashMap(java.lang.String name)
Opens existing or creates new Hash Tree Map.
|
<K,V> HTreeMap<K,V> |
getHashMap(java.lang.String name,
Fun.Function1<V,K> valueCreator)
Opens existing or creates new Hash Tree Map.
|
<K> java.util.Set<K> |
getHashSet(java.lang.String name)
Opens existing or creates new Hash Tree Set.
|
java.lang.String |
getNameForObject(java.lang.Object obj)
returns name for this object, if it has name and was instanciated by this DB
|
<E> java.util.concurrent.BlockingQueue<E> |
getQueue(java.lang.String name) |
<E> java.util.concurrent.BlockingQueue<E> |
getStack(java.lang.String name) |
<K,V> BTreeMap<K,V> |
getTreeMap(java.lang.String name)
Opens existing or creates new B-linked-tree Map.
|
<K> java.util.NavigableSet<K> |
getTreeSet(java.lang.String name)
Opens existing or creates new B-linked-tree Set.
|
boolean |
isClosed() |
<V> V |
namedPut(java.lang.String name,
java.lang.Object ret) |
protected void |
reinit() |
void |
rename(java.lang.String oldName,
java.lang.String newName)
rename named record into newName
|
void |
rollback()
Rollback changes made on collections loaded by this DB
|
DB |
snapshot()
Make readonly snapshot view of DB and all of its collection
Collections loaded by this instance are not affected (are still mutable).
|
protected final boolean strictDBGet
protected Engine engine
protected java.util.Map<java.lang.String,java.lang.ref.WeakReference<?>> namesInstanciated
protected java.util.Map<DB.IdentityWrapper,java.lang.String> namesLookup
protected java.util.SortedMap<java.lang.String,java.lang.Object> catalog
public DB(Engine engine)
Engine which does the real work.engine - public DB(Engine engine, boolean strictDBGet, boolean disableLocks)
protected void reinit()
public <A> A catGet(java.lang.String name,
A init)
public <A> A catGet(java.lang.String name)
public <A> A catPut(java.lang.String name,
A value)
public <A> A catPut(java.lang.String name,
A value,
A retValueIfNull)
public java.lang.String getNameForObject(java.lang.Object obj)
public <K,V> HTreeMap<K,V> getHashMap(java.lang.String name)
name - of the mappublic <K,V> HTreeMap<K,V> getHashMap(java.lang.String name, Fun.Function1<V,K> valueCreator)
name - of mapvalueCreator - if value is not found, new is created and placed into map.public <V> V namedPut(java.lang.String name,
java.lang.Object ret)
public DB.HTreeMapMaker createHashMap(java.lang.String name)
name - of map to createjava.lang.IllegalArgumentException - if name is already usedprotected <K,V> HTreeMap<K,V> createHashMap(DB.HTreeMapMaker m)
java.lang.IllegalArgumentException - if name is already usedpublic <K> java.util.Set<K> getHashSet(java.lang.String name)
name - of the Setpublic DB.HTreeSetMaker createHashSet(java.lang.String name)
name - of set to createprotected <K> java.util.Set<K> createHashSet(DB.HTreeSetMaker m)
public <K,V> BTreeMap<K,V> getTreeMap(java.lang.String name)
name - of mappublic DB.BTreeMapMaker createTreeMap(java.lang.String name)
name - of map to createjava.lang.IllegalArgumentException - if name is already usedprotected <K,V> BTreeMap<K,V> createTreeMap(DB.BTreeMapMaker m)
protected <K> BTreeKeySerializer<K> fillNulls(BTreeKeySerializer<K> keySerializer)
keySerializer - with nullspublic java.util.SortedMap<java.lang.String,java.lang.Object> getCatalog()
public <K> java.util.NavigableSet<K> getTreeSet(java.lang.String name)
name - of setpublic DB.BTreeSetMaker createTreeSet(java.lang.String name)
name - of set to createjava.lang.IllegalArgumentException - if name is already usedpublic <K> java.util.NavigableSet<K> createTreeSet(DB.BTreeSetMaker m)
public <E> java.util.concurrent.BlockingQueue<E> getQueue(java.lang.String name)
public <E> java.util.concurrent.BlockingQueue<E> createQueue(java.lang.String name,
Serializer<E> serializer,
boolean useLocks)
public <E> java.util.concurrent.BlockingQueue<E> getStack(java.lang.String name)
public <E> java.util.concurrent.BlockingQueue<E> createStack(java.lang.String name,
Serializer<E> serializer,
boolean useLocks)
public <E> java.util.concurrent.BlockingQueue<E> getCircularQueue(java.lang.String name)
public <E> java.util.concurrent.BlockingQueue<E> createCircularQueue(java.lang.String name,
Serializer<E> serializer,
long size)
public Atomic.Long createAtomicLong(java.lang.String name, long initValue)
public Atomic.Long getAtomicLong(java.lang.String name)
public Atomic.Integer createAtomicInteger(java.lang.String name, int initValue)
public Atomic.Integer getAtomicInteger(java.lang.String name)
public Atomic.Boolean createAtomicBoolean(java.lang.String name, boolean initValue)
public Atomic.Boolean getAtomicBoolean(java.lang.String name)
public void checkShouldCreate(java.lang.String name)
public Atomic.String createAtomicString(java.lang.String name, java.lang.String initValue)
public Atomic.String getAtomicString(java.lang.String name)
public <E> Atomic.Var<E> createAtomicVar(java.lang.String name, E initValue, Serializer<E> serializer)
public <E> Atomic.Var<E> getAtomicVar(java.lang.String name)
""E - type used in atomi varname - of atomic varpublic <E> E get(java.lang.String name)
public boolean exists(java.lang.String name)
public void delete(java.lang.String name)
public java.util.Map<java.lang.String,java.lang.Object> getAll()
public void rename(java.lang.String oldName,
java.lang.String newName)
oldName - current name of record/collectionnewName - new name of record/collectionjava.util.NoSuchElementException - if oldName does not existpublic void checkNameNotExists(java.lang.String name)
name - to checkjava.lang.IllegalArgumentException - if name is already usedpublic void close()
public java.lang.Object getFromWeakCollection(java.lang.String name)
public void checkNotClosed()
public boolean isClosed()
public void commit()
Engine.commit()public void rollback()
Engine.rollback()public void compact()
public DB snapshot()
public Serializer getDefaultSerializer()
public Engine getEngine()
public void checkType(java.lang.String type,
java.lang.String expected)