Improve CodeExceptions.

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/resource-management/resource-manager@161895 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Manuele Simi 2017-12-23 04:26:08 +00:00
parent 7b31392c6f
commit 9a9e0a0a06
4 changed files with 55 additions and 38 deletions

View File

@ -6,15 +6,16 @@ package org.gcube.resourcemanagement.manager.exception;
* @author Manuele Simi (ISTI CNR)
*
*/
public class RMException extends Exception {
public class CodeException extends Exception {
private static final long serialVersionUID = 333945715086602250L;
private final int errorCode;
private final String errorMsg;
public RMException(ExceptionCode code) {
this.errorMsg = code.getMsg();
public CodeException(RMCode code) {
super();
this.errorMsg = code.getMessage();
this.errorCode = code.getId();
}

View File

@ -1,6 +1,3 @@
/**
*
*/
package org.gcube.resourcemanagement.manager.exception;
/**
@ -10,7 +7,15 @@ package org.gcube.resourcemanagement.manager.exception;
*
*/
public interface ErrorCode {
/**
* Identifier of the code.
*/
public int getId();
public String getMsg();
/**
* The message associated to the code
* @return the message
*/
public String getMessage();
}

View File

@ -1,31 +0,0 @@
package org.gcube.resourcemanagement.manager.exception;
/**
* Exception codes handled with {@link RMException}.
*
* @author Manuele Simi (ISTI CNR)
*
*/
public enum ExceptionCode implements ErrorCode {
INVALID_REQUEST(0, "The request is invalid"),
MISSING_PARAMETER(1, "Required query parameter is missing"),
MISSING_HEADER(2, "Required header is missing"),
CONTEXT_ALREADY_EXIST(3, "Required header is missing");
private final int id;
private final String msg;
ExceptionCode(int id, String msg) {
this.id = id;
this.msg = msg;
}
public int getId() {
return this.id;
}
public String getMsg() {
return this.msg;
}
}

View File

@ -0,0 +1,42 @@
package org.gcube.resourcemanagement.manager.exception;
import java.util.Arrays;
/**
* Exception codes handled with {@link CodeException}.
*
* @author Manuele Simi (ISTI CNR)
*
*/
public enum RMCode implements ErrorCode {
INVALID_REQUEST(0, "The request is invalid"),
MISSING_PARAMETER(1,"Required query parameter is missing"),
MISSING_HEADER(2, "Required header is missing"),
CONTEXT_ALREADY_EXIST(3, "Required header is missing"),
INVALID_REQUEST_FOR_RR(4, "Failed to validate the request. The request was not submitted to the Resource Registry."),
GENERIC_ERROR_FROM_RR(5, "The Resource Registry returned an error.");
private final int id;
private final String msg;
RMCode(int id, String msg) {
if (exists(id))
throw new IllegalArgumentException(String.format("Code %d already exists", id));
this.id = id;
this.msg = msg;
}
public int getId() {
return this.id;
}
public String getMessage() {
return this.msg;
}
protected static boolean exists(int id) {
return Arrays.stream(RMCode.values()).filter(v -> v.id == id).count() > 0;
}
}