package org.molgenis.util; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ErrorMessageResponse { private List<ErrorMessage> errors; public ErrorMessageResponse() { } public ErrorMessageResponse(ErrorMessage errorMessage) { if (errorMessage == null) throw new IllegalArgumentException("error message is null"); addErrorMessage(errorMessage); } public ErrorMessageResponse(List<ErrorMessage> errorMessages) { if (errorMessages == null) throw new IllegalArgumentException("error messages is null"); addErrorMessages(errorMessages); } public List<ErrorMessage> getErrors() { return errors != null ? errors : Collections.<ErrorMessage>emptyList(); } public void addErrorMessage(ErrorMessage errorMessage) { if (this.errors == null) errors = new ArrayList<ErrorMessage>(); this.errors.add(errorMessage); } public void addErrorMessages(List<ErrorMessage> errorMessages) { if (this.errors == null) errors = new ArrayList<ErrorMessage>(); this.errors.addAll(errorMessages); } public static class ErrorMessage { private static final String DEFAULT_ERROR_MESSAGE = "Unknown error"; private final String message; private final Integer code; public ErrorMessage(String message) { this(message, null); } public ErrorMessage(String message, Integer code) { this.message = message != null ? message : DEFAULT_ERROR_MESSAGE; this.code = code; } public String getMessage() { return message; } public Integer getCode() { return code; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((code == null) ? 0 : code.hashCode()); result = prime * result + ((message == null) ? 0 : message.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ErrorMessage other = (ErrorMessage) obj; if (code == null) { if (other.code != null) return false; } else if (!code.equals(other.code)) return false; if (message == null) { if (other.message != null) return false; } else if (!message.equals(other.message)) return false; return true; } } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((errors == null) ? 0 : errors.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ErrorMessageResponse other = (ErrorMessageResponse) obj; if (errors == null) { if (other.errors != null) return false; } else if (!errors.equals(other.errors)) return false; return true; } }