summaryrefslogtreecommitdiff
path: root/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2019-04-23 15:00:13 +0200
committerThomas Lenz <thomas.lenz@egiz.gv.at>2019-04-23 15:00:13 +0200
commit5c1b5b863fe8d6c08cfe0749fed7ce9594827f8a (patch)
treee96cf3ae1f3ed011b0588fd7a341038484c55017 /eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api
parentf689c1e404b5cf22d17346da75a296c825a3ba03 (diff)
downloadEAAF-Components-5c1b5b863fe8d6c08cfe0749fed7ce9594827f8a.tar.gz
EAAF-Components-5c1b5b863fe8d6c08cfe0749fed7ce9594827f8a.tar.bz2
EAAF-Components-5c1b5b863fe8d6c08cfe0749fed7ce9594827f8a.zip
add different strategies for pendingRequestId generation
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/IRequestStorage.java30
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IPendingRequestIdGenerationStrategy.java31
2 files changed, 59 insertions, 2 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/IRequestStorage.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/IRequestStorage.java
index ab928ae5..56179d55 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/IRequestStorage.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/IRequestStorage.java
@@ -46,6 +46,7 @@ package at.gv.egiz.eaaf.core.api;
import at.gv.egiz.eaaf.core.exceptions.EAAFException;
+import at.gv.egiz.eaaf.core.exceptions.PendingReqIdValidationException;
/**
* @author tlenz
@@ -53,12 +54,37 @@ import at.gv.egiz.eaaf.core.exceptions.EAAFException;
*/
public interface IRequestStorage {
- public IRequest getPendingRequest(String pendingReqID);
+ /**
+ * Get a pending-request from storage
+ *
+ * @param pendingReqID Id of the pending request
+ * @return
+ * @throws PendingReqIdValidationException if the pendingRequestId was invalid
+ */
+ public IRequest getPendingRequest(String pendingReqID) throws PendingReqIdValidationException;
+ /**
+ * Store a pending-request in storage
+ *
+ * @param pendingRequest
+ * @throws EAAFException
+ */
public void storePendingRequest(IRequest pendingRequest) throws EAAFException;
- public void removePendingRequest(String requestID);
+ /**
+ * Remove a pending-request from storage
+ *
+ * @param pendingReqId Id of the pending request
+ */
+ public void removePendingRequest(String pendingReqId);
+ /**
+ * change the pendingRequestId of a pending-request
+ *
+ * @param pendingRequest current pending-reqeust
+ * @return new pending-requestId
+ * @throws EAAFException
+ */
public String changePendingRequestID(IRequest pendingRequest) throws EAAFException;
}
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IPendingRequestIdGenerationStrategy.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IPendingRequestIdGenerationStrategy.java
new file mode 100644
index 00000000..443404eb
--- /dev/null
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IPendingRequestIdGenerationStrategy.java
@@ -0,0 +1,31 @@
+package at.gv.egiz.eaaf.core.api.utils;
+
+import org.springframework.lang.NonNull;
+import org.springframework.lang.Nullable;
+
+import at.gv.egiz.eaaf.core.exceptions.EAAFException;
+import at.gv.egiz.eaaf.core.exceptions.PendingReqIdValidationException;
+
+public interface IPendingRequestIdGenerationStrategy {
+
+ /**
+ * Generate a new external pending-request id
+ *
+ * @return
+ * @throws EAAFException
+ */
+ @NonNull
+ public String generateExternalPendingRequestId() throws EAAFException;
+
+ /**
+ * Validate a pendingRequestId according to implemented strategy
+ *
+ * @param pendingReqId pending-request Id that should be validated
+ * @return internalPendingRequestId
+ * @throws PendingReqIdValidationException
+ */
+ @NonNull
+ public String validateAndGetPendingRequestId(@Nullable String pendingReqId) throws PendingReqIdValidationException;
+
+
+}