From bee5dd259a4438d45ecd1bcc26dfba12875236d6 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 26 Jun 2018 11:03:48 +0200 Subject: initial commit --- .../eaaf/core/api/storage/ITransactionStorage.java | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/storage/ITransactionStorage.java (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/storage/ITransactionStorage.java') diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/storage/ITransactionStorage.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/storage/ITransactionStorage.java new file mode 100644 index 00000000..41c55148 --- /dev/null +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/storage/ITransactionStorage.java @@ -0,0 +1,114 @@ +/******************************************************************************* + *******************************************************************************/ +package at.gv.egiz.eaaf.core.api.storage; + +import java.util.Date; +import java.util.List; + +import at.gv.egiz.eaaf.core.exceptions.EAAFException; +import at.gv.egiz.eaaf.core.exceptions.EAAFStorageException; + +/** + * @author tlenz + * + */ +public interface ITransactionStorage { + + /** + * Check if transaction storage contains a data object with a specific key + * + * @param key Key, which identifies a data object + * @return true if key is found, otherwise false + */ + public boolean containsKey(String key); + + /** + * Store a data object with a key to transaction storage + * + * @param key Id which identifiers the data object + * @param value Data object which should be stored. + * This data must implement the java.io.Serializable interface + * @param timeout_ms Defines the period of time a data object is kept within the storage + * @throws EAAFStorageException In case of store operation failed + */ + public void put(String key, Object value, int timeout_ms) throws EAAFException; + + /** + * Get a data object from transaction storage + * + * @param key key Id which identifiers the data object + * @return The transaction-data object, or null + * @throws EAAFStorageException In case of load operation failed + */ + public Object get(String key) throws EAAFException; + + /** + * Get a data object from transaction storage + * + * @param key Id which identifiers the data object + * @param clazz The class type which is stored with this key + * @return The transaction-data object from type class, or null + * @throws EAAFStorageException In case of load operation failed + */ + public T get(String key, final Class clazz) throws EAAFException; + + /** + * Get a data object from transaction storage + * + * @param key Id which identifiers the data object + * @param clazz The class type which is stored with this key + * @param Data-object timeout in [ms] + * @return The transaction-data object from type class, or null + * @throws EAAFStorageException In case of load operation failed + */ + public T get(String key, final Class clazz, long dataTimeOut) throws EAAFException; + + + /** + * Change the key of a data object and store it under the new key + * + * @param oldKey Old key of the data object + * @param newKey New key, which should be used to store the data object + * @param value Data object which should be stored + * @throws EAAFStorageException In case of store operation failed + */ + public void changeKey(String oldKey, String newKey, Object value) throws EAAFException; + + /** + * Remove a data object from transaction storage + * + * @param key Id which identifiers the data object + */ + public void remove(String key); + + /** + * Get all entries for Clean-up the transaction storage + * + * @param now Current time + * @param dataTimeOut Data-object timeout in [ms] + * @return List of entry-keys which as a timeout + */ + public List clean(Date now, long dataTimeOut); + + + /** + * Get a raw object from storage by using this key + * + * @param key + * @return + * @throws EAAFException + */ + public Object getRaw(String key) throws EAAFException; + + + /** + * Set a raw object to storage + * + * @param key + * @param element + * @throws EAAFException + */ + public void putRaw(String key, Object element) throws EAAFException; + + +} -- cgit v1.2.3