package org.jboss.seam.exception; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import org.jboss.seam.annotations.exception.Redirect; import org.jboss.seam.core.Expressions; /** * Implements @Redirect * * @see Redirect * @author Gavin King * */ public class AnnotationRedirectHandler extends RedirectHandler { @Override public boolean isHandler(Exception e) { return e.getClass().isAnnotationPresent(Redirect.class); } @Override protected String getMessage(Exception e) { return e.getClass().getAnnotation(Redirect.class).message(); } @Override protected Severity getMessageSeverity(Exception e) { return FacesMessage.SEVERITY_INFO; } @Override protected String getViewId(Exception e) { return Expressions.instance().createValueExpression(e.getClass().getAnnotation(Redirect.class).viewId(), String.class).getValue(); } @Override @SuppressWarnings("deprecation") protected boolean isEnd(Exception e) { return e.getClass().getAnnotation(Redirect.class).end(); } }