/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.facebook.presto.kafka; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; /** * Kafka specific {@link com.facebook.presto.spi.ConnectorHandleResolver} implementation. */ public class KafkaHandleResolver implements ConnectorHandleResolver { @Override public Class<? extends ConnectorTableHandle> getTableHandleClass() { return KafkaTableHandle.class; } @Override public Class<? extends ColumnHandle> getColumnHandleClass() { return KafkaColumnHandle.class; } @Override public Class<? extends ConnectorSplit> getSplitClass() { return KafkaSplit.class; } @Override public Class<? extends ConnectorTableLayoutHandle> getTableLayoutHandleClass() { return KafkaTableLayoutHandle.class; } @Override public Class<? extends ConnectorTransactionHandle> getTransactionHandleClass() { return KafkaTransactionHandle.class; } static KafkaTableHandle convertTableHandle(ConnectorTableHandle tableHandle) { requireNonNull(tableHandle, "tableHandle is null"); checkArgument(tableHandle instanceof KafkaTableHandle, "tableHandle is not an instance of KafkaTableHandle"); return (KafkaTableHandle) tableHandle; } static KafkaColumnHandle convertColumnHandle(ColumnHandle columnHandle) { requireNonNull(columnHandle, "columnHandle is null"); checkArgument(columnHandle instanceof KafkaColumnHandle, "columnHandle is not an instance of KafkaColumnHandle"); return (KafkaColumnHandle) columnHandle; } static KafkaSplit convertSplit(ConnectorSplit split) { requireNonNull(split, "split is null"); checkArgument(split instanceof KafkaSplit, "split is not an instance of KafkaSplit"); return (KafkaSplit) split; } static KafkaTableLayoutHandle convertLayout(ConnectorTableLayoutHandle layout) { requireNonNull(layout, "layout is null"); checkArgument(layout instanceof KafkaTableLayoutHandle, "layout is not an instance of KafkaTableLayoutHandle"); return (KafkaTableLayoutHandle) layout; } }