Class NoOpBlobStore
- java.lang.Object
-
- org.opennms.features.distributed.kvstore.api.AbstractKeyValueStore<T>
-
- org.opennms.features.distributed.kvstore.api.AbstractAsyncKeyValueStore<byte[]>
-
- org.opennms.features.distributed.kvstore.blob.noop.NoOpBlobStore
-
- All Implemented Interfaces:
BlobStore
,KeyValueStore<byte[]>
public class NoOpBlobStore extends AbstractAsyncKeyValueStore<byte[]> implements BlobStore
Akey value store
that does nothing. Since no puts result in any operation, all retrieves will always return an emptyoptional
. This implies any clients using this will also be holding onto their own local copies of the key-values since persisting to this won't store them.
-
-
Constructor Summary
Constructors Constructor Description NoOpBlobStore()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(KeyValueStore<byte[]> listener)
void
delete(java.lang.String key, java.lang.String context)
java.util.Map<java.lang.String,byte[]>
enumerateContext(java.lang.String context)
java.util.Optional<byte[]>
get(java.lang.String key, java.lang.String context)
java.util.Optional<java.util.Optional<byte[]>>
getIfStale(java.lang.String key, java.lang.String context, long timestamp)
static BlobStore
getInstance()
java.util.OptionalLong
getLastUpdated(java.lang.String key, java.lang.String context)
java.lang.String
getName()
long
put(java.lang.String key, byte[] value, java.lang.String context, java.lang.Integer ttlInSeconds)
Put a value with a suggested time-to-live after which the value should be expired and removed from the store.-
Methods inherited from class org.opennms.features.distributed.kvstore.api.AbstractAsyncKeyValueStore
deleteAsync, enumerateContextAsync, getAsync, getIfStaleAsync, getLastUpdatedAsync, putAsync, truncateContextAsync
-
Methods inherited from class org.opennms.features.distributed.kvstore.api.AbstractKeyValueStore
put, putAsync, truncateContext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.opennms.features.distributed.kvstore.api.KeyValueStore
deleteAsync, enumerateContextAsync, getAsync, getIfStaleAsync, getLastUpdatedAsync, put, putAsync, putAsync, truncateContext, truncateContextAsync
-
-
-
-
Method Detail
-
getInstance
public static BlobStore getInstance()
-
put
public long put(java.lang.String key, byte[] value, java.lang.String context, java.lang.Integer ttlInSeconds)
Description copied from interface:KeyValueStore
Put a value with a suggested time-to-live after which the value should be expired and removed from the store.Records are expired on a best effort basis and depending on the implementation it is possible to get an expired record.
- Specified by:
put
in interfaceKeyValueStore<byte[]>
context
- a context used to differentiate between keys with the same name (forms a compound key)ttlInSeconds
- the time to live in seconds for this key or no ttl if null- Returns:
- the timestamp the value was persisted with
-
get
public java.util.Optional<byte[]> get(java.lang.String key, java.lang.String context)
- Specified by:
get
in interfaceKeyValueStore<byte[]>
context
- a context used to differentiate between keys with the same name (forms a compound key)- Returns:
- an optional containing the value if present or empty if the key did not exist
-
getIfStale
public java.util.Optional<java.util.Optional<byte[]>> getIfStale(java.lang.String key, java.lang.String context, long timestamp)
- Specified by:
getIfStale
in interfaceKeyValueStore<byte[]>
context
- a context used to differentiate between keys with the same name (forms a compound key)timestamp
- the timestamp of the last known state such that if an record with a more recent timestamp is found the provided timestamp will be considered stale and the new record will be returned- Returns:
- an optional that will be empty if the key was not found or will contain another optional that will be empty if not stale or contain the value if stale
-
getLastUpdated
public java.util.OptionalLong getLastUpdated(java.lang.String key, java.lang.String context)
- Specified by:
getLastUpdated
in interfaceKeyValueStore<byte[]>
context
- a context used to differentiate between keys with the same name (forms a compound key)- Returns:
- an optional containing the timestamp the key's value was last updated or empty if the key did not exist
-
addListener
public void addListener(KeyValueStore<byte[]> listener)
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceKeyValueStore<byte[]>
- Returns:
- the name of the backing implementation
-
enumerateContext
public java.util.Map<java.lang.String,byte[]> enumerateContext(java.lang.String context)
- Specified by:
enumerateContext
in interfaceKeyValueStore<byte[]>
- Parameters:
context
- a context used to differentiate between keys with the same name (forms a compound key)- Returns:
- a map of all the records matching the given context where the map's key is the record's key and the map's value is the records value
-
delete
public void delete(java.lang.String key, java.lang.String context)
- Specified by:
delete
in interfaceKeyValueStore<byte[]>
context
- a context used to differentiate between keys with the same name (forms a compound key)
-
-