package at.gv.egiz.eaaf.core.api.utils; import javax.annotation.Nonnull; import javax.annotation.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; /** * Get the internal pendingReqId without any validation * * @param pendingReqId pending-request Id that should be validated * @return internalPendingRequestId * @throws PendingReqIdValidationException */ @Nonnull public String getPendingRequestIdWithOutChecks(@Nullable String externalPendingReqId) throws PendingReqIdValidationException; }