public class MongoDBKeyValueStore extends AbstractKeyValueStoreProvider
The following configuration properties are available:
Modifier and Type | Field and Description |
---|---|
protected com.mongodb.client.MongoCollection<org.bson.Document> |
coll |
static String |
COLLECTION_DEFAULT |
static String |
COLLECTION_PROP |
static String |
ID_KEY |
static String |
KEYVALUE_CONNECTION_ID |
protected String |
name |
static Double |
ONE |
static String |
TTL_KEY |
static String |
VALUE_KEY |
UTF_8_DECODERS
Constructor and Description |
---|
MongoDBKeyValueStore() |
Modifier and Type | Method and Description |
---|---|
protected void |
addTTL(org.bson.Document doc,
long ttl) |
void |
clear()
Clears the content of this Key/Value store provider.
|
void |
close()
Closes this Key/Value store provider.
|
boolean |
compareAndSet(String key,
byte[] expected,
byte[] value,
long ttl)
Atomically sets the value associated to the key to the given value, with the given TTL, if the current value is
the expected value.
|
protected boolean |
compareAndSet(String key,
Object expected,
Object value,
long ttl) |
boolean |
compareAndSet(String key,
String expected,
String value,
long ttl)
Atomically sets the value associated to the key to the given value, with the given TTL, if the current value is
the expected value.
|
protected void |
findByKeys(Collection<String> keys,
com.mongodb.Block<org.bson.Document> block) |
Map<String,byte[]> |
get(Collection<String> keys)
Retrieves the key/value map associated with the keys.
|
byte[] |
get(String key)
Retrieves the value associated to the key.
|
protected Date |
getDateFromTTL(long ttl) |
protected Object |
getObject(String key) |
String |
getString(String key)
Retrieves the value associated to the key.
|
Map<String,String> |
getStrings(Collection<String> keys)
Retrieves the key/value map associated with the keys.
|
void |
initialize(KeyValueStoreDescriptor descriptor)
Initializes this Key/Value store provider.
|
Stream<String> |
keyStream()
Returns a
Stream of the keys contained in this Key/Value store provider. |
void |
put(String key,
byte[] bytes,
long ttl)
Sets the value associated to the key, and a TTL.
|
protected void |
put(String key,
Object value,
long ttl) |
void |
put(String key,
String string)
Sets the value associated to the key.
|
void |
put(String key,
String string,
long ttl)
Sets the value associated to the key, and a TTL.
|
boolean |
setTTL(String key,
long ttl)
Sets the TTL for an existing key.
|
protected static Object |
toStorage(byte[] bytes) |
String |
toString() |
bytesToString, compareAndSet, compareAndSet, put, stringToBytes
public static final String KEYVALUE_CONNECTION_ID
public static final String COLLECTION_PROP
public static final String COLLECTION_DEFAULT
public static final String ID_KEY
public static final String VALUE_KEY
public static final String TTL_KEY
protected com.mongodb.client.MongoCollection<org.bson.Document> coll
public MongoDBKeyValueStore()
public void initialize(KeyValueStoreDescriptor descriptor)
KeyValueStoreProvider
descriptor
- the store provider descriptorpublic Stream<String> keyStream()
KeyValueStoreProvider
Stream
of the keys contained in this Key/Value store provider.
This operation may be slow and should only be used for management or debug purposes.
public void close()
KeyValueStoreProvider
public void clear()
KeyValueStoreProvider
public byte[] get(String key)
KeyValueStore
key
- the keynull
if there is no valuepublic String getString(String key)
KeyValueStore
getString
in interface KeyValueStore
getString
in class AbstractKeyValueStoreProvider
key
- the keynull
if there is no valuepublic Map<String,byte[]> get(Collection<String> keys)
KeyValueStore
get
in interface KeyValueStore
get
in class AbstractKeyValueStoreProvider
keys
- the keyspublic Map<String,String> getStrings(Collection<String> keys)
KeyValueStore
getStrings
in interface KeyValueStore
getStrings
in class AbstractKeyValueStoreProvider
keys
- the keysprotected void findByKeys(Collection<String> keys, com.mongodb.Block<org.bson.Document> block)
protected Date getDateFromTTL(long ttl)
public void put(String key, byte[] bytes, long ttl)
KeyValueStore
key
- the keybytes
- the value, which may be null
ttl
- the TTL, in seconds (0 for infinite)public void put(String key, String string)
KeyValueStore
put
in interface KeyValueStore
put
in class AbstractKeyValueStoreProvider
key
- the keystring
- the value, which may be null
public void put(String key, String string, long ttl)
KeyValueStore
put
in interface KeyValueStore
put
in class AbstractKeyValueStoreProvider
key
- the keystring
- the value, which may be null
ttl
- the TTL, in seconds (0 for infinite)protected void addTTL(org.bson.Document doc, long ttl)
public boolean setTTL(String key, long ttl)
KeyValueStore
key
- the keyttl
- the TTL, in seconds (0 for infinite)true
if the TTL has been set, or false
if the key does not existpublic boolean compareAndSet(String key, byte[] expected, byte[] value, long ttl)
KeyValueStore
Note value comparison is done by value and not by reference.
key
- the keyexpected
- the expected value, which may be null
value
- the updated value, which may be null
ttl
- the TTL, in seconds (0 for infinite)true
if the value was updated, or false
if not (the expected value was not found)public boolean compareAndSet(String key, String expected, String value, long ttl)
KeyValueStore
Note value comparison is done by value and not by reference.
compareAndSet
in interface KeyValueStore
compareAndSet
in class AbstractKeyValueStoreProvider
key
- the keyexpected
- the expected value, which may be null
value
- the updated value, which may be null
ttl
- the TTL, in seconds (0 for infinite)true
if the value was updated, or false
if not (the expected value was not found)protected boolean compareAndSet(String key, Object expected, Object value, long ttl)
Copyright © 2018 Nuxeo. All rights reserved.