package org.jboss.seam.rest.exceptions.integration;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.ws.rs.core.Response.ResponseBuilder;
import org.apache.deltaspike.core.api.exception.control.annotation.ExceptionHandler;
import org.apache.deltaspike.core.api.exception.control.annotation.Handles;
import org.jboss.solder.exception.control.CaughtException;
//import org.jboss.solder.exception.control.Handles;
//import org.jboss.solder.exception.control.HandlesExceptions;
import org.jboss.solder.exception.control.Precedence;
//import org.jboss.solder.exception.control.TraversalMode;
import org.jboss.seam.rest.exceptions.RestRequest;
import org.jboss.seam.rest.exceptions.RestResource;
import org.jboss.seam.rest.validation.ValidationException;
import org.jboss.seam.rest.validation.ValidationExceptionHandler;
/**
* The default handler that obtains {@link ValidationException} from Seam Catch and converts it to an HTTP response.
*
* @author <a href="http://community.jboss.org/people/jharting">Jozef Hartinger</a>
*/
@ExceptionHandler
@ApplicationScoped
public class CatchValidationExceptionHandler {
@Inject
private ValidationExceptionHandler delegate;
public void handleValidationException(
// , during = TraversalMode.DEPTH_FIRST
@Handles(ordinal = Precedence.BUILT_IN) @RestRequest CaughtException<ValidationException> event,
@RestResource ResponseBuilder builder) {
delegate.handleValidationException(event.getException(), builder);
event.handled();
}
}