package fr.openwide.core.jpa.externallinkchecker.business.model;
import java.io.IOException;
import java.net.SocketTimeoutException;
import org.apache.http.client.CircularRedirectException;
import org.apache.http.client.ClientProtocolException;
public enum ExternalLinkErrorType {
HTTP,
INVALID_IDN,
URI_SYNTAX,
MALFORMED_URL,
IO,
TIMEOUT,
CLIENT_PROTOCOL,
CIRCULAR_REDIRECT,
UNKNOWN_HTTPCLIENT_ERROR;
public static ExternalLinkErrorType fromException(Exception e) {
if (e instanceof SocketTimeoutException) {
return TIMEOUT;
} else if (e instanceof ClientProtocolException) {
if (e.getCause() instanceof CircularRedirectException) {
return CIRCULAR_REDIRECT;
}
return CLIENT_PROTOCOL;
} else if (e instanceof IOException) {
return IO;
}
return UNKNOWN_HTTPCLIENT_ERROR;
}
}