All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.dropwizard.jersey.validation.JerseyViolationExceptionMapper Maven / Gradle / Ivy

package io.dropwizard.jersey.validation;

import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import org.glassfish.jersey.server.model.Invocable;

import javax.validation.ConstraintViolation;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import java.util.Set;

@Provider
public class JerseyViolationExceptionMapper implements ExceptionMapper {
    @Override
    public Response toResponse(final JerseyViolationException exception) {
        final Set> violations = exception.getConstraintViolations();
        final Invocable invocable = exception.getInvocable();
        final ImmutableList errors = FluentIterable.from(exception.getConstraintViolations())
                .transform(violation -> ConstraintMessage.getMessage(violation, invocable)).toList();

        final int status = ConstraintMessage.determineStatus(violations, invocable);
        return Response.status(status)
                .entity(new ValidationErrorMessage(errors))
                .build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy