package com.googlecode.jsonrpc4j;
/**
* <p>
* A status code provider maps an HTTP status code to a JSON-RPC result code (e.g. -32000 -> 500).
* </p>
* <p>
* From version 2.0 on the JSON-RPC specification is not explicitly documenting the mapping of result/error codes, so
* this provider can be used to configure application specific HTTP status codes for a given JSON-RPC error code.
* </p>
* <p>
* The default implementation {@link DefaultHttpStatusCodeProvider} follows the rules defined in the
* <a href="http://www.jsonrpc.org/historical/json-rpc-over-http.html">JSON-RPC over HTTP</a> document.
* </p>
*/
public interface HttpStatusCodeProvider {
/**
* Returns an HTTP status code for the given response and result code.
*
* @param resultCode the result code of the current JSON-RPC method call. This is used to look up the HTTP status
* code.
* @return the int representation of the HTTP status code that should be used by the JSON-RPC response.
*/
int getHttpStatusCode(int resultCode);
/**
* Returns result code for the given HTTP status code
*
* @param httpStatusCode the int representation of the HTTP status code that should be used by the JSON-RPC response.
* @return resultCode the result code of the current JSON-RPC method call. This is used to look up the HTTP status
*/
Integer getJsonRpcCode(int httpStatusCode);
}