All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cybersource.flex.sdk.FlexException Maven / Gradle / Ivy

package com.cybersource.flex.sdk;

import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;

public abstract class FlexException extends RuntimeException implements FlexApiCorrelationInfo {

    public FlexException(String message) {
        super(message);
    }

    public FlexException(String message, Throwable cause) {
        super(message, cause);
    }

    public static class FlexBaseException extends FlexException {

        private final long operationTime;
        private final String correlationId;

        public FlexBaseException(String message, String correlationId, long startTime) {
            super(message);
            this.correlationId = correlationId;
            this.operationTime = System.currentTimeMillis()-startTime;
        }

        public FlexBaseException(String message, Throwable cause, String correlationId, long startTime) {
            super(message, cause);
            this.correlationId = correlationId;
            this.operationTime = System.currentTimeMillis()-startTime;
        }

        @Override
        public final String getCorrelationId() {
            return correlationId;
        }

        @Override
        public final long getOperationTime() {
            return operationTime;
        }
    }

    public static class FlexInternalException extends FlexBaseException {
        public FlexInternalException(String message) {
            super(message, null, null, System.currentTimeMillis());
        }
    }

    public static class FlexIOException extends FlexBaseException {

        public FlexIOException(String message, IOException cause, long startTime) {
            super(message, cause, null, startTime);
        }

        public FlexIOException(String message, Exception cause, String correlationId, long startTime) {
            super(message, cause, correlationId, startTime);
        }

    }

    public static class FlexSecurityException extends FlexBaseException {

        public FlexSecurityException(String message, String correlationId, long startTime) {
            super(message, correlationId, startTime);
        }

    }

    public static class FlexHttpErrorException extends FlexBaseException {

        private final int statusCode;
        final Set details = new LinkedHashSet<>();

        public FlexHttpErrorException(String message, int statusCode, String correlationId, long startTime) {
            super(message, correlationId, startTime);
            this.statusCode = statusCode;
        }

        public int getStatusCode() {
            return statusCode;
        }

        public Set getDetails() {
            return details;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy