View Javadoc

1   /**
2    * Copyright (c) 2011, University of Konstanz, Distributed Systems Group
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *     * Redistributions of source code must retain the above copyright
8    *       notice, this list of conditions and the following disclaimer.
9    *     * Redistributions in binary form must reproduce the above copyright
10   *       notice, this list of conditions and the following disclaimer in the
11   *       documentation and/or other materials provided with the distribution.
12   *     * Neither the name of the University of Konstanz nor the
13   *       names of its contributors may be used to endorse or promote products
14   *       derived from this software without specific prior written permission.
15   *
16   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19   * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26   */
27  package org.jaxrx.core;
28  
29  import javax.ws.rs.WebApplicationException;
30  import javax.ws.rs.core.MediaType;
31  import javax.ws.rs.core.Response;
32  
33  /**
34   * An exception that is either thrown by the JAX-RX interface or its underlying
35   * implementation.
36   *
37   * @author Sebastian Graf, Christian Gruen, Lukas Lewandowski, University of
38   *         Konstanz
39   *
40   */
41  public final class JaxRxException extends WebApplicationException {
42  	/**
43  	 * Constructs a new exception with the given HTTP status code and status
44  	 * message.
45  	 *
46  	 * @param status
47  	 *            HTTP status code
48  	 * @param message
49  	 *            status message
50  	 */
51  	public JaxRxException(final int status, final String message) {
52  		super(Response.status(status).entity(message).
53  		    type(MediaType.TEXT_PLAIN).build());
54  	}
55  
56    /**
57     * Constructor, wrapping the specified exception and setting 500 as HTTP
58     * status code.
59     *
60     * @param exception
61     *            exception to be wrapped
62     */
63    public JaxRxException(final Exception exception) {
64      this(500, exception.getMessage());
65    }
66  
67    /**
68     * Constructor, using a {@link Response} reference.
69     *
70     * @param response
71     *            response to be passed on
72     */
73    public JaxRxException(final Response response) {
74      super(response);
75    }
76  }