/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.drill.exec.record; import org.apache.drill.common.expression.SchemaPath; import org.apache.drill.exec.ops.FragmentContext; import org.apache.drill.exec.record.selection.SelectionVector2; import org.apache.drill.exec.record.selection.SelectionVector4; import java.util.Iterator; /** * Wrap a VectorContainer into a record batch. */ public class SimpleRecordBatch implements RecordBatch { private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(SimpleRecordBatch.class); private VectorContainer container; private FragmentContext context; public SimpleRecordBatch(VectorContainer container, FragmentContext context) { this.container = container; this.context = context; } @Override public FragmentContext getContext() { return context; } @Override public BatchSchema getSchema() { return container.getSchema(); } @Override public int getRecordCount() { return container.getRecordCount(); } @Override public void kill(boolean sendUpstream) { } @Override public SelectionVector2 getSelectionVector2() { throw new UnsupportedOperationException(); } @Override public SelectionVector4 getSelectionVector4() { throw new UnsupportedOperationException(); } @Override public TypedFieldId getValueVectorId(SchemaPath path) { return container.getValueVectorId(path); } @Override public VectorWrapper getValueAccessorById(Class clazz, int... ids) { return container.getValueAccessorById(clazz, ids); } @Override public IterOutcome next() { throw new UnsupportedOperationException(); } @Override public WritableBatch getWritableBatch() { throw new UnsupportedOperationException(); } @Override public Iterator> iterator() { return container.iterator(); } @Override public VectorContainer getOutgoingContainer() { throw new UnsupportedOperationException(String.format(" You should not call getOutgoingContainer() for class %s", this.getClass().getCanonicalName())); } @Override public VectorContainer getContainer() { return container; } @Override public void dump() { logger.error("SimpleRecordBatch[container=" + container + "]"); } @Override public boolean hasFailed() { return false; } }