/** * Constructs the desired implementation for the given serialization method and server * configuration with metrics. * * @param service The underlying {@link Service} * @param serialization The serializatio mechanism to use * @param metricsConfig Configuration for the {@link MetricsSystem}. * @param serverConfig Avatica server configuration or null * @return An {@link AvaticaHandler} */ public AvaticaHandler getHandler(Service service, Driver.Serialization serialization, MetricsSystemConfiguration<?> metricsConfig, AvaticaServerConfiguration serverConfig) { if (null == metricsConfig) { metricsConfig = NoopMetricsSystemConfiguration.getInstance(); } MetricsSystem metrics = MetricsSystemLoader.load(metricsConfig); switch (serialization) { case JSON: return new AvaticaJsonHandler(service, metrics, serverConfig); case PROTOBUF: return new AvaticaProtobufHandler(service, metrics, serverConfig); default: throw new IllegalArgumentException("Unknown Avatica handler for " + serialization.name()); } }
/** * Constructs the desired implementation for the given serialization method and server * configuration with metrics. * * @param service The underlying {@link Service} * @param serialization The serializatio mechanism to use * @param metricsConfig Configuration for the {@link MetricsSystem}. * @param serverConfig Avatica server configuration or null * @return An {@link AvaticaHandler} */ public AvaticaHandler getHandler(Service service, Driver.Serialization serialization, MetricsSystemConfiguration<?> metricsConfig, AvaticaServerConfiguration serverConfig) { if (null == metricsConfig) { metricsConfig = NoopMetricsSystemConfiguration.getInstance(); } MetricsSystem metrics = MetricsSystemLoader.load(metricsConfig); switch (serialization) { case JSON: return new AvaticaJsonHandler(service, metrics, serverConfig); case PROTOBUF: return new AvaticaProtobufHandler(service, metrics, serverConfig); default: throw new IllegalArgumentException("Unknown Avatica handler for " + serialization.name()); } }