001package com.identityworksllc.iiq.common.plugin; 002 003/** 004 * A meta-object that can be returned by a {@link BaseCommonPluginResource#handle(BaseCommonPluginResource.PluginAction)} 005 * implementation to specify both a return object and a status in the return value. This should prevent implementers 006 * from needing to return a {@link javax.ws.rs.core.Response} in most cases. 007 * 008 * @param <T> The type of the wrapped object 009 */ 010public class ErrorResponse<T> { 011 /** 012 * The response code to use 013 */ 014 private final int responseCode; 015 016 /** 017 * The wrapped object, which must be serializable by JAX-RS 018 */ 019 private final T wrappedObject; 020 021 /** 022 * Constructs a new error response wrapper object 023 * 024 * @param responseCode The response code to return to the REST client 025 * @param wrappedObject The object to return to the REST client 026 */ 027 public ErrorResponse(int responseCode, T wrappedObject) { 028 this.responseCode = responseCode; 029 this.wrappedObject = wrappedObject; 030 } 031 032 /** 033 * Gets the response code for this error response 034 * @return The response code 035 */ 036 public int getResponseCode() { 037 return responseCode; 038 } 039 040 /** 041 * Gets the wrapped object for this error response 042 * @return The wrapped object 043 */ 044 public T getWrappedObject() { 045 return wrappedObject; 046 } 047}