Package net.morimekta.providence.storage
Class DirectoryMessageListStore<K,M extends PMessage<M,F>,F extends PField>
- java.lang.Object
-
- net.morimekta.providence.storage.DirectoryMessageListStore<K,M,F>
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,MessageListReadOnlyStore<K,M,F>
,MessageListStore<K,M,F>
,ReadOnlyStore<K,java.util.List<M>>
,ReadWriteStore<K,java.util.List<M>>
public class DirectoryMessageListStore<K,M extends PMessage<M,F>,F extends PField> extends java.lang.Object implements MessageListStore<K,M,F>, java.io.Closeable
Simple file-based storage of lists of providence messages that keeps an in-memory key index, a message cache, and stores message lists to individual files in a single directly.Note that the directory store is not parallel compatible between instances, as all of them would be able to read, write etc all the files all the time.
TL;DR Each directory can only have one
DirectoryMessageListStore
instance active at a time.
-
-
Constructor Summary
Constructors Constructor Description DirectoryMessageListStore(java.io.File directory, java.util.function.Function<K,java.lang.String> keyBuilder, java.util.function.Function<java.lang.String,K> keyParser, PMessageDescriptor<M,F> descriptor, Serializer serializer)
DirectoryMessageListStore(java.nio.file.Path directory, java.util.function.Function<K,java.lang.String> keyBuilder, java.util.function.Function<java.lang.String,K> keyParser, PMessageDescriptor<M,F> descriptor, Serializer serializer)
DirectoryMessageListStore(FileManager<K> manager, PMessageDescriptor<M,F> descriptor, Serializer serializer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
boolean
containsKey(K key)
java.util.Map<K,java.util.List<M>>
getAll(java.util.Collection<K> keys)
Look up a set of keys from the storage.java.util.Collection<K>
keys()
Get a collection of all the keys in the store.java.util.Map<K,java.util.List<M>>
putAll(java.util.Map<K,java.util.List<M>> values)
java.util.Map<K,java.util.List<M>>
removeAll(java.util.Collection<K> keys)
Remove the values for the given keys.-
Methods inherited from interface net.morimekta.providence.storage.MessageListReadOnlyStore
getAllBuilders, getBuilders
-
Methods inherited from interface net.morimekta.providence.storage.MessageListStore
putAllBuilders, putBuilders
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.morimekta.providence.storage.ReadOnlyStore
get
-
Methods inherited from interface net.morimekta.providence.storage.ReadWriteStore
put, remove
-
-
-
-
Constructor Detail
-
DirectoryMessageListStore
public DirectoryMessageListStore(@Nonnull java.io.File directory, @Nonnull java.util.function.Function<K,java.lang.String> keyBuilder, @Nonnull java.util.function.Function<java.lang.String,K> keyParser, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
DirectoryMessageListStore
public DirectoryMessageListStore(@Nonnull java.nio.file.Path directory, @Nonnull java.util.function.Function<K,java.lang.String> keyBuilder, @Nonnull java.util.function.Function<java.lang.String,K> keyParser, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
DirectoryMessageListStore
public DirectoryMessageListStore(@Nonnull FileManager<K> manager, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
-
Method Detail
-
containsKey
public boolean containsKey(@Nonnull K key)
- Specified by:
containsKey
in interfaceReadOnlyStore<K,M extends PMessage<M,F>>
- Parameters:
key
- The key to look up.- Returns:
- True if the key was contained in the map.
-
keys
@Nonnull public java.util.Collection<K> keys()
Description copied from interface:ReadOnlyStore
Get a collection of all the keys in the store.
-
getAll
@Nonnull public java.util.Map<K,java.util.List<M>> getAll(@Nonnull java.util.Collection<K> keys)
Description copied from interface:ReadOnlyStore
Look up a set of keys from the storage.
-
putAll
@Nonnull public java.util.Map<K,java.util.List<M>> putAll(@Nonnull java.util.Map<K,java.util.List<M>> values)
-
removeAll
@Nonnull public java.util.Map<K,java.util.List<M>> removeAll(java.util.Collection<K> keys)
Description copied from interface:ReadWriteStore
Remove the values for the given keys.
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
-