public class DB implements ConcurrencyAware
A database with easy access to named maps and other collections.
Modifier and Type | Class and Description |
---|---|
static class |
DB.AtomicBooleanMaker |
static class |
DB.AtomicIntegerMaker |
static class |
DB.AtomicLongMaker |
static class |
DB.AtomicStringMaker |
static class |
DB.AtomicVarMaker<E> |
static class |
DB.CatVal |
static class |
DB.Companion |
static class |
DB.HashMapMaker<K,V> |
static class |
DB.HashSetMaker<E> |
static class |
DB.IndexTreeListMaker<E> |
static class |
DB.IndexTreeLongLongMapMaker |
static class |
DB.Keys |
static class |
DB.Maker<E> |
static class |
DB.TreeMapMaker<K,V> |
static class |
DB.TreeMapSink<K,V> |
static class |
DB.TreeSetMaker<E> |
ConcurrencyAware.DefaultImpls
Modifier and Type | Field and Description |
---|---|
static DB.Companion |
Companion |
Constructor and Description |
---|
DB(Store store,
boolean storeOpened,
boolean isThreadSafe,
java.lang.ClassLoader classLoader,
int shutdownHook)
A database with easy access to named maps and other collections.
|
Modifier and Type | Method and Description |
---|---|
DB.AtomicBooleanMaker |
atomicBoolean(java.lang.String name) |
DB.AtomicBooleanMaker |
atomicBoolean(java.lang.String name,
boolean value) |
DB.AtomicIntegerMaker |
atomicInteger(java.lang.String name) |
DB.AtomicIntegerMaker |
atomicInteger(java.lang.String name,
int value) |
DB.AtomicLongMaker |
atomicLong(java.lang.String name) |
DB.AtomicLongMaker |
atomicLong(java.lang.String name,
long value) |
DB.AtomicStringMaker |
atomicString(java.lang.String name) |
DB.AtomicStringMaker |
atomicString(java.lang.String name,
java.lang.String value) |
DB.AtomicVarMaker<java.lang.Object> |
atomicVar(java.lang.String name) |
<E> DB.AtomicVarMaker<E> |
atomicVar(java.lang.String name,
Serializer<E> serializer) |
<E> DB.AtomicVarMaker<E> |
atomicVar(java.lang.String name,
Serializer<E> serializer,
E value) |
void |
checkName(java.lang.String name) |
void |
checkNotClosed() |
void |
checkThreadSafe()
checks all subcomponents, if this component is really thread safe, and throws an exception if not thread safe
|
void |
close() |
void |
commit() |
void |
defaultSerializerRegisterClass(java.lang.Class<?> clazz)
Register Class with default POJO serializer. Class structure will be stored in store,
and will save space for collections which do not use specialized serializer.
|
boolean |
exists(java.lang.String name) |
<E> E |
get(java.lang.String name) |
java.util.Map<java.lang.String,java.lang.Object> |
getAll() |
java.lang.Iterable<java.lang.String> |
getAllNames() |
Serializer<kotlin.Array[]> |
getClassInfoSerializer() |
java.lang.ClassLoader |
getClassLoader() |
GroupSerializerObjectArray<java.lang.Object> |
getDefaultSerializer()
Default serializer used if collection does not specify specialized serializer.
It uses Elsa Serializer.
|
java.util.Set<java.util.concurrent.ExecutorService> |
getExecutors()
List of executors associated with this database. Those will be terminated on close()
|
java.util.concurrent.locks.ReentrantReadWriteLock |
getLock() |
java.lang.String |
getNameForObject(java.lang.Object e) |
NonExistentClass |
getNamesInstanciated()
Already loaded named collections. Values are weakly referenced. We need singletons for locking
|
int |
getShutdownHook()
type of shutdown hook,
|
Store |
getStore() |
boolean |
getStoreOpened()
True if store existed before and was opened,
|
DB.HashMapMaker<?,?> |
hashMap(java.lang.String name) |
<K,V> DB.HashMapMaker<K,V> |
hashMap(java.lang.String name,
Serializer<K> keySerializer,
Serializer<V> valueSerializer) |
DB.HashSetMaker<?> |
hashSet(java.lang.String name) |
<E> DB.HashSetMaker<E> |
hashSet(java.lang.String name,
Serializer<E> serializer) |
<E> DB.IndexTreeListMaker<E> |
indexTreeList(java.lang.String name,
Serializer<E> serializer) |
DB.IndexTreeListMaker<java.lang.Object> |
indexTreeList(java.lang.String name) |
boolean |
isClosed() |
boolean |
isThreadSafe()
returns true if this is configured to be thread safe
|
java.lang.String |
nameCatalogGet(java.lang.String name) |
<E> E |
nameCatalogGetClass(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog,
java.lang.String key) |
java.util.SortedMap<java.lang.String,java.lang.String> |
nameCatalogLoad() |
java.util.SortedMap<java.lang.String,java.lang.String> |
nameCatalogLoadLocked() |
java.util.Map<java.lang.String,java.lang.String> |
nameCatalogParamsFor(java.lang.String name) |
void |
nameCatalogPutClass(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog,
java.lang.String key,
java.lang.Object obj) |
void |
nameCatalogSave(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog) |
void |
nameCatalogSaveLocked(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog) |
java.lang.Iterable<java.lang.String> |
nameCatalogVerifyGetMessages()
verifies name catalog is valid (all parameters are known and have required values). If there are problems, it return list of messages
|
void |
rollback() |
void |
setNamesInstanciated(NonExistentClass p)
Already loaded named collections. Values are weakly referenced. We need singletons for locking
|
DB.TreeMapMaker<?,?> |
treeMap(java.lang.String name) |
<K,V> DB.TreeMapMaker<K,V> |
treeMap(java.lang.String name,
GroupSerializer<K> keySerializer,
GroupSerializer<V> valueSerializer) |
DB.TreeSetMaker<?> |
treeSet(java.lang.String name) |
<E> DB.TreeSetMaker<E> |
treeSet(java.lang.String name,
GroupSerializer<E> serializer) |
checkThreadSafe, isThreadSafe
public static DB.Companion Companion
public DB(Store store, boolean storeOpened, boolean isThreadSafe, java.lang.ClassLoader classLoader, int shutdownHook)
A database with easy access to named maps and other collections.
store
- Stores all underlying datastoreOpened
- True if store existed before and was opened,false if store was created and is completely emptyisThreadSafe
- returns true if this is configured to be thread safeshutdownHook
- type of shutdown hook,0 is disabled,1 is hard ref,2 is weak refpublic Store getStore()
public java.util.concurrent.locks.ReentrantReadWriteLock getLock()
public void checkNotClosed()
public NonExistentClass getNamesInstanciated()
Already loaded named collections. Values are weakly referenced. We need singletons for locking
public void setNamesInstanciated(NonExistentClass p)
Already loaded named collections. Values are weakly referenced. We need singletons for locking
public GroupSerializerObjectArray<java.lang.Object> getDefaultSerializer()
Default serializer used if collection does not specify specialized serializer. It uses Elsa Serializer.
public Serializer<kotlin.Array[]> getClassInfoSerializer()
public java.util.Set<java.util.concurrent.ExecutorService> getExecutors()
List of executors associated with this database. Those will be terminated on close()
public java.util.SortedMap<java.lang.String,java.lang.String> nameCatalogLoad()
public java.util.SortedMap<java.lang.String,java.lang.String> nameCatalogLoadLocked()
public void nameCatalogSave(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog)
public void nameCatalogSaveLocked(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog)
public void checkName(java.lang.String name)
public java.lang.String nameCatalogGet(java.lang.String name)
public void nameCatalogPutClass(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog, java.lang.String key, java.lang.Object obj)
public <E> E nameCatalogGetClass(java.util.SortedMap<java.lang.String,java.lang.String> nameCatalog, java.lang.String key)
public java.util.Map<java.lang.String,java.lang.String> nameCatalogParamsFor(java.lang.String name)
public void commit()
public void rollback()
public boolean isClosed()
public void close()
public <E> E get(java.lang.String name)
public java.lang.String getNameForObject(java.lang.Object e)
public boolean exists(java.lang.String name)
public java.lang.Iterable<java.lang.String> getAllNames()
public java.util.Map<java.lang.String,java.lang.Object> getAll()
public DB.HashMapMaker<?,?> hashMap(java.lang.String name)
public <K,V> DB.HashMapMaker<K,V> hashMap(java.lang.String name, Serializer<K> keySerializer, Serializer<V> valueSerializer)
public DB.TreeMapMaker<?,?> treeMap(java.lang.String name)
public <K,V> DB.TreeMapMaker<K,V> treeMap(java.lang.String name, GroupSerializer<K> keySerializer, GroupSerializer<V> valueSerializer)
public DB.TreeSetMaker<?> treeSet(java.lang.String name)
public <E> DB.TreeSetMaker<E> treeSet(java.lang.String name, GroupSerializer<E> serializer)
public DB.HashSetMaker<?> hashSet(java.lang.String name)
public <E> DB.HashSetMaker<E> hashSet(java.lang.String name, Serializer<E> serializer)
public DB.AtomicIntegerMaker atomicInteger(java.lang.String name)
public DB.AtomicIntegerMaker atomicInteger(java.lang.String name, int value)
public DB.AtomicLongMaker atomicLong(java.lang.String name)
public DB.AtomicLongMaker atomicLong(java.lang.String name, long value)
public DB.AtomicBooleanMaker atomicBoolean(java.lang.String name)
public DB.AtomicBooleanMaker atomicBoolean(java.lang.String name, boolean value)
public DB.AtomicStringMaker atomicString(java.lang.String name)
public DB.AtomicStringMaker atomicString(java.lang.String name, java.lang.String value)
public DB.AtomicVarMaker<java.lang.Object> atomicVar(java.lang.String name)
public <E> DB.AtomicVarMaker<E> atomicVar(java.lang.String name, Serializer<E> serializer)
public <E> DB.AtomicVarMaker<E> atomicVar(java.lang.String name, Serializer<E> serializer, E value)
public <E> DB.IndexTreeListMaker<E> indexTreeList(java.lang.String name, Serializer<E> serializer)
public DB.IndexTreeListMaker<java.lang.Object> indexTreeList(java.lang.String name)
public void checkThreadSafe()
checks all subcomponents, if this component is really thread safe, and throws an exception if not thread safe
public void defaultSerializerRegisterClass(java.lang.Class<?> clazz)
Register Class with default POJO serializer. Class structure will be stored in store, and will save space for collections which do not use specialized serializer.
public java.lang.Iterable<java.lang.String> nameCatalogVerifyGetMessages()
verifies name catalog is valid (all parameters are known and have required values). If there are problems, it return list of messages
public boolean getStoreOpened()
True if store existed before and was opened,
false if store was created and is completely empty
public boolean isThreadSafe()
returns true if this is configured to be thread safe
public java.lang.ClassLoader getClassLoader()
public int getShutdownHook()
type of shutdown hook,
0 is disabled,1 is hard ref,2 is weak ref