// Path: common/src/main/java/cz/gopay/api/v3/model/APIError.java
// @XmlRootElement(name = "error")
// public class APIError {
// 
//     @XmlElement(name = "date_issued")
//     @XmlJavaTypeAdapter(GPTimestampAdapter.class)
//     private Date dateIssued;
// 
//     @XmlElement(name = "errors",required = true)
//     private List<ErrorElement> errorMessages;
// 
//     public APIError() {
//     }
// 
//     public APIError(Date dateIssued) {
//         this.dateIssued = dateIssued;
//     }
// 
//     public static APIError create() {
//         return new APIError(new Date());
//     }
// 
//     public APIError addError(String errorName, int errorCode, String message,
//             String description) {
//         if (errorMessages == null) {
//             errorMessages = new ArrayList<>();
//         }
// 
//         errorMessages.add(new ErrorElement(errorName, errorCode, message, description));
// 
//         return this;
//     }
// 
//     public APIError addError(String errorName, int errorCode, String field,
//             String message, String description) {
//         if (errorMessages == null) {
//             errorMessages = new ArrayList<>();
//         }
// 
//         errorMessages.add(new ErrorElement(errorName, errorCode, field, message, description));
//         return this;
//     }
// 
//     public Date getDateIssued() {
//         return dateIssued;
//     }
// 
//     public void setDateIssued(Date dateOccured) {
//         this.dateIssued = dateOccured;
//     }
// 
//     public List<ErrorElement> getErrorMessages() {
//         return errorMessages;
//     }
// 
//     public void setErrorMessages(List<ErrorElement> errors) {
//         this.errorMessages = errors;
//     }
// 
// }


import javax.ws.rs.ClientErrorException;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.WebApplicationException;
import cz.gopay.api.v3.model.APIError;
package cz.gopay.api.v3;



/**
 *
 * @author Zbynek Novak novak.zbynek@gmail.com
 *
 */
public class GPExceptionHandler {

    public static void handleException(WebApplicationException ex) throws GPClientException, ClientErrorException {
        if (!ex.getResponse().hasEntity()) {
            throw ex;
        }
        try {
// Path: common/src/main/java/cz/gopay/api/v3/model/APIError.java
// @XmlRootElement(name = "error")
// public class APIError {
// 
//     @XmlElement(name = "date_issued")
//     @XmlJavaTypeAdapter(GPTimestampAdapter.class)
//     private Date dateIssued;
// 
//     @XmlElement(name = "errors",required = true)
//     private List<ErrorElement> errorMessages;
// 
//     public APIError() {
//     }
// 
//     public APIError(Date dateIssued) {
//         this.dateIssued = dateIssued;
//     }
// 
//     public static APIError create() {
//         return new APIError(new Date());
//     }
// 
//     public APIError addError(String errorName, int errorCode, String message,
//             String description) {
//         if (errorMessages == null) {
//             errorMessages = new ArrayList<>();
//         }
// 
//         errorMessages.add(new ErrorElement(errorName, errorCode, message, description));
// 
//         return this;
//     }
// 
//     public APIError addError(String errorName, int errorCode, String field,
//             String message, String description) {
//         if (errorMessages == null) {
//             errorMessages = new ArrayList<>();
//         }
// 
//         errorMessages.add(new ErrorElement(errorName, errorCode, field, message, description));
//         return this;
//     }
// 
//     public Date getDateIssued() {
//         return dateIssued;
//     }
// 
//     public void setDateIssued(Date dateOccured) {
//         this.dateIssued = dateOccured;
//     }
// 
//     public List<ErrorElement> getErrorMessages() {
//         return errorMessages;
//     }
// 
//     public void setErrorMessages(List<ErrorElement> errors) {
//         this.errorMessages = errors;
//     }
// 
// }


// Path: common/src/main/java/cz/gopay/api/v3/GPExceptionHandler.java
import javax.ws.rs.ClientErrorException;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.WebApplicationException;
import cz.gopay.api.v3.model.APIError;

package cz.gopay.api.v3;



/**
 *
 * @author Zbynek Novak novak.zbynek@gmail.com
 *
 */
public class GPExceptionHandler {

    public static void handleException(WebApplicationException ex) throws GPClientException, ClientErrorException {
        if (!ex.getResponse().hasEntity()) {
            throw ex;
        }
        try {
            APIError error = ex.getResponse().readEntity(APIError.class);