Open Source Repository

Home /jsr/jsr311-api-1.1.1 | Repository Home


javax/ws/rs/ext/ExceptionMapper.java
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 */

package javax.ws.rs.ext;

import javax.ws.rs.core.Response;

/**
 * Contract for a provider that maps Java exceptions to 
 {@link javax.ws.rs.core.Response}. An implementation of this interface must 
 * be annotated with {@link Provider}.
 
 @see Provider
 @see javax.ws.rs.core.Response
 */
public interface ExceptionMapper<E extends Throwable> {

    /**
     * Map an exception to a {@link javax.ws.rs.core.Response}. Returning 
     * {@code null} results in a {@link javax.ws.rs.core.Response.Status#NO_CONTENT}
     * response. Throwing a runtime exception results in a 
     {@link javax.ws.rs.core.Response.Status#INTERNAL_SERVER_ERROR} response
     @param exception the exception to map to a response
     @return a response mapped from the supplied exception
     */
    Response toResponse(E exception);
}