aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java')
-rw-r--r--src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java b/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java
new file mode 100644
index 0000000..95ec127
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java
@@ -0,0 +1,31 @@
+package org.onap.a1pesimulator.exception;
+
+import static org.springframework.http.HttpStatus.NOT_FOUND;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+
+@Order(Ordered.HIGHEST_PRECEDENCE)
+@ControllerAdvice
+public class RestExceptionHandler extends ResponseEntityExceptionHandler {
+
+ private static final Logger log = LoggerFactory.getLogger(RestExceptionHandler.class);
+
+ @ExceptionHandler(CellNotFoundException.class)
+ protected ResponseEntity<Object> handleEntityNotFound(CellNotFoundException ex) {
+ ApiError apiError = new ApiError(NOT_FOUND);
+ apiError.setMessage(ex.getMessage());
+ return buildResponseEntity(apiError);
+ }
+
+ private ResponseEntity<Object> buildResponseEntity(ApiError apiError) {
+ log.error(apiError.getMessage());
+ return new ResponseEntity<>(apiError.getMessage(), apiError.getStatus());
+ }
+} \ No newline at end of file