package fi.otavanopisto.muikku.rest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import fi.otavanopisto.muikku.rest.AbstractCoreRESTService; public class AbstractRESTService extends AbstractCoreRESTService { protected Response getConstraintViolations(ConstraintViolationException violationException) { List<Map<String, Object>> violationMessages = new ArrayList<Map<String,Object>>(); Set<ConstraintViolation<?>> constraintViolations = violationException.getConstraintViolations(); for (ConstraintViolation<?> constraintViolation : constraintViolations) { Map<String, Object> violationMessage = new HashMap<String, Object>(); violationMessage.put("invalidValue", constraintViolation.getInvalidValue()); violationMessage.put("propertyPath", constraintViolation.getPropertyPath().toString()); violationMessage.put("message", constraintViolation.getMessage()); violationMessage.put("entity", constraintViolation.getLeafBean().getClass().getSimpleName()); violationMessages.add(violationMessage); } Map<String, List<Map<String, Object>>> result = new HashMap<String, List<Map<String,Object>>>(); result.put("constraintViolations", violationMessages); return Response.status(Status.PRECONDITION_FAILED).entity(result).build(); } }