
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