package org.etk.core.rest; import java.io.IOException; import java.lang.reflect.Type; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; public interface GenericContainerResponse { /** * Set response. New response can be override old one. * * @param response See {@link Response} */ void setResponse(Response response); /** * Get preset {@link Response}. This method can be useful for modification * {@link GenericContainerResponse}. See * {@link ResponseFilter#doFilter(GenericContainerResponse)}. * * @return preset {@link Response} or null if it was not initialized yet. */ Response getResponse(); /** * Write response to output stream. * * @throws IOException if any i/o errors occurs */ void writeResponse() throws IOException; /** * @return HTTP status */ int getStatus(); /** * @return HTTP headers */ MultivaluedMap<String, Object> getHttpHeaders(); /** * @return entity body */ Object getEntity(); /** * @return entity type */ Type getEntityType(); /** * @return body content type */ MediaType getContentType(); }