org.apache.calcite.avatica.remote

## Class AbstractHandler<T>

- java.lang.Object
- - org.apache.calcite.avatica.remote.AbstractHandler<T>

Type Parameters:
  `T` - The format Requests/Responses are serialized as.

All Implemented Interfaces:
  Handler<T>

Direct Known Subclasses:
  JsonHandler, ProtobufHandler

    public abstract class AbstractHandler<T>
    extends Object
    implements Handler<T>

Abstract base class for `Handler`s to extend to inherit functionality common across serialization strategies.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.calcite.avatica.remote.Handler

`Handler.HandlerResponse<T>`

### Field Summary

Fields
`protected Service` `service`

### Fields inherited from interface org.apache.calcite.avatica.remote.Handler

`HANDLER_SERIALIZATION_METRICS_NAME, HTTP_INTERNAL_SERVER_ERROR, HTTP_OK, HTTP_UNAUTHENTICATED, HTTP_UNAUTHORIZED`

### Constructor Summary

Constructors
Constructor and Description
`AbstractHandler(Service service)`

### Method Summary

All Methods Instance Methods Concrete Methods
`Handler.HandlerResponse<T>` `apply(T serializedRequest)` Compute a response for the given request, handling errors generated by that computation.
`Handler.HandlerResponse<T>` `convertToErrorResponse(Exception e)` Attempts to convert an Exception to an ErrorResponse.
`void` `setRpcMetadata(Service.RpcMetadataResponse metadata)` Sets some general server information to return to the client in all responses.
`Handler.HandlerResponse<T>` `unauthenticatedErrorResponse(Exception e)` Attempts to convert an Exception to an ErrorResponse with an HTTP status code of `401`.
`Handler.HandlerResponse<T>` `unauthorizedErrorResponse(Exception e)` Attempts to convert an Exception to an ErrorResponse with an HTTP stauts code of `403`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### service

    protected final Service service

### Constructor Detail

#### AbstractHandler

    public AbstractHandler(Service service)

### Method Detail

#### apply

    public Handler.HandlerResponse<T> apply(T serializedRequest)

Compute a response for the given request, handling errors generated by that computation.

Specified by:
  `apply` in interface `Handler<T>`
Parameters:
  `serializedRequest` - The caller's request.
Returns:
  A `Service.Response` with additional context about that response.

#### convertToErrorResponse

    public Handler.HandlerResponse<T> convertToErrorResponse(Exception e)

Attempts to convert an Exception to an ErrorResponse. If there is an issue in serialization, a RuntimeException is thrown instead (wrapping the original exception if necessary).

Parameters:
  `e` - The exception to convert.
Returns:
  A HandlerResponse instance.

#### unauthenticatedErrorResponse

    public Handler.HandlerResponse<T> unauthenticatedErrorResponse(Exception e)

Attempts to convert an Exception to an ErrorResponse with an HTTP status code of `401`.

#### unauthorizedErrorResponse

    public Handler.HandlerResponse<T> unauthorizedErrorResponse(Exception e)

Attempts to convert an Exception to an ErrorResponse with an HTTP stauts code of `403`.

#### setRpcMetadata

    public void setRpcMetadata(Service.RpcMetadataResponse metadata)

Description copied from interface: `Handler`
Sets some general server information to return to the client in all responses.

Specified by:
  `setRpcMetadata` in interface `Handler<T>`
Parameters:
  `metadata` - Server-wide information