From 8102dbc8b291fe85fb66bbc0563c6c20277a7bfd Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 16 Oct 2023 08:28:00 -0500 Subject: [PATCH] Add remove method to StateProviderInterface --- .../core/state/InMemoryStateProvider.java | 11 +++++++++++ .../core/state/StateProviderInterface.java | 6 ++++++ .../core/state/TempFileStateProvider.java | 16 ++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java index 60fc22ed..73f54d12 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java @@ -90,4 +90,15 @@ public class InMemoryStateProvider implements StateProviderInterface } } + + + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + @Override + public void remove(AbstractStateKey key) + { + map.remove(key); + } + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java index b2196746..1c5415bf 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java @@ -52,4 +52,10 @@ public interface StateProviderInterface ** Get a block of data, under a key, from the state store. *******************************************************************************/ Optional get(Class type, AbstractStateKey key); + + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + void remove(AbstractStateKey key); + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java index b7f23768..b9f6ed5e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java @@ -30,6 +30,7 @@ import java.util.Optional; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.utils.JsonUtils; import org.apache.commons.io.FileUtils; +import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair; /******************************************************************************* @@ -110,6 +111,21 @@ public class TempFileStateProvider implements StateProviderInterface + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + @Override + public void remove(AbstractStateKey key) + { + File file = getFile(key); + if(!file.delete()) + { + LOG.warn("Error deleting state-providing tempFile", logPair("file", file.getAbsolutePath())); + } + } + + + /******************************************************************************* ** Get the file referenced by a key *******************************************************************************/