Package 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
Modifier and Type
Field
Description
`protected final 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
Description
`AbstractHandler(Service service)`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### service

protected final Service service

## Constructor Details

### AbstractHandler

public AbstractHandler(Service service)

## Method Details

### 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