package org.odata4j.producer;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.UriInfo;
import org.odata4j.core.OExtension;
import org.odata4j.exceptions.ODataProducerException;
/**
* An optional extension that a producer can expose to control error responses.
*
* <p>To expose this extension, the producer implementation has to return an instance of this
* interface when method {@code findExtension} is called and the first parameter is equal to
* {@code ErrorResponseExtension.class}.</p>
*
* @see ErrorResponseExtensions
*/
public interface ErrorResponseExtension extends OExtension<ODataProducer> {
/**
* This method is called before an error response is created and sent to the client. Thus
* producers can decide if an inner error should be returned or not. This decision can be based
* on a system property, a query parameter, or any other data source.
*
* @param httpHeaders the HTTP headers of the request that led to an error
* @param uriInfo the URI info of the request that led to an error
* @param exception the exception about to be sent to the client
* @return flag indicating whether to return an inner error as part of the error response to the
* client or not
*/
boolean returnInnerError(HttpHeaders httpHeaders, UriInfo uriInfo, ODataProducerException exception);
}