diff --git a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java index a64223e240dd54cf04b6d8ffec14dbb0e41d6b83..0b09d37b93a7f062ce87ccb81652018f23b637c7 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.CONFLICT) -public class DuplicateNodeException extends VoSpaceException { +public class DuplicateNodeException extends VoSpaceErrorSummarizableException { public DuplicateNodeException(String path) { - super("Duplicate Node at path: " + path); + super("Duplicate Node at path: " + path, + ErrorSummaryFactory.VOSpaceFault.DUPLICATE_NODE); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java index 635bf575bdbf5ec2d48c58fec7547346f9eebfa7..05d702e5f1fe8c0b51790c8007b3b72a9f572840 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java @@ -1,21 +1,24 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) // Status code 500 -public class InternalFaultException extends VoSpaceException { +public class InternalFaultException extends VoSpaceErrorSummarizableException { private static final Logger LOG = LoggerFactory.getLogger(InternalFaultException.class); public InternalFaultException(String msg) { - super("InternalFaultException: " + msg); + super("InternalFaultException: " + msg, + ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT); } public InternalFaultException(Throwable cause) { - super("InternalFaultException: " + getMessage(cause)); + super("InternalFaultException: " + getMessage(cause), + ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT); } private static String getMessage(Throwable cause) { diff --git a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java index 085d10211ecbc9cc3184f85582b174ceaaa41fa5..e91e3f5432563c9c86cda2032a22fbba295aacea 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java @@ -1,21 +1,25 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.BAD_REQUEST) -public class InvalidURIException extends VoSpaceException { +public class InvalidURIException extends VoSpaceErrorSummarizableException { public InvalidURIException(String URI, String path) { super("InvalidURI. Payload node URI: " + URI - + " is not consistent with request path: " + path); + + " is not consistent with request path: " + path, + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } public InvalidURIException(String URI) { - super("InvalidURI. URI: " + URI + " is not in a valid format"); + super("InvalidURI. URI: " + URI + " is not in a valid format", + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } public InvalidURIException(IllegalArgumentException ex) { - super("InvalidURI. " + ex.getMessage()); + super("InvalidURI. " + ex.getMessage(), + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java new file mode 100644 index 0000000000000000000000000000000000000000..2586ac6c1afaed1688673ba2e8d0c19193c54e68 --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java @@ -0,0 +1,12 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; + +public class NodeBusyException extends VoSpaceErrorSummarizableException { + + public NodeBusyException(String path) { + super("Node Busy: at path " + path, + ErrorSummaryFactory.VOSpaceFault.NODE_BUSY); + } + +} diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java index b14f4c2a791b2caea3786f43e3fc75d5a889296e..a7bb797373f1f53d06a61e4abc7e649c8977e265 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.NOT_FOUND) -public class NodeNotFoundException extends VoSpaceException { +public class NodeNotFoundException extends VoSpaceErrorSummarizableException { public NodeNotFoundException(String path) { - super("NodeNotFound: " + path); + super("NodeNotFound: " + path, + ErrorSummaryFactory.VOSpaceFault.NODE_NOT_FOUND); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java index 20a199167e21f826d64c514be594ae25332c89ee..31194db844fdf21d97e203a9229b0a15a13928c4 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.FORBIDDEN) -public class PermissionDeniedException extends VoSpaceException { +public class PermissionDeniedException extends VoSpaceErrorSummarizableException { public PermissionDeniedException(String path) { - super("Permission Denied at path: " + path); + super("Permission Denied at path: " + path, + ErrorSummaryFactory.VOSpaceFault.PERMISSION_DENIED); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java new file mode 100644 index 0000000000000000000000000000000000000000..d13d941890927da670ea1e07f9fe69e8adbf6c78 --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java @@ -0,0 +1,12 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; + +public class ProtocolNotSupportedException extends VoSpaceErrorSummarizableException{ + + public ProtocolNotSupportedException(String protocol) { + super("Protocol Not Supported: " + protocol, + ErrorSummaryFactory.VOSpaceFault.PROTOCOL_NOT_SUPPORTED); + } + +} diff --git a/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java new file mode 100644 index 0000000000000000000000000000000000000000..caed42e1deef61783d8242e57b3eed0d43ec3906 --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java @@ -0,0 +1,23 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) +public class VoSpaceErrorSummarizableException extends VoSpaceException { + + ErrorSummaryFactory.VOSpaceFault fault; + + public VoSpaceErrorSummarizableException(String message, + ErrorSummaryFactory.VOSpaceFault fault) + { + super(message); + this.fault = fault; + } + + public ErrorSummaryFactory.VOSpaceFault getFault() + { + return this.fault; + } +}