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 TransactionToken that can be used for pendingRequests * @throws EaafException In case of a token generation error */ @Nonnull String generateExternalPendingRequestId() throws EaafException; /** * Validate a pendingRequestId according to implemented strategy. * * @param pendingReqId pending-request Id that should be validated * @return internalPendingRequestId * @throws PendingReqIdValidationException In case of a token validation error */ @Nonnull String validateAndGetPendingRequestId(@Nullable String pendingReqId) throws PendingReqIdValidationException; /** * Get the internal pendingReqId without any validation. * * @param externalPendingReqId pending-request Id that should be validated * @return internalPendingRequestId * @throws PendingReqIdValidationException In case of token processing error */ @Nonnull String getPendingRequestIdWithOutChecks(@Nullable String externalPendingReqId) throws PendingReqIdValidationException; }