package com.splicemachine.derby.stream.utils;

import com.splicemachine.db.iapi.error.StandardException;
import com.splicemachine.db.iapi.sql.Activation;
import com.splicemachine.db.iapi.sql.execute.ExecRow;
import com.splicemachine.derby.iapi.sql.execute.SpliceOperation;
import com.splicemachine.derby.impl.sql.execute.operations.LocatedRow;
import com.splicemachine.derby.stream.function.Partitioner;
import com.splicemachine.derby.stream.iapi.*;
import com.splicemachine.derby.utils.marshall.KeyHashDecoder;

import java.io.InputStream;

/**
 * @author Scott Fines
 *         Date: 1/12/16
 */
public abstract class ForwardingDataSetProcessor implements DataSetProcessor{
    private final DataSetProcessor delegate;

    public ForwardingDataSetProcessor(DataSetProcessor delegate){
        this.delegate=delegate;
    }

    @Override
    public <Op extends SpliceOperation,V> ScanSetBuilder<V> newScanSet(Op spliceOperation,String tableName) throws StandardException{
        return delegate.newScanSet(spliceOperation,tableName);
    }

    @Override
    public <Op extends SpliceOperation,V> IndexScanSetBuilder<V> newIndexScanSet(Op spliceOperation,String tableName) throws StandardException{
        return delegate.newIndexScanSet(spliceOperation,tableName);
    }

    @Override
    public <V> DataSet<V> getEmpty(){
        return delegate.getEmpty();
    }

    @Override
    public <V> DataSet<V> getEmpty(String name){
        return delegate.getEmpty(name);
    }

    @Override
    public <V> DataSet<V> singleRowDataSet(V value){
        return delegate.singleRowDataSet(value);
    }

    @Override
    public <V> DataSet<V> singleRowDataSet(V value, Object caller) {
        return delegate.singleRowDataSet(value, caller);
    }

    @Override
    public <V> DataSet<V> createDataSet(Iterable<V> value){
        return delegate.createDataSet(value);
    }

    @Override
    public <V> DataSet<V> createDataSet(Iterable<V> value, String name) {
        return delegate.createDataSet(value);
    }

    @Override
    public <K,V> PairDataSet<K, V> singleRowPairDataSet(K key,V value){
        return delegate.singleRowPairDataSet(key,value);
    }

    @Override
    public <Op extends SpliceOperation> OperationContext<Op> createOperationContext(Op spliceOperation){
        return delegate.createOperationContext(spliceOperation);
    }

    @Override
    public <Op extends SpliceOperation> OperationContext<Op> createOperationContext(Activation activation){
        return delegate.createOperationContext(activation);
    }

    @Override
    public void setJobGroup(String jobName,String jobDescription){
        delegate.setJobGroup(jobName,jobDescription);
    }

    @Override
    public PairDataSet<String, InputStream> readWholeTextFile(String path){
        return delegate.readWholeTextFile(path);
    }

    @Override
    public PairDataSet<String, InputStream> readWholeTextFile(String path,SpliceOperation op){
        return delegate.readWholeTextFile(path,op);
    }

    @Override
    public DataSet<String> readTextFile(String path){
        return delegate.readTextFile(path);
    }

    @Override
    public DataSet<String> readTextFile(String path,SpliceOperation op){
        return delegate.readTextFile(path,op);
    }

    @Override
    public <K,V> PairDataSet<K, V> getEmptyPair(){
        return delegate.getEmptyPair();
    }

    @Override
    public void setSchedulerPool(String pool){
        delegate.setSchedulerPool(pool);
    }

    @Override
    public void setPermissive(){
        delegate.setPermissive();
    }

    @Override
    public void setFailBadRecordCount(int failBadRecordCount){
        delegate.setFailBadRecordCount(failBadRecordCount);
    }

    @Override
    public void clearBroadcastedOperation(){
        //no-op
    }

    @Override
    public void stopJobGroup(String jobName) {
        delegate.stopJobGroup(jobName);

    @Override
    public Partitioner getPartitioner(DataSet<LocatedRow> dataSet, ExecRow template, int[] keyDecodingMap, boolean[] keyOrder) {
        return delegate.getPartitioner(dataSet, template, keyDecodingMap, keyOrder);
    }

    @Override
    public Partitioner getPartitioner(DataSet<LocatedRow> dataSet, ExecRow template, int[] keyDecodingMap, boolean[] keyOrder) {
        return delegate.getPartitioner(dataSet, template, keyDecodingMap, keyOrder);
    }
}


@@ -3899,237 +3899,8 @@
 me);
-%0A%0A    @Override%0A    public Partitioner getPartitioner(DataSet%3CLocatedRow%3E dataSet, ExecRow template, int%5B%5D keyDecodingMap, boolean%5B%5D keyOrder) %7B%0A        return delegate.getPartitioner(dataSet, template, keyDecodingMap, keyOrder);
 %0A   

Fix build