/*
 * 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
 *
 *   https://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.
 */
/*
 * Autogenerated by Thrift Compiler (0.17.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.accumulo.core.tabletserver.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
public class TabletScanClientService {

  public interface Iface {

    public org.apache.accumulo.core.dataImpl.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException;

    public org.apache.accumulo.core.dataImpl.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException;

    public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws org.apache.thrift.TException;

    public org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException;

    public org.apache.accumulo.core.dataImpl.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws NoSuchScanIDException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException;

    public void closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, org.apache.thrift.TException;

    public java.util.List<ActiveScan> getActiveScans(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, org.apache.thrift.TException;

  }

  public interface AsyncIface {

    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan> resultHandler) throws org.apache.thrift.TException;

    public void continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult> resultHandler) throws org.apache.thrift.TException;

    public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> resultHandler) throws org.apache.thrift.TException;

    public void continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> resultHandler) throws org.apache.thrift.TException;

    public void closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void getActiveScans(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>> resultHandler) throws org.apache.thrift.TException;

  }

  public static class Client extends org.apache.thrift.TServiceClient implements Iface {
    public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
      public Factory() {}
      @Override
      public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
        return new Client(prot);
      }
      @Override
      public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
        return new Client(iprot, oprot);
      }
    }

    public Client(org.apache.thrift.protocol.TProtocol prot)
    {
      super(prot, prot);
    }

    public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
      super(iprot, oprot);
    }

    @Override
    public org.apache.accumulo.core.dataImpl.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      send_startScan(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, samplerConfig, batchTimeOut, classLoaderContext, executionHints, busyTimeout);
      return recv_startScan();
    }

    public void send_startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.thrift.TException
    {
      startScan_args args = new startScan_args();
      args.setTinfo(tinfo);
      args.setCredentials(credentials);
      args.setExtent(extent);
      args.setRange(range);
      args.setColumns(columns);
      args.setBatchSize(batchSize);
      args.setSsiList(ssiList);
      args.setSsio(ssio);
      args.setAuthorizations(authorizations);
      args.setWaitForWrites(waitForWrites);
      args.setIsolated(isolated);
      args.setReadaheadThreshold(readaheadThreshold);
      args.setSamplerConfig(samplerConfig);
      args.setBatchTimeOut(batchTimeOut);
      args.setClassLoaderContext(classLoaderContext);
      args.setExecutionHints(executionHints);
      args.setBusyTimeout(busyTimeout);
      sendBase("startScan", args);
    }

    public org.apache.accumulo.core.dataImpl.thrift.InitialScan recv_startScan() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      startScan_result result = new startScan_result();
      receiveBase(result, "startScan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.sec != null) {
        throw result.sec;
      }
      if (result.nste != null) {
        throw result.nste;
      }
      if (result.tmfe != null) {
        throw result.tmfe;
      }
      if (result.tsnpe != null) {
        throw result.tsnpe;
      }
      if (result.ssbe != null) {
        throw result.ssbe;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startScan failed: unknown result");
    }

    @Override
    public org.apache.accumulo.core.dataImpl.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      send_continueScan(tinfo, scanID, busyTimeout);
      return recv_continueScan();
    }

    public void send_continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws org.apache.thrift.TException
    {
      continueScan_args args = new continueScan_args();
      args.setTinfo(tinfo);
      args.setScanID(scanID);
      args.setBusyTimeout(busyTimeout);
      sendBase("continueScan", args);
    }

    public org.apache.accumulo.core.dataImpl.thrift.ScanResult recv_continueScan() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      continueScan_result result = new continueScan_result();
      receiveBase(result, "continueScan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.nssi != null) {
        throw result.nssi;
      }
      if (result.nste != null) {
        throw result.nste;
      }
      if (result.tmfe != null) {
        throw result.tmfe;
      }
      if (result.tsnpe != null) {
        throw result.tsnpe;
      }
      if (result.ssbe != null) {
        throw result.ssbe;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "continueScan failed: unknown result");
    }

    @Override
    public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws org.apache.thrift.TException
    {
      send_closeScan(tinfo, scanID);
    }

    public void send_closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws org.apache.thrift.TException
    {
      closeScan_args args = new closeScan_args();
      args.setTinfo(tinfo);
      args.setScanID(scanID);
      sendBaseOneway("closeScan", args);
    }

    @Override
    public org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      send_startMultiScan(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, samplerConfig, batchTimeOut, classLoaderContext, executionHints, busyTimeout);
      return recv_startMultiScan();
    }

    public void send_startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout) throws org.apache.thrift.TException
    {
      startMultiScan_args args = new startMultiScan_args();
      args.setTinfo(tinfo);
      args.setCredentials(credentials);
      args.setBatch(batch);
      args.setColumns(columns);
      args.setSsiList(ssiList);
      args.setSsio(ssio);
      args.setAuthorizations(authorizations);
      args.setWaitForWrites(waitForWrites);
      args.setSamplerConfig(samplerConfig);
      args.setBatchTimeOut(batchTimeOut);
      args.setClassLoaderContext(classLoaderContext);
      args.setExecutionHints(executionHints);
      args.setBusyTimeout(busyTimeout);
      sendBase("startMultiScan", args);
    }

    public org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan recv_startMultiScan() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      startMultiScan_result result = new startMultiScan_result();
      receiveBase(result, "startMultiScan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.sec != null) {
        throw result.sec;
      }
      if (result.tsnpe != null) {
        throw result.tsnpe;
      }
      if (result.ssbe != null) {
        throw result.ssbe;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startMultiScan failed: unknown result");
    }

    @Override
    public org.apache.accumulo.core.dataImpl.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws NoSuchScanIDException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      send_continueMultiScan(tinfo, scanID, busyTimeout);
      return recv_continueMultiScan();
    }

    public void send_continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout) throws org.apache.thrift.TException
    {
      continueMultiScan_args args = new continueMultiScan_args();
      args.setTinfo(tinfo);
      args.setScanID(scanID);
      args.setBusyTimeout(busyTimeout);
      sendBase("continueMultiScan", args);
    }

    public org.apache.accumulo.core.dataImpl.thrift.MultiScanResult recv_continueMultiScan() throws NoSuchScanIDException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException
    {
      continueMultiScan_result result = new continueMultiScan_result();
      receiveBase(result, "continueMultiScan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.nssi != null) {
        throw result.nssi;
      }
      if (result.tsnpe != null) {
        throw result.tsnpe;
      }
      if (result.ssbe != null) {
        throw result.ssbe;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "continueMultiScan failed: unknown result");
    }

    @Override
    public void closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, org.apache.thrift.TException
    {
      send_closeMultiScan(tinfo, scanID);
      recv_closeMultiScan();
    }

    public void send_closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws org.apache.thrift.TException
    {
      closeMultiScan_args args = new closeMultiScan_args();
      args.setTinfo(tinfo);
      args.setScanID(scanID);
      sendBase("closeMultiScan", args);
    }

    public void recv_closeMultiScan() throws NoSuchScanIDException, org.apache.thrift.TException
    {
      closeMultiScan_result result = new closeMultiScan_result();
      receiveBase(result, "closeMultiScan");
      if (result.nssi != null) {
        throw result.nssi;
      }
      return;
    }

    @Override
    public java.util.List<ActiveScan> getActiveScans(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, org.apache.thrift.TException
    {
      send_getActiveScans(tinfo, credentials);
      return recv_getActiveScans();
    }

    public void send_getActiveScans(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) throws org.apache.thrift.TException
    {
      getActiveScans_args args = new getActiveScans_args();
      args.setTinfo(tinfo);
      args.setCredentials(credentials);
      sendBase("getActiveScans", args);
    }

    public java.util.List<ActiveScan> recv_getActiveScans() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, org.apache.thrift.TException
    {
      getActiveScans_result result = new getActiveScans_result();
      receiveBase(result, "getActiveScans");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.sec != null) {
        throw result.sec;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getActiveScans failed: unknown result");
    }

  }
  public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
    public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
      private org.apache.thrift.async.TAsyncClientManager clientManager;
      private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
      public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
        this.clientManager = clientManager;
        this.protocolFactory = protocolFactory;
      }
    @Override
      public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
        return new AsyncClient(protocolFactory, clientManager, transport);
      }
    }

    public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
      super(protocolFactory, clientManager, transport);
    }

    @Override
    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      startScan_call method_call = new startScan_call(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, samplerConfig, batchTimeOut, classLoaderContext, executionHints, busyTimeout, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class startScan_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.accumulo.core.dataImpl.thrift.InitialScan> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials;
      private org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent;
      private org.apache.accumulo.core.dataImpl.thrift.TRange range;
      private java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns;
      private int batchSize;
      private java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList;
      private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio;
      private java.util.List<java.nio.ByteBuffer> authorizations;
      private boolean waitForWrites;
      private boolean isolated;
      private long readaheadThreshold;
      private TSamplerConfiguration samplerConfig;
      private long batchTimeOut;
      private java.lang.String classLoaderContext;
      private java.util.Map<java.lang.String,java.lang.String> executionHints;
      private long busyTimeout;
      public startScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent, org.apache.accumulo.core.dataImpl.thrift.TRange range, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, int batchSize, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.credentials = credentials;
        this.extent = extent;
        this.range = range;
        this.columns = columns;
        this.batchSize = batchSize;
        this.ssiList = ssiList;
        this.ssio = ssio;
        this.authorizations = authorizations;
        this.waitForWrites = waitForWrites;
        this.isolated = isolated;
        this.readaheadThreshold = readaheadThreshold;
        this.samplerConfig = samplerConfig;
        this.batchTimeOut = batchTimeOut;
        this.classLoaderContext = classLoaderContext;
        this.executionHints = executionHints;
        this.busyTimeout = busyTimeout;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("startScan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        startScan_args args = new startScan_args();
        args.setTinfo(tinfo);
        args.setCredentials(credentials);
        args.setExtent(extent);
        args.setRange(range);
        args.setColumns(columns);
        args.setBatchSize(batchSize);
        args.setSsiList(ssiList);
        args.setSsio(ssio);
        args.setAuthorizations(authorizations);
        args.setWaitForWrites(waitForWrites);
        args.setIsolated(isolated);
        args.setReadaheadThreshold(readaheadThreshold);
        args.setSamplerConfig(samplerConfig);
        args.setBatchTimeOut(batchTimeOut);
        args.setClassLoaderContext(classLoaderContext);
        args.setExecutionHints(executionHints);
        args.setBusyTimeout(busyTimeout);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public org.apache.accumulo.core.dataImpl.thrift.InitialScan getResult() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_startScan();
      }
    }

    @Override
    public void continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      continueScan_call method_call = new continueScan_call(tinfo, scanID, busyTimeout, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class continueScan_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.accumulo.core.dataImpl.thrift.ScanResult> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private long scanID;
      private long busyTimeout;
      public continueScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.scanID = scanID;
        this.busyTimeout = busyTimeout;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("continueScan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        continueScan_args args = new continueScan_args();
        args.setTinfo(tinfo);
        args.setScanID(scanID);
        args.setBusyTimeout(busyTimeout);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public org.apache.accumulo.core.dataImpl.thrift.ScanResult getResult() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_continueScan();
      }
    }

    @Override
    public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      closeScan_call method_call = new closeScan_call(tinfo, scanID, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class closeScan_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private long scanID;
      public closeScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, true);
        this.tinfo = tinfo;
        this.scanID = scanID;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("closeScan", org.apache.thrift.protocol.TMessageType.ONEWAY, 0));
        closeScan_args args = new closeScan_args();
        args.setTinfo(tinfo);
        args.setScanID(scanID);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public Void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    @Override
    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      startMultiScan_call method_call = new startMultiScan_call(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, samplerConfig, batchTimeOut, classLoaderContext, executionHints, busyTimeout, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class startMultiScan_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials;
      private java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch;
      private java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns;
      private java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList;
      private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio;
      private java.util.List<java.nio.ByteBuffer> authorizations;
      private boolean waitForWrites;
      private TSamplerConfiguration samplerConfig;
      private long batchTimeOut;
      private java.lang.String classLoaderContext;
      private java.util.Map<java.lang.String,java.lang.String> executionHints;
      private long busyTimeout;
      public startMultiScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns, java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio, java.util.List<java.nio.ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, java.lang.String classLoaderContext, java.util.Map<java.lang.String,java.lang.String> executionHints, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.credentials = credentials;
        this.batch = batch;
        this.columns = columns;
        this.ssiList = ssiList;
        this.ssio = ssio;
        this.authorizations = authorizations;
        this.waitForWrites = waitForWrites;
        this.samplerConfig = samplerConfig;
        this.batchTimeOut = batchTimeOut;
        this.classLoaderContext = classLoaderContext;
        this.executionHints = executionHints;
        this.busyTimeout = busyTimeout;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("startMultiScan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        startMultiScan_args args = new startMultiScan_args();
        args.setTinfo(tinfo);
        args.setCredentials(credentials);
        args.setBatch(batch);
        args.setColumns(columns);
        args.setSsiList(ssiList);
        args.setSsio(ssio);
        args.setAuthorizations(authorizations);
        args.setWaitForWrites(waitForWrites);
        args.setSamplerConfig(samplerConfig);
        args.setBatchTimeOut(batchTimeOut);
        args.setClassLoaderContext(classLoaderContext);
        args.setExecutionHints(executionHints);
        args.setBusyTimeout(busyTimeout);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan getResult() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_startMultiScan();
      }
    }

    @Override
    public void continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      continueMultiScan_call method_call = new continueMultiScan_call(tinfo, scanID, busyTimeout, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class continueMultiScan_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private long scanID;
      private long busyTimeout;
      public continueMultiScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, long busyTimeout, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.scanID = scanID;
        this.busyTimeout = busyTimeout;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("continueMultiScan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        continueMultiScan_args args = new continueMultiScan_args();
        args.setTinfo(tinfo);
        args.setScanID(scanID);
        args.setBusyTimeout(busyTimeout);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public org.apache.accumulo.core.dataImpl.thrift.MultiScanResult getResult() throws NoSuchScanIDException, TSampleNotPresentException, ScanServerBusyException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_continueMultiScan();
      }
    }

    @Override
    public void closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      closeMultiScan_call method_call = new closeMultiScan_call(tinfo, scanID, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class closeMultiScan_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private long scanID;
      public closeMultiScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.scanID = scanID;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("closeMultiScan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        closeMultiScan_args args = new closeMultiScan_args();
        args.setTinfo(tinfo);
        args.setScanID(scanID);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public Void getResult() throws NoSuchScanIDException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_closeMultiScan();
        return null;
      }
    }

    @Override
    public void getActiveScans(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getActiveScans_call method_call = new getActiveScans_call(tinfo, credentials, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getActiveScans_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<ActiveScan>> {
      private org.apache.accumulo.core.trace.thrift.TInfo tinfo;
      private org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials;
      public getActiveScans_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials, org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tinfo = tinfo;
        this.credentials = credentials;
      }

      @Override
      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getActiveScans", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getActiveScans_args args = new getActiveScans_args();
        args.setTinfo(tinfo);
        args.setCredentials(credentials);
        args.write(prot);
        prot.writeMessageEnd();
      }

      @Override
      public java.util.List<ActiveScan> getResult() throws org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getActiveScans();
      }
    }

  }

  public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(Processor.class.getName());
    public Processor(I iface) {
      super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
    }

    protected Processor(I iface, java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends Iface> java.util.Map<java.lang.String,  org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> getProcessMap(java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      processMap.put("startScan", new startScan());
      processMap.put("continueScan", new continueScan());
      processMap.put("closeScan", new closeScan());
      processMap.put("startMultiScan", new startMultiScan());
      processMap.put("continueMultiScan", new continueMultiScan());
      processMap.put("closeMultiScan", new closeMultiScan());
      processMap.put("getActiveScans", new getActiveScans());
      return processMap;
    }

    public static class startScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, startScan_args> {
      public startScan() {
        super("startScan");
      }

      @Override
      public startScan_args getEmptyArgsInstance() {
        return new startScan_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public startScan_result getResult(I iface, startScan_args args) throws org.apache.thrift.TException {
        startScan_result result = new startScan_result();
        try {
          result.success = iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.samplerConfig, args.batchTimeOut, args.classLoaderContext, args.executionHints, args.busyTimeout);
        } catch (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
          result.sec = sec;
        } catch (NotServingTabletException nste) {
          result.nste = nste;
        } catch (TooManyFilesException tmfe) {
          result.tmfe = tmfe;
        } catch (TSampleNotPresentException tsnpe) {
          result.tsnpe = tsnpe;
        } catch (ScanServerBusyException ssbe) {
          result.ssbe = ssbe;
        }
        return result;
      }
    }

    public static class continueScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, continueScan_args> {
      public continueScan() {
        super("continueScan");
      }

      @Override
      public continueScan_args getEmptyArgsInstance() {
        return new continueScan_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public continueScan_result getResult(I iface, continueScan_args args) throws org.apache.thrift.TException {
        continueScan_result result = new continueScan_result();
        try {
          result.success = iface.continueScan(args.tinfo, args.scanID, args.busyTimeout);
        } catch (NoSuchScanIDException nssi) {
          result.nssi = nssi;
        } catch (NotServingTabletException nste) {
          result.nste = nste;
        } catch (TooManyFilesException tmfe) {
          result.tmfe = tmfe;
        } catch (TSampleNotPresentException tsnpe) {
          result.tsnpe = tsnpe;
        } catch (ScanServerBusyException ssbe) {
          result.ssbe = ssbe;
        }
        return result;
      }
    }

    public static class closeScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, closeScan_args> {
      public closeScan() {
        super("closeScan");
      }

      @Override
      public closeScan_args getEmptyArgsInstance() {
        return new closeScan_args();
      }

      @Override
      protected boolean isOneway() {
        return true;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public org.apache.thrift.TBase getResult(I iface, closeScan_args args) throws org.apache.thrift.TException {
        iface.closeScan(args.tinfo, args.scanID);
        return null;
      }
    }

    public static class startMultiScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, startMultiScan_args> {
      public startMultiScan() {
        super("startMultiScan");
      }

      @Override
      public startMultiScan_args getEmptyArgsInstance() {
        return new startMultiScan_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public startMultiScan_result getResult(I iface, startMultiScan_args args) throws org.apache.thrift.TException {
        startMultiScan_result result = new startMultiScan_result();
        try {
          result.success = iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.samplerConfig, args.batchTimeOut, args.classLoaderContext, args.executionHints, args.busyTimeout);
        } catch (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
          result.sec = sec;
        } catch (TSampleNotPresentException tsnpe) {
          result.tsnpe = tsnpe;
        } catch (ScanServerBusyException ssbe) {
          result.ssbe = ssbe;
        }
        return result;
      }
    }

    public static class continueMultiScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, continueMultiScan_args> {
      public continueMultiScan() {
        super("continueMultiScan");
      }

      @Override
      public continueMultiScan_args getEmptyArgsInstance() {
        return new continueMultiScan_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public continueMultiScan_result getResult(I iface, continueMultiScan_args args) throws org.apache.thrift.TException {
        continueMultiScan_result result = new continueMultiScan_result();
        try {
          result.success = iface.continueMultiScan(args.tinfo, args.scanID, args.busyTimeout);
        } catch (NoSuchScanIDException nssi) {
          result.nssi = nssi;
        } catch (TSampleNotPresentException tsnpe) {
          result.tsnpe = tsnpe;
        } catch (ScanServerBusyException ssbe) {
          result.ssbe = ssbe;
        }
        return result;
      }
    }

    public static class closeMultiScan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, closeMultiScan_args> {
      public closeMultiScan() {
        super("closeMultiScan");
      }

      @Override
      public closeMultiScan_args getEmptyArgsInstance() {
        return new closeMultiScan_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public closeMultiScan_result getResult(I iface, closeMultiScan_args args) throws org.apache.thrift.TException {
        closeMultiScan_result result = new closeMultiScan_result();
        try {
          iface.closeMultiScan(args.tinfo, args.scanID);
        } catch (NoSuchScanIDException nssi) {
          result.nssi = nssi;
        }
        return result;
      }
    }

    public static class getActiveScans<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getActiveScans_args> {
      public getActiveScans() {
        super("getActiveScans");
      }

      @Override
      public getActiveScans_args getEmptyArgsInstance() {
        return new getActiveScans_args();
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      @Override
      public getActiveScans_result getResult(I iface, getActiveScans_args args) throws org.apache.thrift.TException {
        getActiveScans_result result = new getActiveScans_result();
        try {
          result.success = iface.getActiveScans(args.tinfo, args.credentials);
        } catch (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
          result.sec = sec;
        }
        return result;
      }
    }

  }

  public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(AsyncProcessor.class.getName());
    public AsyncProcessor(I iface) {
      super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>>()));
    }

    protected AsyncProcessor(I iface, java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends AsyncIface> java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
      processMap.put("startScan", new startScan());
      processMap.put("continueScan", new continueScan());
      processMap.put("closeScan", new closeScan());
      processMap.put("startMultiScan", new startMultiScan());
      processMap.put("continueMultiScan", new continueMultiScan());
      processMap.put("closeMultiScan", new closeMultiScan());
      processMap.put("getActiveScans", new getActiveScans());
      return processMap;
    }

    public static class startScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, startScan_args, org.apache.accumulo.core.dataImpl.thrift.InitialScan> {
      public startScan() {
        super("startScan");
      }

      @Override
      public startScan_args getEmptyArgsInstance() {
        return new startScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan>() { 
          @Override
          public void onComplete(org.apache.accumulo.core.dataImpl.thrift.InitialScan o) {
            startScan_result result = new startScan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            startScan_result result = new startScan_result();
            if (e instanceof org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) {
              result.sec = (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) e;
              result.setSecIsSet(true);
              msg = result;
            } else if (e instanceof NotServingTabletException) {
              result.nste = (NotServingTabletException) e;
              result.setNsteIsSet(true);
              msg = result;
            } else if (e instanceof TooManyFilesException) {
              result.tmfe = (TooManyFilesException) e;
              result.setTmfeIsSet(true);
              msg = result;
            } else if (e instanceof TSampleNotPresentException) {
              result.tsnpe = (TSampleNotPresentException) e;
              result.setTsnpeIsSet(true);
              msg = result;
            } else if (e instanceof ScanServerBusyException) {
              result.ssbe = (ScanServerBusyException) e;
              result.setSsbeIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, startScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialScan> resultHandler) throws org.apache.thrift.TException {
        iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.samplerConfig, args.batchTimeOut, args.classLoaderContext, args.executionHints, args.busyTimeout,resultHandler);
      }
    }

    public static class continueScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, continueScan_args, org.apache.accumulo.core.dataImpl.thrift.ScanResult> {
      public continueScan() {
        super("continueScan");
      }

      @Override
      public continueScan_args getEmptyArgsInstance() {
        return new continueScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult>() { 
          @Override
          public void onComplete(org.apache.accumulo.core.dataImpl.thrift.ScanResult o) {
            continueScan_result result = new continueScan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            continueScan_result result = new continueScan_result();
            if (e instanceof NoSuchScanIDException) {
              result.nssi = (NoSuchScanIDException) e;
              result.setNssiIsSet(true);
              msg = result;
            } else if (e instanceof NotServingTabletException) {
              result.nste = (NotServingTabletException) e;
              result.setNsteIsSet(true);
              msg = result;
            } else if (e instanceof TooManyFilesException) {
              result.tmfe = (TooManyFilesException) e;
              result.setTmfeIsSet(true);
              msg = result;
            } else if (e instanceof TSampleNotPresentException) {
              result.tsnpe = (TSampleNotPresentException) e;
              result.setTsnpeIsSet(true);
              msg = result;
            } else if (e instanceof ScanServerBusyException) {
              result.ssbe = (ScanServerBusyException) e;
              result.setSsbeIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, continueScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.ScanResult> resultHandler) throws org.apache.thrift.TException {
        iface.continueScan(args.tinfo, args.scanID, args.busyTimeout,resultHandler);
      }
    }

    public static class closeScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, closeScan_args, Void> {
      public closeScan() {
        super("closeScan");
      }

      @Override
      public closeScan_args getEmptyArgsInstance() {
        return new closeScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          @Override
          public void onComplete(Void o) {
          }
          @Override
          public void onError(java.lang.Exception e) {
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
            } else {
              _LOGGER.error("Exception inside oneway handler", e);
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return true;
      }

      @Override
      public void start(I iface, closeScan_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.closeScan(args.tinfo, args.scanID,resultHandler);
      }
    }

    public static class startMultiScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, startMultiScan_args, org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> {
      public startMultiScan() {
        super("startMultiScan");
      }

      @Override
      public startMultiScan_args getEmptyArgsInstance() {
        return new startMultiScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan>() { 
          @Override
          public void onComplete(org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan o) {
            startMultiScan_result result = new startMultiScan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            startMultiScan_result result = new startMultiScan_result();
            if (e instanceof org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) {
              result.sec = (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) e;
              result.setSecIsSet(true);
              msg = result;
            } else if (e instanceof TSampleNotPresentException) {
              result.tsnpe = (TSampleNotPresentException) e;
              result.setTsnpeIsSet(true);
              msg = result;
            } else if (e instanceof ScanServerBusyException) {
              result.ssbe = (ScanServerBusyException) e;
              result.setSsbeIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, startMultiScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan> resultHandler) throws org.apache.thrift.TException {
        iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.samplerConfig, args.batchTimeOut, args.classLoaderContext, args.executionHints, args.busyTimeout,resultHandler);
      }
    }

    public static class continueMultiScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, continueMultiScan_args, org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> {
      public continueMultiScan() {
        super("continueMultiScan");
      }

      @Override
      public continueMultiScan_args getEmptyArgsInstance() {
        return new continueMultiScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult>() { 
          @Override
          public void onComplete(org.apache.accumulo.core.dataImpl.thrift.MultiScanResult o) {
            continueMultiScan_result result = new continueMultiScan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            continueMultiScan_result result = new continueMultiScan_result();
            if (e instanceof NoSuchScanIDException) {
              result.nssi = (NoSuchScanIDException) e;
              result.setNssiIsSet(true);
              msg = result;
            } else if (e instanceof TSampleNotPresentException) {
              result.tsnpe = (TSampleNotPresentException) e;
              result.setTsnpeIsSet(true);
              msg = result;
            } else if (e instanceof ScanServerBusyException) {
              result.ssbe = (ScanServerBusyException) e;
              result.setSsbeIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, continueMultiScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.dataImpl.thrift.MultiScanResult> resultHandler) throws org.apache.thrift.TException {
        iface.continueMultiScan(args.tinfo, args.scanID, args.busyTimeout,resultHandler);
      }
    }

    public static class closeMultiScan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, closeMultiScan_args, Void> {
      public closeMultiScan() {
        super("closeMultiScan");
      }

      @Override
      public closeMultiScan_args getEmptyArgsInstance() {
        return new closeMultiScan_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          @Override
          public void onComplete(Void o) {
            closeMultiScan_result result = new closeMultiScan_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            closeMultiScan_result result = new closeMultiScan_result();
            if (e instanceof NoSuchScanIDException) {
              result.nssi = (NoSuchScanIDException) e;
              result.setNssiIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, closeMultiScan_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.closeMultiScan(args.tinfo, args.scanID,resultHandler);
      }
    }

    public static class getActiveScans<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getActiveScans_args, java.util.List<ActiveScan>> {
      public getActiveScans() {
        super("getActiveScans");
      }

      @Override
      public getActiveScans_args getEmptyArgsInstance() {
        return new getActiveScans_args();
      }

      @Override
      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>>() { 
          @Override
          public void onComplete(java.util.List<ActiveScan> o) {
            getActiveScans_result result = new getActiveScans_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          @Override
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            getActiveScans_result result = new getActiveScans_result();
            if (e instanceof org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) {
              result.sec = (org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException) e;
              result.setSecIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      @Override
      protected boolean isOneway() {
        return false;
      }

      @Override
      public void start(I iface, getActiveScans_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<ActiveScan>> resultHandler) throws org.apache.thrift.TException {
        iface.getActiveScans(args.tinfo, args.credentials,resultHandler);
      }
    }

  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class startScan_args implements org.apache.thrift.TBase<startScan_args, startScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<startScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("startScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)11);
    private static final org.apache.thrift.protocol.TField CREDENTIALS_FIELD_DESC = new org.apache.thrift.protocol.TField("credentials", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EXTENT_FIELD_DESC = new org.apache.thrift.protocol.TField("extent", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField RANGE_FIELD_DESC = new org.apache.thrift.protocol.TField("range", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("columns", org.apache.thrift.protocol.TType.LIST, (short)4);
    private static final org.apache.thrift.protocol.TField BATCH_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("batchSize", org.apache.thrift.protocol.TType.I32, (short)5);
    private static final org.apache.thrift.protocol.TField SSI_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("ssiList", org.apache.thrift.protocol.TType.LIST, (short)6);
    private static final org.apache.thrift.protocol.TField SSIO_FIELD_DESC = new org.apache.thrift.protocol.TField("ssio", org.apache.thrift.protocol.TType.MAP, (short)7);
    private static final org.apache.thrift.protocol.TField AUTHORIZATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizations", org.apache.thrift.protocol.TType.LIST, (short)8);
    private static final org.apache.thrift.protocol.TField WAIT_FOR_WRITES_FIELD_DESC = new org.apache.thrift.protocol.TField("waitForWrites", org.apache.thrift.protocol.TType.BOOL, (short)9);
    private static final org.apache.thrift.protocol.TField ISOLATED_FIELD_DESC = new org.apache.thrift.protocol.TField("isolated", org.apache.thrift.protocol.TType.BOOL, (short)10);
    private static final org.apache.thrift.protocol.TField READAHEAD_THRESHOLD_FIELD_DESC = new org.apache.thrift.protocol.TField("readaheadThreshold", org.apache.thrift.protocol.TType.I64, (short)12);
    private static final org.apache.thrift.protocol.TField SAMPLER_CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("samplerConfig", org.apache.thrift.protocol.TType.STRUCT, (short)13);
    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)14);
    private static final org.apache.thrift.protocol.TField CLASS_LOADER_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("classLoaderContext", org.apache.thrift.protocol.TType.STRING, (short)15);
    private static final org.apache.thrift.protocol.TField EXECUTION_HINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("executionHints", org.apache.thrift.protocol.TType.MAP, (short)16);
    private static final org.apache.thrift.protocol.TField BUSY_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("busyTimeout", org.apache.thrift.protocol.TType.I64, (short)17);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new startScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new startScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TRange range; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns; // required
    public int batchSize; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList; // required
    public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<java.nio.ByteBuffer> authorizations; // required
    public boolean waitForWrites; // required
    public boolean isolated; // required
    public long readaheadThreshold; // required
    public @org.apache.thrift.annotation.Nullable TSamplerConfiguration samplerConfig; // required
    public long batchTimeOut; // required
    public @org.apache.thrift.annotation.Nullable java.lang.String classLoaderContext; // required
    public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> executionHints; // required
    public long busyTimeout; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)11, "tinfo"),
      CREDENTIALS((short)1, "credentials"),
      EXTENT((short)2, "extent"),
      RANGE((short)3, "range"),
      COLUMNS((short)4, "columns"),
      BATCH_SIZE((short)5, "batchSize"),
      SSI_LIST((short)6, "ssiList"),
      SSIO((short)7, "ssio"),
      AUTHORIZATIONS((short)8, "authorizations"),
      WAIT_FOR_WRITES((short)9, "waitForWrites"),
      ISOLATED((short)10, "isolated"),
      READAHEAD_THRESHOLD((short)12, "readaheadThreshold"),
      SAMPLER_CONFIG((short)13, "samplerConfig"),
      BATCH_TIME_OUT((short)14, "batchTimeOut"),
      CLASS_LOADER_CONTEXT((short)15, "classLoaderContext"),
      EXECUTION_HINTS((short)16, "executionHints"),
      BUSY_TIMEOUT((short)17, "busyTimeout");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 11: // TINFO
            return TINFO;
          case 1: // CREDENTIALS
            return CREDENTIALS;
          case 2: // EXTENT
            return EXTENT;
          case 3: // RANGE
            return RANGE;
          case 4: // COLUMNS
            return COLUMNS;
          case 5: // BATCH_SIZE
            return BATCH_SIZE;
          case 6: // SSI_LIST
            return SSI_LIST;
          case 7: // SSIO
            return SSIO;
          case 8: // AUTHORIZATIONS
            return AUTHORIZATIONS;
          case 9: // WAIT_FOR_WRITES
            return WAIT_FOR_WRITES;
          case 10: // ISOLATED
            return ISOLATED;
          case 12: // READAHEAD_THRESHOLD
            return READAHEAD_THRESHOLD;
          case 13: // SAMPLER_CONFIG
            return SAMPLER_CONFIG;
          case 14: // BATCH_TIME_OUT
            return BATCH_TIME_OUT;
          case 15: // CLASS_LOADER_CONTEXT
            return CLASS_LOADER_CONTEXT;
          case 16: // EXECUTION_HINTS
            return EXECUTION_HINTS;
          case 17: // BUSY_TIMEOUT
            return BUSY_TIMEOUT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __BATCHSIZE_ISSET_ID = 0;
    private static final int __WAITFORWRITES_ISSET_ID = 1;
    private static final int __ISOLATED_ISSET_ID = 2;
    private static final int __READAHEADTHRESHOLD_ISSET_ID = 3;
    private static final int __BATCHTIMEOUT_ISSET_ID = 4;
    private static final int __BUSYTIMEOUT_ISSET_ID = 5;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.CREDENTIALS, new org.apache.thrift.meta_data.FieldMetaData("credentials", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.securityImpl.thrift.TCredentials.class)));
      tmpMap.put(_Fields.EXTENT, new org.apache.thrift.meta_data.FieldMetaData("extent", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent.class)));
      tmpMap.put(_Fields.RANGE, new org.apache.thrift.meta_data.FieldMetaData("range", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.TRange.class)));
      tmpMap.put(_Fields.COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("columns", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.TColumn.class))));
      tmpMap.put(_Fields.BATCH_SIZE, new org.apache.thrift.meta_data.FieldMetaData("batchSize", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.SSI_LIST, new org.apache.thrift.meta_data.FieldMetaData("ssiList", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.IterInfo.class))));
      tmpMap.put(_Fields.SSIO, new org.apache.thrift.meta_data.FieldMetaData("ssio", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
      tmpMap.put(_Fields.AUTHORIZATIONS, new org.apache.thrift.meta_data.FieldMetaData("authorizations", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      tmpMap.put(_Fields.WAIT_FOR_WRITES, new org.apache.thrift.meta_data.FieldMetaData("waitForWrites", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.ISOLATED, new org.apache.thrift.meta_data.FieldMetaData("isolated", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.READAHEAD_THRESHOLD, new org.apache.thrift.meta_data.FieldMetaData("readaheadThreshold", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.SAMPLER_CONFIG, new org.apache.thrift.meta_data.FieldMetaData("samplerConfig", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSamplerConfiguration.class)));
      tmpMap.put(_Fields.BATCH_TIME_OUT, new org.apache.thrift.meta_data.FieldMetaData("batchTimeOut", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.CLASS_LOADER_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("classLoaderContext", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.EXECUTION_HINTS, new org.apache.thrift.meta_data.FieldMetaData("executionHints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.BUSY_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("busyTimeout", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(startScan_args.class, metaDataMap);
    }

    public startScan_args() {
    }

    public startScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials,
      org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent,
      org.apache.accumulo.core.dataImpl.thrift.TRange range,
      java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns,
      int batchSize,
      java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList,
      java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio,
      java.util.List<java.nio.ByteBuffer> authorizations,
      boolean waitForWrites,
      boolean isolated,
      long readaheadThreshold,
      TSamplerConfiguration samplerConfig,
      long batchTimeOut,
      java.lang.String classLoaderContext,
      java.util.Map<java.lang.String,java.lang.String> executionHints,
      long busyTimeout)
    {
      this();
      this.tinfo = tinfo;
      this.credentials = credentials;
      this.extent = extent;
      this.range = range;
      this.columns = columns;
      this.batchSize = batchSize;
      setBatchSizeIsSet(true);
      this.ssiList = ssiList;
      this.ssio = ssio;
      this.authorizations = authorizations;
      this.waitForWrites = waitForWrites;
      setWaitForWritesIsSet(true);
      this.isolated = isolated;
      setIsolatedIsSet(true);
      this.readaheadThreshold = readaheadThreshold;
      setReadaheadThresholdIsSet(true);
      this.samplerConfig = samplerConfig;
      this.batchTimeOut = batchTimeOut;
      setBatchTimeOutIsSet(true);
      this.classLoaderContext = classLoaderContext;
      this.executionHints = executionHints;
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public startScan_args(startScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      if (other.isSetCredentials()) {
        this.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials(other.credentials);
      }
      if (other.isSetExtent()) {
        this.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent(other.extent);
      }
      if (other.isSetRange()) {
        this.range = new org.apache.accumulo.core.dataImpl.thrift.TRange(other.range);
      }
      if (other.isSetColumns()) {
        java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> __this__columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(other.columns.size());
        for (org.apache.accumulo.core.dataImpl.thrift.TColumn other_element : other.columns) {
          __this__columns.add(new org.apache.accumulo.core.dataImpl.thrift.TColumn(other_element));
        }
        this.columns = __this__columns;
      }
      this.batchSize = other.batchSize;
      if (other.isSetSsiList()) {
        java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> __this__ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(other.ssiList.size());
        for (org.apache.accumulo.core.dataImpl.thrift.IterInfo other_element : other.ssiList) {
          __this__ssiList.add(new org.apache.accumulo.core.dataImpl.thrift.IterInfo(other_element));
        }
        this.ssiList = __this__ssiList;
      }
      if (other.isSetSsio()) {
        java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> __this__ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(other.ssio.size());
        for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> other_element : other.ssio.entrySet()) {

          java.lang.String other_element_key = other_element.getKey();
          java.util.Map<java.lang.String,java.lang.String> other_element_value = other_element.getValue();

          java.lang.String __this__ssio_copy_key = other_element_key;

          java.util.Map<java.lang.String,java.lang.String> __this__ssio_copy_value = new java.util.HashMap<java.lang.String,java.lang.String>(other_element_value);

          __this__ssio.put(__this__ssio_copy_key, __this__ssio_copy_value);
        }
        this.ssio = __this__ssio;
      }
      if (other.isSetAuthorizations()) {
        java.util.List<java.nio.ByteBuffer> __this__authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(other.authorizations);
        this.authorizations = __this__authorizations;
      }
      this.waitForWrites = other.waitForWrites;
      this.isolated = other.isolated;
      this.readaheadThreshold = other.readaheadThreshold;
      if (other.isSetSamplerConfig()) {
        this.samplerConfig = new TSamplerConfiguration(other.samplerConfig);
      }
      this.batchTimeOut = other.batchTimeOut;
      if (other.isSetClassLoaderContext()) {
        this.classLoaderContext = other.classLoaderContext;
      }
      if (other.isSetExecutionHints()) {
        java.util.Map<java.lang.String,java.lang.String> __this__executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(other.executionHints);
        this.executionHints = __this__executionHints;
      }
      this.busyTimeout = other.busyTimeout;
    }

    @Override
    public startScan_args deepCopy() {
      return new startScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      this.credentials = null;
      this.extent = null;
      this.range = null;
      this.columns = null;
      setBatchSizeIsSet(false);
      this.batchSize = 0;
      this.ssiList = null;
      this.ssio = null;
      this.authorizations = null;
      setWaitForWritesIsSet(false);
      this.waitForWrites = false;
      setIsolatedIsSet(false);
      this.isolated = false;
      setReadaheadThresholdIsSet(false);
      this.readaheadThreshold = 0;
      this.samplerConfig = null;
      setBatchTimeOutIsSet(false);
      this.batchTimeOut = 0;
      this.classLoaderContext = null;
      this.executionHints = null;
      setBusyTimeoutIsSet(false);
      this.busyTimeout = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public startScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.securityImpl.thrift.TCredentials getCredentials() {
      return this.credentials;
    }

    public startScan_args setCredentials(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) {
      this.credentials = credentials;
      return this;
    }

    public void unsetCredentials() {
      this.credentials = null;
    }

    /** Returns true if field credentials is set (has been assigned a value) and false otherwise */
    public boolean isSetCredentials() {
      return this.credentials != null;
    }

    public void setCredentialsIsSet(boolean value) {
      if (!value) {
        this.credentials = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.TKeyExtent getExtent() {
      return this.extent;
    }

    public startScan_args setExtent(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent) {
      this.extent = extent;
      return this;
    }

    public void unsetExtent() {
      this.extent = null;
    }

    /** Returns true if field extent is set (has been assigned a value) and false otherwise */
    public boolean isSetExtent() {
      return this.extent != null;
    }

    public void setExtentIsSet(boolean value) {
      if (!value) {
        this.extent = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.TRange getRange() {
      return this.range;
    }

    public startScan_args setRange(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TRange range) {
      this.range = range;
      return this;
    }

    public void unsetRange() {
      this.range = null;
    }

    /** Returns true if field range is set (has been assigned a value) and false otherwise */
    public boolean isSetRange() {
      return this.range != null;
    }

    public void setRangeIsSet(boolean value) {
      if (!value) {
        this.range = null;
      }
    }

    public int getColumnsSize() {
      return (this.columns == null) ? 0 : this.columns.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<org.apache.accumulo.core.dataImpl.thrift.TColumn> getColumnsIterator() {
      return (this.columns == null) ? null : this.columns.iterator();
    }

    public void addToColumns(org.apache.accumulo.core.dataImpl.thrift.TColumn elem) {
      if (this.columns == null) {
        this.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>();
      }
      this.columns.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> getColumns() {
      return this.columns;
    }

    public startScan_args setColumns(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns) {
      this.columns = columns;
      return this;
    }

    public void unsetColumns() {
      this.columns = null;
    }

    /** Returns true if field columns is set (has been assigned a value) and false otherwise */
    public boolean isSetColumns() {
      return this.columns != null;
    }

    public void setColumnsIsSet(boolean value) {
      if (!value) {
        this.columns = null;
      }
    }

    public int getBatchSize() {
      return this.batchSize;
    }

    public startScan_args setBatchSize(int batchSize) {
      this.batchSize = batchSize;
      setBatchSizeIsSet(true);
      return this;
    }

    public void unsetBatchSize() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BATCHSIZE_ISSET_ID);
    }

    /** Returns true if field batchSize is set (has been assigned a value) and false otherwise */
    public boolean isSetBatchSize() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BATCHSIZE_ISSET_ID);
    }

    public void setBatchSizeIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BATCHSIZE_ISSET_ID, value);
    }

    public int getSsiListSize() {
      return (this.ssiList == null) ? 0 : this.ssiList.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<org.apache.accumulo.core.dataImpl.thrift.IterInfo> getSsiListIterator() {
      return (this.ssiList == null) ? null : this.ssiList.iterator();
    }

    public void addToSsiList(org.apache.accumulo.core.dataImpl.thrift.IterInfo elem) {
      if (this.ssiList == null) {
        this.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>();
      }
      this.ssiList.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> getSsiList() {
      return this.ssiList;
    }

    public startScan_args setSsiList(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList) {
      this.ssiList = ssiList;
      return this;
    }

    public void unsetSsiList() {
      this.ssiList = null;
    }

    /** Returns true if field ssiList is set (has been assigned a value) and false otherwise */
    public boolean isSetSsiList() {
      return this.ssiList != null;
    }

    public void setSsiListIsSet(boolean value) {
      if (!value) {
        this.ssiList = null;
      }
    }

    public int getSsioSize() {
      return (this.ssio == null) ? 0 : this.ssio.size();
    }

    public void putToSsio(java.lang.String key, java.util.Map<java.lang.String,java.lang.String> val) {
      if (this.ssio == null) {
        this.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>();
      }
      this.ssio.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getSsio() {
      return this.ssio;
    }

    public startScan_args setSsio(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio) {
      this.ssio = ssio;
      return this;
    }

    public void unsetSsio() {
      this.ssio = null;
    }

    /** Returns true if field ssio is set (has been assigned a value) and false otherwise */
    public boolean isSetSsio() {
      return this.ssio != null;
    }

    public void setSsioIsSet(boolean value) {
      if (!value) {
        this.ssio = null;
      }
    }

    public int getAuthorizationsSize() {
      return (this.authorizations == null) ? 0 : this.authorizations.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.nio.ByteBuffer> getAuthorizationsIterator() {
      return (this.authorizations == null) ? null : this.authorizations.iterator();
    }

    public void addToAuthorizations(java.nio.ByteBuffer elem) {
      if (this.authorizations == null) {
        this.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>();
      }
      this.authorizations.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.nio.ByteBuffer> getAuthorizations() {
      return this.authorizations;
    }

    public startScan_args setAuthorizations(@org.apache.thrift.annotation.Nullable java.util.List<java.nio.ByteBuffer> authorizations) {
      this.authorizations = authorizations;
      return this;
    }

    public void unsetAuthorizations() {
      this.authorizations = null;
    }

    /** Returns true if field authorizations is set (has been assigned a value) and false otherwise */
    public boolean isSetAuthorizations() {
      return this.authorizations != null;
    }

    public void setAuthorizationsIsSet(boolean value) {
      if (!value) {
        this.authorizations = null;
      }
    }

    public boolean isWaitForWrites() {
      return this.waitForWrites;
    }

    public startScan_args setWaitForWrites(boolean waitForWrites) {
      this.waitForWrites = waitForWrites;
      setWaitForWritesIsSet(true);
      return this;
    }

    public void unsetWaitForWrites() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID);
    }

    /** Returns true if field waitForWrites is set (has been assigned a value) and false otherwise */
    public boolean isSetWaitForWrites() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID);
    }

    public void setWaitForWritesIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID, value);
    }

    public boolean isIsolated() {
      return this.isolated;
    }

    public startScan_args setIsolated(boolean isolated) {
      this.isolated = isolated;
      setIsolatedIsSet(true);
      return this;
    }

    public void unsetIsolated() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ISOLATED_ISSET_ID);
    }

    /** Returns true if field isolated is set (has been assigned a value) and false otherwise */
    public boolean isSetIsolated() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ISOLATED_ISSET_ID);
    }

    public void setIsolatedIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ISOLATED_ISSET_ID, value);
    }

    public long getReadaheadThreshold() {
      return this.readaheadThreshold;
    }

    public startScan_args setReadaheadThreshold(long readaheadThreshold) {
      this.readaheadThreshold = readaheadThreshold;
      setReadaheadThresholdIsSet(true);
      return this;
    }

    public void unsetReadaheadThreshold() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __READAHEADTHRESHOLD_ISSET_ID);
    }

    /** Returns true if field readaheadThreshold is set (has been assigned a value) and false otherwise */
    public boolean isSetReadaheadThreshold() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __READAHEADTHRESHOLD_ISSET_ID);
    }

    public void setReadaheadThresholdIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __READAHEADTHRESHOLD_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public TSamplerConfiguration getSamplerConfig() {
      return this.samplerConfig;
    }

    public startScan_args setSamplerConfig(@org.apache.thrift.annotation.Nullable TSamplerConfiguration samplerConfig) {
      this.samplerConfig = samplerConfig;
      return this;
    }

    public void unsetSamplerConfig() {
      this.samplerConfig = null;
    }

    /** Returns true if field samplerConfig is set (has been assigned a value) and false otherwise */
    public boolean isSetSamplerConfig() {
      return this.samplerConfig != null;
    }

    public void setSamplerConfigIsSet(boolean value) {
      if (!value) {
        this.samplerConfig = null;
      }
    }

    public long getBatchTimeOut() {
      return this.batchTimeOut;
    }

    public startScan_args setBatchTimeOut(long batchTimeOut) {
      this.batchTimeOut = batchTimeOut;
      setBatchTimeOutIsSet(true);
      return this;
    }

    public void unsetBatchTimeOut() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID);
    }

    /** Returns true if field batchTimeOut is set (has been assigned a value) and false otherwise */
    public boolean isSetBatchTimeOut() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID);
    }

    public void setBatchTimeOutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getClassLoaderContext() {
      return this.classLoaderContext;
    }

    public startScan_args setClassLoaderContext(@org.apache.thrift.annotation.Nullable java.lang.String classLoaderContext) {
      this.classLoaderContext = classLoaderContext;
      return this;
    }

    public void unsetClassLoaderContext() {
      this.classLoaderContext = null;
    }

    /** Returns true if field classLoaderContext is set (has been assigned a value) and false otherwise */
    public boolean isSetClassLoaderContext() {
      return this.classLoaderContext != null;
    }

    public void setClassLoaderContextIsSet(boolean value) {
      if (!value) {
        this.classLoaderContext = null;
      }
    }

    public int getExecutionHintsSize() {
      return (this.executionHints == null) ? 0 : this.executionHints.size();
    }

    public void putToExecutionHints(java.lang.String key, java.lang.String val) {
      if (this.executionHints == null) {
        this.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.executionHints.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getExecutionHints() {
      return this.executionHints;
    }

    public startScan_args setExecutionHints(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> executionHints) {
      this.executionHints = executionHints;
      return this;
    }

    public void unsetExecutionHints() {
      this.executionHints = null;
    }

    /** Returns true if field executionHints is set (has been assigned a value) and false otherwise */
    public boolean isSetExecutionHints() {
      return this.executionHints != null;
    }

    public void setExecutionHintsIsSet(boolean value) {
      if (!value) {
        this.executionHints = null;
      }
    }

    public long getBusyTimeout() {
      return this.busyTimeout;
    }

    public startScan_args setBusyTimeout(long busyTimeout) {
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
      return this;
    }

    public void unsetBusyTimeout() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    /** Returns true if field busyTimeout is set (has been assigned a value) and false otherwise */
    public boolean isSetBusyTimeout() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    public void setBusyTimeoutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case CREDENTIALS:
        if (value == null) {
          unsetCredentials();
        } else {
          setCredentials((org.apache.accumulo.core.securityImpl.thrift.TCredentials)value);
        }
        break;

      case EXTENT:
        if (value == null) {
          unsetExtent();
        } else {
          setExtent((org.apache.accumulo.core.dataImpl.thrift.TKeyExtent)value);
        }
        break;

      case RANGE:
        if (value == null) {
          unsetRange();
        } else {
          setRange((org.apache.accumulo.core.dataImpl.thrift.TRange)value);
        }
        break;

      case COLUMNS:
        if (value == null) {
          unsetColumns();
        } else {
          setColumns((java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn>)value);
        }
        break;

      case BATCH_SIZE:
        if (value == null) {
          unsetBatchSize();
        } else {
          setBatchSize((java.lang.Integer)value);
        }
        break;

      case SSI_LIST:
        if (value == null) {
          unsetSsiList();
        } else {
          setSsiList((java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo>)value);
        }
        break;

      case SSIO:
        if (value == null) {
          unsetSsio();
        } else {
          setSsio((java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>)value);
        }
        break;

      case AUTHORIZATIONS:
        if (value == null) {
          unsetAuthorizations();
        } else {
          setAuthorizations((java.util.List<java.nio.ByteBuffer>)value);
        }
        break;

      case WAIT_FOR_WRITES:
        if (value == null) {
          unsetWaitForWrites();
        } else {
          setWaitForWrites((java.lang.Boolean)value);
        }
        break;

      case ISOLATED:
        if (value == null) {
          unsetIsolated();
        } else {
          setIsolated((java.lang.Boolean)value);
        }
        break;

      case READAHEAD_THRESHOLD:
        if (value == null) {
          unsetReadaheadThreshold();
        } else {
          setReadaheadThreshold((java.lang.Long)value);
        }
        break;

      case SAMPLER_CONFIG:
        if (value == null) {
          unsetSamplerConfig();
        } else {
          setSamplerConfig((TSamplerConfiguration)value);
        }
        break;

      case BATCH_TIME_OUT:
        if (value == null) {
          unsetBatchTimeOut();
        } else {
          setBatchTimeOut((java.lang.Long)value);
        }
        break;

      case CLASS_LOADER_CONTEXT:
        if (value == null) {
          unsetClassLoaderContext();
        } else {
          setClassLoaderContext((java.lang.String)value);
        }
        break;

      case EXECUTION_HINTS:
        if (value == null) {
          unsetExecutionHints();
        } else {
          setExecutionHints((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case BUSY_TIMEOUT:
        if (value == null) {
          unsetBusyTimeout();
        } else {
          setBusyTimeout((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case CREDENTIALS:
        return getCredentials();

      case EXTENT:
        return getExtent();

      case RANGE:
        return getRange();

      case COLUMNS:
        return getColumns();

      case BATCH_SIZE:
        return getBatchSize();

      case SSI_LIST:
        return getSsiList();

      case SSIO:
        return getSsio();

      case AUTHORIZATIONS:
        return getAuthorizations();

      case WAIT_FOR_WRITES:
        return isWaitForWrites();

      case ISOLATED:
        return isIsolated();

      case READAHEAD_THRESHOLD:
        return getReadaheadThreshold();

      case SAMPLER_CONFIG:
        return getSamplerConfig();

      case BATCH_TIME_OUT:
        return getBatchTimeOut();

      case CLASS_LOADER_CONTEXT:
        return getClassLoaderContext();

      case EXECUTION_HINTS:
        return getExecutionHints();

      case BUSY_TIMEOUT:
        return getBusyTimeout();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case CREDENTIALS:
        return isSetCredentials();
      case EXTENT:
        return isSetExtent();
      case RANGE:
        return isSetRange();
      case COLUMNS:
        return isSetColumns();
      case BATCH_SIZE:
        return isSetBatchSize();
      case SSI_LIST:
        return isSetSsiList();
      case SSIO:
        return isSetSsio();
      case AUTHORIZATIONS:
        return isSetAuthorizations();
      case WAIT_FOR_WRITES:
        return isSetWaitForWrites();
      case ISOLATED:
        return isSetIsolated();
      case READAHEAD_THRESHOLD:
        return isSetReadaheadThreshold();
      case SAMPLER_CONFIG:
        return isSetSamplerConfig();
      case BATCH_TIME_OUT:
        return isSetBatchTimeOut();
      case CLASS_LOADER_CONTEXT:
        return isSetClassLoaderContext();
      case EXECUTION_HINTS:
        return isSetExecutionHints();
      case BUSY_TIMEOUT:
        return isSetBusyTimeout();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof startScan_args)
        return this.equals((startScan_args)that);
      return false;
    }

    public boolean equals(startScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_credentials = true && this.isSetCredentials();
      boolean that_present_credentials = true && that.isSetCredentials();
      if (this_present_credentials || that_present_credentials) {
        if (!(this_present_credentials && that_present_credentials))
          return false;
        if (!this.credentials.equals(that.credentials))
          return false;
      }

      boolean this_present_extent = true && this.isSetExtent();
      boolean that_present_extent = true && that.isSetExtent();
      if (this_present_extent || that_present_extent) {
        if (!(this_present_extent && that_present_extent))
          return false;
        if (!this.extent.equals(that.extent))
          return false;
      }

      boolean this_present_range = true && this.isSetRange();
      boolean that_present_range = true && that.isSetRange();
      if (this_present_range || that_present_range) {
        if (!(this_present_range && that_present_range))
          return false;
        if (!this.range.equals(that.range))
          return false;
      }

      boolean this_present_columns = true && this.isSetColumns();
      boolean that_present_columns = true && that.isSetColumns();
      if (this_present_columns || that_present_columns) {
        if (!(this_present_columns && that_present_columns))
          return false;
        if (!this.columns.equals(that.columns))
          return false;
      }

      boolean this_present_batchSize = true;
      boolean that_present_batchSize = true;
      if (this_present_batchSize || that_present_batchSize) {
        if (!(this_present_batchSize && that_present_batchSize))
          return false;
        if (this.batchSize != that.batchSize)
          return false;
      }

      boolean this_present_ssiList = true && this.isSetSsiList();
      boolean that_present_ssiList = true && that.isSetSsiList();
      if (this_present_ssiList || that_present_ssiList) {
        if (!(this_present_ssiList && that_present_ssiList))
          return false;
        if (!this.ssiList.equals(that.ssiList))
          return false;
      }

      boolean this_present_ssio = true && this.isSetSsio();
      boolean that_present_ssio = true && that.isSetSsio();
      if (this_present_ssio || that_present_ssio) {
        if (!(this_present_ssio && that_present_ssio))
          return false;
        if (!this.ssio.equals(that.ssio))
          return false;
      }

      boolean this_present_authorizations = true && this.isSetAuthorizations();
      boolean that_present_authorizations = true && that.isSetAuthorizations();
      if (this_present_authorizations || that_present_authorizations) {
        if (!(this_present_authorizations && that_present_authorizations))
          return false;
        if (!this.authorizations.equals(that.authorizations))
          return false;
      }

      boolean this_present_waitForWrites = true;
      boolean that_present_waitForWrites = true;
      if (this_present_waitForWrites || that_present_waitForWrites) {
        if (!(this_present_waitForWrites && that_present_waitForWrites))
          return false;
        if (this.waitForWrites != that.waitForWrites)
          return false;
      }

      boolean this_present_isolated = true;
      boolean that_present_isolated = true;
      if (this_present_isolated || that_present_isolated) {
        if (!(this_present_isolated && that_present_isolated))
          return false;
        if (this.isolated != that.isolated)
          return false;
      }

      boolean this_present_readaheadThreshold = true;
      boolean that_present_readaheadThreshold = true;
      if (this_present_readaheadThreshold || that_present_readaheadThreshold) {
        if (!(this_present_readaheadThreshold && that_present_readaheadThreshold))
          return false;
        if (this.readaheadThreshold != that.readaheadThreshold)
          return false;
      }

      boolean this_present_samplerConfig = true && this.isSetSamplerConfig();
      boolean that_present_samplerConfig = true && that.isSetSamplerConfig();
      if (this_present_samplerConfig || that_present_samplerConfig) {
        if (!(this_present_samplerConfig && that_present_samplerConfig))
          return false;
        if (!this.samplerConfig.equals(that.samplerConfig))
          return false;
      }

      boolean this_present_batchTimeOut = true;
      boolean that_present_batchTimeOut = true;
      if (this_present_batchTimeOut || that_present_batchTimeOut) {
        if (!(this_present_batchTimeOut && that_present_batchTimeOut))
          return false;
        if (this.batchTimeOut != that.batchTimeOut)
          return false;
      }

      boolean this_present_classLoaderContext = true && this.isSetClassLoaderContext();
      boolean that_present_classLoaderContext = true && that.isSetClassLoaderContext();
      if (this_present_classLoaderContext || that_present_classLoaderContext) {
        if (!(this_present_classLoaderContext && that_present_classLoaderContext))
          return false;
        if (!this.classLoaderContext.equals(that.classLoaderContext))
          return false;
      }

      boolean this_present_executionHints = true && this.isSetExecutionHints();
      boolean that_present_executionHints = true && that.isSetExecutionHints();
      if (this_present_executionHints || that_present_executionHints) {
        if (!(this_present_executionHints && that_present_executionHints))
          return false;
        if (!this.executionHints.equals(that.executionHints))
          return false;
      }

      boolean this_present_busyTimeout = true;
      boolean that_present_busyTimeout = true;
      if (this_present_busyTimeout || that_present_busyTimeout) {
        if (!(this_present_busyTimeout && that_present_busyTimeout))
          return false;
        if (this.busyTimeout != that.busyTimeout)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + ((isSetCredentials()) ? 131071 : 524287);
      if (isSetCredentials())
        hashCode = hashCode * 8191 + credentials.hashCode();

      hashCode = hashCode * 8191 + ((isSetExtent()) ? 131071 : 524287);
      if (isSetExtent())
        hashCode = hashCode * 8191 + extent.hashCode();

      hashCode = hashCode * 8191 + ((isSetRange()) ? 131071 : 524287);
      if (isSetRange())
        hashCode = hashCode * 8191 + range.hashCode();

      hashCode = hashCode * 8191 + ((isSetColumns()) ? 131071 : 524287);
      if (isSetColumns())
        hashCode = hashCode * 8191 + columns.hashCode();

      hashCode = hashCode * 8191 + batchSize;

      hashCode = hashCode * 8191 + ((isSetSsiList()) ? 131071 : 524287);
      if (isSetSsiList())
        hashCode = hashCode * 8191 + ssiList.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsio()) ? 131071 : 524287);
      if (isSetSsio())
        hashCode = hashCode * 8191 + ssio.hashCode();

      hashCode = hashCode * 8191 + ((isSetAuthorizations()) ? 131071 : 524287);
      if (isSetAuthorizations())
        hashCode = hashCode * 8191 + authorizations.hashCode();

      hashCode = hashCode * 8191 + ((waitForWrites) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isolated) ? 131071 : 524287);

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(readaheadThreshold);

      hashCode = hashCode * 8191 + ((isSetSamplerConfig()) ? 131071 : 524287);
      if (isSetSamplerConfig())
        hashCode = hashCode * 8191 + samplerConfig.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(batchTimeOut);

      hashCode = hashCode * 8191 + ((isSetClassLoaderContext()) ? 131071 : 524287);
      if (isSetClassLoaderContext())
        hashCode = hashCode * 8191 + classLoaderContext.hashCode();

      hashCode = hashCode * 8191 + ((isSetExecutionHints()) ? 131071 : 524287);
      if (isSetExecutionHints())
        hashCode = hashCode * 8191 + executionHints.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(busyTimeout);

      return hashCode;
    }

    @Override
    public int compareTo(startScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCredentials(), other.isSetCredentials());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCredentials()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentials, other.credentials);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetExtent(), other.isSetExtent());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExtent()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.extent, other.extent);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetRange(), other.isSetRange());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRange()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.range, other.range);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetColumns(), other.isSetColumns());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetColumns()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.columns, other.columns);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBatchSize(), other.isSetBatchSize());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBatchSize()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchSize, other.batchSize);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsiList(), other.isSetSsiList());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsiList()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssiList, other.ssiList);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsio(), other.isSetSsio());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsio()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssio, other.ssio);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetAuthorizations(), other.isSetAuthorizations());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthorizations()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizations, other.authorizations);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetWaitForWrites(), other.isSetWaitForWrites());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWaitForWrites()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.waitForWrites, other.waitForWrites);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetIsolated(), other.isSetIsolated());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIsolated()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isolated, other.isolated);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetReadaheadThreshold(), other.isSetReadaheadThreshold());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReadaheadThreshold()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.readaheadThreshold, other.readaheadThreshold);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSamplerConfig(), other.isSetSamplerConfig());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSamplerConfig()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.samplerConfig, other.samplerConfig);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBatchTimeOut(), other.isSetBatchTimeOut());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBatchTimeOut()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchTimeOut, other.batchTimeOut);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetClassLoaderContext(), other.isSetClassLoaderContext());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetClassLoaderContext()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.classLoaderContext, other.classLoaderContext);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetExecutionHints(), other.isSetExecutionHints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExecutionHints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionHints, other.executionHints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBusyTimeout(), other.isSetBusyTimeout());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBusyTimeout()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.busyTimeout, other.busyTimeout);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("startScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("credentials:");
      if (this.credentials == null) {
        sb.append("null");
      } else {
        sb.append(this.credentials);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("extent:");
      if (this.extent == null) {
        sb.append("null");
      } else {
        sb.append(this.extent);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("range:");
      if (this.range == null) {
        sb.append("null");
      } else {
        sb.append(this.range);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("columns:");
      if (this.columns == null) {
        sb.append("null");
      } else {
        sb.append(this.columns);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("batchSize:");
      sb.append(this.batchSize);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssiList:");
      if (this.ssiList == null) {
        sb.append("null");
      } else {
        sb.append(this.ssiList);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssio:");
      if (this.ssio == null) {
        sb.append("null");
      } else {
        sb.append(this.ssio);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("authorizations:");
      if (this.authorizations == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.authorizations, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("waitForWrites:");
      sb.append(this.waitForWrites);
      first = false;
      if (!first) sb.append(", ");
      sb.append("isolated:");
      sb.append(this.isolated);
      first = false;
      if (!first) sb.append(", ");
      sb.append("readaheadThreshold:");
      sb.append(this.readaheadThreshold);
      first = false;
      if (!first) sb.append(", ");
      sb.append("samplerConfig:");
      if (this.samplerConfig == null) {
        sb.append("null");
      } else {
        sb.append(this.samplerConfig);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("batchTimeOut:");
      sb.append(this.batchTimeOut);
      first = false;
      if (!first) sb.append(", ");
      sb.append("classLoaderContext:");
      if (this.classLoaderContext == null) {
        sb.append("null");
      } else {
        sb.append(this.classLoaderContext);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("executionHints:");
      if (this.executionHints == null) {
        sb.append("null");
      } else {
        sb.append(this.executionHints);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("busyTimeout:");
      sb.append(this.busyTimeout);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
      if (credentials != null) {
        credentials.validate();
      }
      if (extent != null) {
        extent.validate();
      }
      if (range != null) {
        range.validate();
      }
      if (samplerConfig != null) {
        samplerConfig.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class startScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startScan_argsStandardScheme getScheme() {
        return new startScan_argsStandardScheme();
      }
    }

    private static class startScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<startScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, startScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 11: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // CREDENTIALS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
                struct.credentials.read(iprot);
                struct.setCredentialsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EXTENT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
                struct.extent.read(iprot);
                struct.setExtentIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // RANGE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.range = new org.apache.accumulo.core.dataImpl.thrift.TRange();
                struct.range.read(iprot);
                struct.setRangeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // COLUMNS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list134 = iprot.readListBegin();
                  struct.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(_list134.size);
                  @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TColumn _elem135;
                  for (int _i136 = 0; _i136 < _list134.size; ++_i136)
                  {
                    _elem135 = new org.apache.accumulo.core.dataImpl.thrift.TColumn();
                    _elem135.read(iprot);
                    struct.columns.add(_elem135);
                  }
                  iprot.readListEnd();
                }
                struct.setColumnsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // BATCH_SIZE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.batchSize = iprot.readI32();
                struct.setBatchSizeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // SSI_LIST
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list137 = iprot.readListBegin();
                  struct.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(_list137.size);
                  @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.IterInfo _elem138;
                  for (int _i139 = 0; _i139 < _list137.size; ++_i139)
                  {
                    _elem138 = new org.apache.accumulo.core.dataImpl.thrift.IterInfo();
                    _elem138.read(iprot);
                    struct.ssiList.add(_elem138);
                  }
                  iprot.readListEnd();
                }
                struct.setSsiListIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 7: // SSIO
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map140 = iprot.readMapBegin();
                  struct.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(2*_map140.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key141;
                  @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> _val142;
                  for (int _i143 = 0; _i143 < _map140.size; ++_i143)
                  {
                    _key141 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TMap _map144 = iprot.readMapBegin();
                      _val142 = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map144.size);
                      @org.apache.thrift.annotation.Nullable java.lang.String _key145;
                      @org.apache.thrift.annotation.Nullable java.lang.String _val146;
                      for (int _i147 = 0; _i147 < _map144.size; ++_i147)
                      {
                        _key145 = iprot.readString();
                        _val146 = iprot.readString();
                        _val142.put(_key145, _val146);
                      }
                      iprot.readMapEnd();
                    }
                    struct.ssio.put(_key141, _val142);
                  }
                  iprot.readMapEnd();
                }
                struct.setSsioIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 8: // AUTHORIZATIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list148 = iprot.readListBegin();
                  struct.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(_list148.size);
                  @org.apache.thrift.annotation.Nullable java.nio.ByteBuffer _elem149;
                  for (int _i150 = 0; _i150 < _list148.size; ++_i150)
                  {
                    _elem149 = iprot.readBinary();
                    struct.authorizations.add(_elem149);
                  }
                  iprot.readListEnd();
                }
                struct.setAuthorizationsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 9: // WAIT_FOR_WRITES
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.waitForWrites = iprot.readBool();
                struct.setWaitForWritesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 10: // ISOLATED
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.isolated = iprot.readBool();
                struct.setIsolatedIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 12: // READAHEAD_THRESHOLD
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.readaheadThreshold = iprot.readI64();
                struct.setReadaheadThresholdIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 13: // SAMPLER_CONFIG
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.samplerConfig = new TSamplerConfiguration();
                struct.samplerConfig.read(iprot);
                struct.setSamplerConfigIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 14: // BATCH_TIME_OUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.batchTimeOut = iprot.readI64();
                struct.setBatchTimeOutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 15: // CLASS_LOADER_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.classLoaderContext = iprot.readString();
                struct.setClassLoaderContextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 16: // EXECUTION_HINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map151 = iprot.readMapBegin();
                  struct.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map151.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key152;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val153;
                  for (int _i154 = 0; _i154 < _map151.size; ++_i154)
                  {
                    _key152 = iprot.readString();
                    _val153 = iprot.readString();
                    struct.executionHints.put(_key152, _val153);
                  }
                  iprot.readMapEnd();
                }
                struct.setExecutionHintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 17: // BUSY_TIMEOUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.busyTimeout = iprot.readI64();
                struct.setBusyTimeoutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, startScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.credentials != null) {
          oprot.writeFieldBegin(CREDENTIALS_FIELD_DESC);
          struct.credentials.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.extent != null) {
          oprot.writeFieldBegin(EXTENT_FIELD_DESC);
          struct.extent.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.range != null) {
          oprot.writeFieldBegin(RANGE_FIELD_DESC);
          struct.range.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.columns != null) {
          oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.columns.size()));
            for (org.apache.accumulo.core.dataImpl.thrift.TColumn _iter155 : struct.columns)
            {
              _iter155.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BATCH_SIZE_FIELD_DESC);
        oprot.writeI32(struct.batchSize);
        oprot.writeFieldEnd();
        if (struct.ssiList != null) {
          oprot.writeFieldBegin(SSI_LIST_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.ssiList.size()));
            for (org.apache.accumulo.core.dataImpl.thrift.IterInfo _iter156 : struct.ssiList)
            {
              _iter156.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ssio != null) {
          oprot.writeFieldBegin(SSIO_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.ssio.size()));
            for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> _iter157 : struct.ssio.entrySet())
            {
              oprot.writeString(_iter157.getKey());
              {
                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter157.getValue().size()));
                for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter158 : _iter157.getValue().entrySet())
                {
                  oprot.writeString(_iter158.getKey());
                  oprot.writeString(_iter158.getValue());
                }
                oprot.writeMapEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.authorizations != null) {
          oprot.writeFieldBegin(AUTHORIZATIONS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.authorizations.size()));
            for (java.nio.ByteBuffer _iter159 : struct.authorizations)
            {
              oprot.writeBinary(_iter159);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(WAIT_FOR_WRITES_FIELD_DESC);
        oprot.writeBool(struct.waitForWrites);
        oprot.writeFieldEnd();
        oprot.writeFieldBegin(ISOLATED_FIELD_DESC);
        oprot.writeBool(struct.isolated);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(READAHEAD_THRESHOLD_FIELD_DESC);
        oprot.writeI64(struct.readaheadThreshold);
        oprot.writeFieldEnd();
        if (struct.samplerConfig != null) {
          oprot.writeFieldBegin(SAMPLER_CONFIG_FIELD_DESC);
          struct.samplerConfig.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BATCH_TIME_OUT_FIELD_DESC);
        oprot.writeI64(struct.batchTimeOut);
        oprot.writeFieldEnd();
        if (struct.classLoaderContext != null) {
          oprot.writeFieldBegin(CLASS_LOADER_CONTEXT_FIELD_DESC);
          oprot.writeString(struct.classLoaderContext);
          oprot.writeFieldEnd();
        }
        if (struct.executionHints != null) {
          oprot.writeFieldBegin(EXECUTION_HINTS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.executionHints.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter160 : struct.executionHints.entrySet())
            {
              oprot.writeString(_iter160.getKey());
              oprot.writeString(_iter160.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BUSY_TIMEOUT_FIELD_DESC);
        oprot.writeI64(struct.busyTimeout);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class startScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startScan_argsTupleScheme getScheme() {
        return new startScan_argsTupleScheme();
      }
    }

    private static class startScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<startScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, startScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetCredentials()) {
          optionals.set(1);
        }
        if (struct.isSetExtent()) {
          optionals.set(2);
        }
        if (struct.isSetRange()) {
          optionals.set(3);
        }
        if (struct.isSetColumns()) {
          optionals.set(4);
        }
        if (struct.isSetBatchSize()) {
          optionals.set(5);
        }
        if (struct.isSetSsiList()) {
          optionals.set(6);
        }
        if (struct.isSetSsio()) {
          optionals.set(7);
        }
        if (struct.isSetAuthorizations()) {
          optionals.set(8);
        }
        if (struct.isSetWaitForWrites()) {
          optionals.set(9);
        }
        if (struct.isSetIsolated()) {
          optionals.set(10);
        }
        if (struct.isSetReadaheadThreshold()) {
          optionals.set(11);
        }
        if (struct.isSetSamplerConfig()) {
          optionals.set(12);
        }
        if (struct.isSetBatchTimeOut()) {
          optionals.set(13);
        }
        if (struct.isSetClassLoaderContext()) {
          optionals.set(14);
        }
        if (struct.isSetExecutionHints()) {
          optionals.set(15);
        }
        if (struct.isSetBusyTimeout()) {
          optionals.set(16);
        }
        oprot.writeBitSet(optionals, 17);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetCredentials()) {
          struct.credentials.write(oprot);
        }
        if (struct.isSetExtent()) {
          struct.extent.write(oprot);
        }
        if (struct.isSetRange()) {
          struct.range.write(oprot);
        }
        if (struct.isSetColumns()) {
          {
            oprot.writeI32(struct.columns.size());
            for (org.apache.accumulo.core.dataImpl.thrift.TColumn _iter161 : struct.columns)
            {
              _iter161.write(oprot);
            }
          }
        }
        if (struct.isSetBatchSize()) {
          oprot.writeI32(struct.batchSize);
        }
        if (struct.isSetSsiList()) {
          {
            oprot.writeI32(struct.ssiList.size());
            for (org.apache.accumulo.core.dataImpl.thrift.IterInfo _iter162 : struct.ssiList)
            {
              _iter162.write(oprot);
            }
          }
        }
        if (struct.isSetSsio()) {
          {
            oprot.writeI32(struct.ssio.size());
            for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> _iter163 : struct.ssio.entrySet())
            {
              oprot.writeString(_iter163.getKey());
              {
                oprot.writeI32(_iter163.getValue().size());
                for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter164 : _iter163.getValue().entrySet())
                {
                  oprot.writeString(_iter164.getKey());
                  oprot.writeString(_iter164.getValue());
                }
              }
            }
          }
        }
        if (struct.isSetAuthorizations()) {
          {
            oprot.writeI32(struct.authorizations.size());
            for (java.nio.ByteBuffer _iter165 : struct.authorizations)
            {
              oprot.writeBinary(_iter165);
            }
          }
        }
        if (struct.isSetWaitForWrites()) {
          oprot.writeBool(struct.waitForWrites);
        }
        if (struct.isSetIsolated()) {
          oprot.writeBool(struct.isolated);
        }
        if (struct.isSetReadaheadThreshold()) {
          oprot.writeI64(struct.readaheadThreshold);
        }
        if (struct.isSetSamplerConfig()) {
          struct.samplerConfig.write(oprot);
        }
        if (struct.isSetBatchTimeOut()) {
          oprot.writeI64(struct.batchTimeOut);
        }
        if (struct.isSetClassLoaderContext()) {
          oprot.writeString(struct.classLoaderContext);
        }
        if (struct.isSetExecutionHints()) {
          {
            oprot.writeI32(struct.executionHints.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter166 : struct.executionHints.entrySet())
            {
              oprot.writeString(_iter166.getKey());
              oprot.writeString(_iter166.getValue());
            }
          }
        }
        if (struct.isSetBusyTimeout()) {
          oprot.writeI64(struct.busyTimeout);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, startScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(17);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
          struct.credentials.read(iprot);
          struct.setCredentialsIsSet(true);
        }
        if (incoming.get(2)) {
          struct.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
          struct.extent.read(iprot);
          struct.setExtentIsSet(true);
        }
        if (incoming.get(3)) {
          struct.range = new org.apache.accumulo.core.dataImpl.thrift.TRange();
          struct.range.read(iprot);
          struct.setRangeIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list167 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(_list167.size);
            @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TColumn _elem168;
            for (int _i169 = 0; _i169 < _list167.size; ++_i169)
            {
              _elem168 = new org.apache.accumulo.core.dataImpl.thrift.TColumn();
              _elem168.read(iprot);
              struct.columns.add(_elem168);
            }
          }
          struct.setColumnsIsSet(true);
        }
        if (incoming.get(5)) {
          struct.batchSize = iprot.readI32();
          struct.setBatchSizeIsSet(true);
        }
        if (incoming.get(6)) {
          {
            org.apache.thrift.protocol.TList _list170 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(_list170.size);
            @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.IterInfo _elem171;
            for (int _i172 = 0; _i172 < _list170.size; ++_i172)
            {
              _elem171 = new org.apache.accumulo.core.dataImpl.thrift.IterInfo();
              _elem171.read(iprot);
              struct.ssiList.add(_elem171);
            }
          }
          struct.setSsiListIsSet(true);
        }
        if (incoming.get(7)) {
          {
            org.apache.thrift.protocol.TMap _map173 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP); 
            struct.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(2*_map173.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key174;
            @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> _val175;
            for (int _i176 = 0; _i176 < _map173.size; ++_i176)
            {
              _key174 = iprot.readString();
              {
                org.apache.thrift.protocol.TMap _map177 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
                _val175 = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map177.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key178;
                @org.apache.thrift.annotation.Nullable java.lang.String _val179;
                for (int _i180 = 0; _i180 < _map177.size; ++_i180)
                {
                  _key178 = iprot.readString();
                  _val179 = iprot.readString();
                  _val175.put(_key178, _val179);
                }
              }
              struct.ssio.put(_key174, _val175);
            }
          }
          struct.setSsioIsSet(true);
        }
        if (incoming.get(8)) {
          {
            org.apache.thrift.protocol.TList _list181 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(_list181.size);
            @org.apache.thrift.annotation.Nullable java.nio.ByteBuffer _elem182;
            for (int _i183 = 0; _i183 < _list181.size; ++_i183)
            {
              _elem182 = iprot.readBinary();
              struct.authorizations.add(_elem182);
            }
          }
          struct.setAuthorizationsIsSet(true);
        }
        if (incoming.get(9)) {
          struct.waitForWrites = iprot.readBool();
          struct.setWaitForWritesIsSet(true);
        }
        if (incoming.get(10)) {
          struct.isolated = iprot.readBool();
          struct.setIsolatedIsSet(true);
        }
        if (incoming.get(11)) {
          struct.readaheadThreshold = iprot.readI64();
          struct.setReadaheadThresholdIsSet(true);
        }
        if (incoming.get(12)) {
          struct.samplerConfig = new TSamplerConfiguration();
          struct.samplerConfig.read(iprot);
          struct.setSamplerConfigIsSet(true);
        }
        if (incoming.get(13)) {
          struct.batchTimeOut = iprot.readI64();
          struct.setBatchTimeOutIsSet(true);
        }
        if (incoming.get(14)) {
          struct.classLoaderContext = iprot.readString();
          struct.setClassLoaderContextIsSet(true);
        }
        if (incoming.get(15)) {
          {
            org.apache.thrift.protocol.TMap _map184 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map184.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key185;
            @org.apache.thrift.annotation.Nullable java.lang.String _val186;
            for (int _i187 = 0; _i187 < _map184.size; ++_i187)
            {
              _key185 = iprot.readString();
              _val186 = iprot.readString();
              struct.executionHints.put(_key185, _val186);
            }
          }
          struct.setExecutionHintsIsSet(true);
        }
        if (incoming.get(16)) {
          struct.busyTimeout = iprot.readI64();
          struct.setBusyTimeoutIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class startScan_result implements org.apache.thrift.TBase<startScan_result, startScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<startScan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("startScan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField SEC_FIELD_DESC = new org.apache.thrift.protocol.TField("sec", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField NSTE_FIELD_DESC = new org.apache.thrift.protocol.TField("nste", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField TMFE_FIELD_DESC = new org.apache.thrift.protocol.TField("tmfe", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField SSBE_FIELD_DESC = new org.apache.thrift.protocol.TField("ssbe", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new startScan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new startScan_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.InitialScan success; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec; // required
    public @org.apache.thrift.annotation.Nullable NotServingTabletException nste; // required
    public @org.apache.thrift.annotation.Nullable TooManyFilesException tmfe; // required
    public @org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe; // required
    public @org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      SEC((short)1, "sec"),
      NSTE((short)2, "nste"),
      TMFE((short)3, "tmfe"),
      TSNPE((short)4, "tsnpe"),
      SSBE((short)5, "ssbe");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SEC
            return SEC;
          case 2: // NSTE
            return NSTE;
          case 3: // TMFE
            return TMFE;
          case 4: // TSNPE
            return TSNPE;
          case 5: // SSBE
            return SSBE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.InitialScan.class)));
      tmpMap.put(_Fields.SEC, new org.apache.thrift.meta_data.FieldMetaData("sec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException.class)));
      tmpMap.put(_Fields.NSTE, new org.apache.thrift.meta_data.FieldMetaData("nste", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotServingTabletException.class)));
      tmpMap.put(_Fields.TMFE, new org.apache.thrift.meta_data.FieldMetaData("tmfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TooManyFilesException.class)));
      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSampleNotPresentException.class)));
      tmpMap.put(_Fields.SSBE, new org.apache.thrift.meta_data.FieldMetaData("ssbe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ScanServerBusyException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(startScan_result.class, metaDataMap);
    }

    public startScan_result() {
    }

    public startScan_result(
      org.apache.accumulo.core.dataImpl.thrift.InitialScan success,
      org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec,
      NotServingTabletException nste,
      TooManyFilesException tmfe,
      TSampleNotPresentException tsnpe,
      ScanServerBusyException ssbe)
    {
      this();
      this.success = success;
      this.sec = sec;
      this.nste = nste;
      this.tmfe = tmfe;
      this.tsnpe = tsnpe;
      this.ssbe = ssbe;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public startScan_result(startScan_result other) {
      if (other.isSetSuccess()) {
        this.success = new org.apache.accumulo.core.dataImpl.thrift.InitialScan(other.success);
      }
      if (other.isSetSec()) {
        this.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException(other.sec);
      }
      if (other.isSetNste()) {
        this.nste = new NotServingTabletException(other.nste);
      }
      if (other.isSetTmfe()) {
        this.tmfe = new TooManyFilesException(other.tmfe);
      }
      if (other.isSetTsnpe()) {
        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
      }
      if (other.isSetSsbe()) {
        this.ssbe = new ScanServerBusyException(other.ssbe);
      }
    }

    @Override
    public startScan_result deepCopy() {
      return new startScan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.sec = null;
      this.nste = null;
      this.tmfe = null;
      this.tsnpe = null;
      this.ssbe = null;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.InitialScan getSuccess() {
      return this.success;
    }

    public startScan_result setSuccess(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.InitialScan success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException getSec() {
      return this.sec;
    }

    public startScan_result setSec(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
      this.sec = sec;
      return this;
    }

    public void unsetSec() {
      this.sec = null;
    }

    /** Returns true if field sec is set (has been assigned a value) and false otherwise */
    public boolean isSetSec() {
      return this.sec != null;
    }

    public void setSecIsSet(boolean value) {
      if (!value) {
        this.sec = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NotServingTabletException getNste() {
      return this.nste;
    }

    public startScan_result setNste(@org.apache.thrift.annotation.Nullable NotServingTabletException nste) {
      this.nste = nste;
      return this;
    }

    public void unsetNste() {
      this.nste = null;
    }

    /** Returns true if field nste is set (has been assigned a value) and false otherwise */
    public boolean isSetNste() {
      return this.nste != null;
    }

    public void setNsteIsSet(boolean value) {
      if (!value) {
        this.nste = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TooManyFilesException getTmfe() {
      return this.tmfe;
    }

    public startScan_result setTmfe(@org.apache.thrift.annotation.Nullable TooManyFilesException tmfe) {
      this.tmfe = tmfe;
      return this;
    }

    public void unsetTmfe() {
      this.tmfe = null;
    }

    /** Returns true if field tmfe is set (has been assigned a value) and false otherwise */
    public boolean isSetTmfe() {
      return this.tmfe != null;
    }

    public void setTmfeIsSet(boolean value) {
      if (!value) {
        this.tmfe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TSampleNotPresentException getTsnpe() {
      return this.tsnpe;
    }

    public startScan_result setTsnpe(@org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe) {
      this.tsnpe = tsnpe;
      return this;
    }

    public void unsetTsnpe() {
      this.tsnpe = null;
    }

    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
    public boolean isSetTsnpe() {
      return this.tsnpe != null;
    }

    public void setTsnpeIsSet(boolean value) {
      if (!value) {
        this.tsnpe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public ScanServerBusyException getSsbe() {
      return this.ssbe;
    }

    public startScan_result setSsbe(@org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe) {
      this.ssbe = ssbe;
      return this;
    }

    public void unsetSsbe() {
      this.ssbe = null;
    }

    /** Returns true if field ssbe is set (has been assigned a value) and false otherwise */
    public boolean isSetSsbe() {
      return this.ssbe != null;
    }

    public void setSsbeIsSet(boolean value) {
      if (!value) {
        this.ssbe = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((org.apache.accumulo.core.dataImpl.thrift.InitialScan)value);
        }
        break;

      case SEC:
        if (value == null) {
          unsetSec();
        } else {
          setSec((org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException)value);
        }
        break;

      case NSTE:
        if (value == null) {
          unsetNste();
        } else {
          setNste((NotServingTabletException)value);
        }
        break;

      case TMFE:
        if (value == null) {
          unsetTmfe();
        } else {
          setTmfe((TooManyFilesException)value);
        }
        break;

      case TSNPE:
        if (value == null) {
          unsetTsnpe();
        } else {
          setTsnpe((TSampleNotPresentException)value);
        }
        break;

      case SSBE:
        if (value == null) {
          unsetSsbe();
        } else {
          setSsbe((ScanServerBusyException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SEC:
        return getSec();

      case NSTE:
        return getNste();

      case TMFE:
        return getTmfe();

      case TSNPE:
        return getTsnpe();

      case SSBE:
        return getSsbe();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case SEC:
        return isSetSec();
      case NSTE:
        return isSetNste();
      case TMFE:
        return isSetTmfe();
      case TSNPE:
        return isSetTsnpe();
      case SSBE:
        return isSetSsbe();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof startScan_result)
        return this.equals((startScan_result)that);
      return false;
    }

    public boolean equals(startScan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_sec = true && this.isSetSec();
      boolean that_present_sec = true && that.isSetSec();
      if (this_present_sec || that_present_sec) {
        if (!(this_present_sec && that_present_sec))
          return false;
        if (!this.sec.equals(that.sec))
          return false;
      }

      boolean this_present_nste = true && this.isSetNste();
      boolean that_present_nste = true && that.isSetNste();
      if (this_present_nste || that_present_nste) {
        if (!(this_present_nste && that_present_nste))
          return false;
        if (!this.nste.equals(that.nste))
          return false;
      }

      boolean this_present_tmfe = true && this.isSetTmfe();
      boolean that_present_tmfe = true && that.isSetTmfe();
      if (this_present_tmfe || that_present_tmfe) {
        if (!(this_present_tmfe && that_present_tmfe))
          return false;
        if (!this.tmfe.equals(that.tmfe))
          return false;
      }

      boolean this_present_tsnpe = true && this.isSetTsnpe();
      boolean that_present_tsnpe = true && that.isSetTsnpe();
      if (this_present_tsnpe || that_present_tsnpe) {
        if (!(this_present_tsnpe && that_present_tsnpe))
          return false;
        if (!this.tsnpe.equals(that.tsnpe))
          return false;
      }

      boolean this_present_ssbe = true && this.isSetSsbe();
      boolean that_present_ssbe = true && that.isSetSsbe();
      if (this_present_ssbe || that_present_ssbe) {
        if (!(this_present_ssbe && that_present_ssbe))
          return false;
        if (!this.ssbe.equals(that.ssbe))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetSec()) ? 131071 : 524287);
      if (isSetSec())
        hashCode = hashCode * 8191 + sec.hashCode();

      hashCode = hashCode * 8191 + ((isSetNste()) ? 131071 : 524287);
      if (isSetNste())
        hashCode = hashCode * 8191 + nste.hashCode();

      hashCode = hashCode * 8191 + ((isSetTmfe()) ? 131071 : 524287);
      if (isSetTmfe())
        hashCode = hashCode * 8191 + tmfe.hashCode();

      hashCode = hashCode * 8191 + ((isSetTsnpe()) ? 131071 : 524287);
      if (isSetTsnpe())
        hashCode = hashCode * 8191 + tsnpe.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsbe()) ? 131071 : 524287);
      if (isSetSsbe())
        hashCode = hashCode * 8191 + ssbe.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(startScan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSec(), other.isSetSec());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSec()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sec, other.sec);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNste(), other.isSetNste());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNste()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nste, other.nste);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTmfe(), other.isSetTmfe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTmfe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tmfe, other.tmfe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTsnpe(), other.isSetTsnpe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTsnpe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsbe(), other.isSetSsbe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsbe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssbe, other.ssbe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("startScan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("sec:");
      if (this.sec == null) {
        sb.append("null");
      } else {
        sb.append(this.sec);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("nste:");
      if (this.nste == null) {
        sb.append("null");
      } else {
        sb.append(this.nste);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tmfe:");
      if (this.tmfe == null) {
        sb.append("null");
      } else {
        sb.append(this.tmfe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tsnpe:");
      if (this.tsnpe == null) {
        sb.append("null");
      } else {
        sb.append(this.tsnpe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssbe:");
      if (this.ssbe == null) {
        sb.append("null");
      } else {
        sb.append(this.ssbe);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class startScan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startScan_resultStandardScheme getScheme() {
        return new startScan_resultStandardScheme();
      }
    }

    private static class startScan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<startScan_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, startScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new org.apache.accumulo.core.dataImpl.thrift.InitialScan();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SEC
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
                struct.sec.read(iprot);
                struct.setSecIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // NSTE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.nste = new NotServingTabletException();
                struct.nste.read(iprot);
                struct.setNsteIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TMFE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tmfe = new TooManyFilesException();
                struct.tmfe.read(iprot);
                struct.setTmfeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // TSNPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tsnpe = new TSampleNotPresentException();
                struct.tsnpe.read(iprot);
                struct.setTsnpeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // SSBE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ssbe = new ScanServerBusyException();
                struct.ssbe.read(iprot);
                struct.setSsbeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, startScan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.sec != null) {
          oprot.writeFieldBegin(SEC_FIELD_DESC);
          struct.sec.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.nste != null) {
          oprot.writeFieldBegin(NSTE_FIELD_DESC);
          struct.nste.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tmfe != null) {
          oprot.writeFieldBegin(TMFE_FIELD_DESC);
          struct.tmfe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tsnpe != null) {
          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
          struct.tsnpe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ssbe != null) {
          oprot.writeFieldBegin(SSBE_FIELD_DESC);
          struct.ssbe.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class startScan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startScan_resultTupleScheme getScheme() {
        return new startScan_resultTupleScheme();
      }
    }

    private static class startScan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<startScan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, startScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetSec()) {
          optionals.set(1);
        }
        if (struct.isSetNste()) {
          optionals.set(2);
        }
        if (struct.isSetTmfe()) {
          optionals.set(3);
        }
        if (struct.isSetTsnpe()) {
          optionals.set(4);
        }
        if (struct.isSetSsbe()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetSec()) {
          struct.sec.write(oprot);
        }
        if (struct.isSetNste()) {
          struct.nste.write(oprot);
        }
        if (struct.isSetTmfe()) {
          struct.tmfe.write(oprot);
        }
        if (struct.isSetTsnpe()) {
          struct.tsnpe.write(oprot);
        }
        if (struct.isSetSsbe()) {
          struct.ssbe.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, startScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new org.apache.accumulo.core.dataImpl.thrift.InitialScan();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
          struct.sec.read(iprot);
          struct.setSecIsSet(true);
        }
        if (incoming.get(2)) {
          struct.nste = new NotServingTabletException();
          struct.nste.read(iprot);
          struct.setNsteIsSet(true);
        }
        if (incoming.get(3)) {
          struct.tmfe = new TooManyFilesException();
          struct.tmfe.read(iprot);
          struct.setTmfeIsSet(true);
        }
        if (incoming.get(4)) {
          struct.tsnpe = new TSampleNotPresentException();
          struct.tsnpe.read(iprot);
          struct.setTsnpeIsSet(true);
        }
        if (incoming.get(5)) {
          struct.ssbe = new ScanServerBusyException();
          struct.ssbe.read(iprot);
          struct.setSsbeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class continueScan_args implements org.apache.thrift.TBase<continueScan_args, continueScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<continueScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("continueScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SCAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("scanID", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField BUSY_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("busyTimeout", org.apache.thrift.protocol.TType.I64, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new continueScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new continueScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public long scanID; // required
    public long busyTimeout; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)2, "tinfo"),
      SCAN_ID((short)1, "scanID"),
      BUSY_TIMEOUT((short)3, "busyTimeout");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 2: // TINFO
            return TINFO;
          case 1: // SCAN_ID
            return SCAN_ID;
          case 3: // BUSY_TIMEOUT
            return BUSY_TIMEOUT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SCANID_ISSET_ID = 0;
    private static final int __BUSYTIMEOUT_ISSET_ID = 1;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.SCAN_ID, new org.apache.thrift.meta_data.FieldMetaData("scanID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64          , "ScanID")));
      tmpMap.put(_Fields.BUSY_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("busyTimeout", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(continueScan_args.class, metaDataMap);
    }

    public continueScan_args() {
    }

    public continueScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      long scanID,
      long busyTimeout)
    {
      this();
      this.tinfo = tinfo;
      this.scanID = scanID;
      setScanIDIsSet(true);
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public continueScan_args(continueScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      this.scanID = other.scanID;
      this.busyTimeout = other.busyTimeout;
    }

    @Override
    public continueScan_args deepCopy() {
      return new continueScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      setScanIDIsSet(false);
      this.scanID = 0;
      setBusyTimeoutIsSet(false);
      this.busyTimeout = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public continueScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    public long getScanID() {
      return this.scanID;
    }

    public continueScan_args setScanID(long scanID) {
      this.scanID = scanID;
      setScanIDIsSet(true);
      return this;
    }

    public void unsetScanID() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    /** Returns true if field scanID is set (has been assigned a value) and false otherwise */
    public boolean isSetScanID() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    public void setScanIDIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCANID_ISSET_ID, value);
    }

    public long getBusyTimeout() {
      return this.busyTimeout;
    }

    public continueScan_args setBusyTimeout(long busyTimeout) {
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
      return this;
    }

    public void unsetBusyTimeout() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    /** Returns true if field busyTimeout is set (has been assigned a value) and false otherwise */
    public boolean isSetBusyTimeout() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    public void setBusyTimeoutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case SCAN_ID:
        if (value == null) {
          unsetScanID();
        } else {
          setScanID((java.lang.Long)value);
        }
        break;

      case BUSY_TIMEOUT:
        if (value == null) {
          unsetBusyTimeout();
        } else {
          setBusyTimeout((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case SCAN_ID:
        return getScanID();

      case BUSY_TIMEOUT:
        return getBusyTimeout();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case SCAN_ID:
        return isSetScanID();
      case BUSY_TIMEOUT:
        return isSetBusyTimeout();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof continueScan_args)
        return this.equals((continueScan_args)that);
      return false;
    }

    public boolean equals(continueScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_scanID = true;
      boolean that_present_scanID = true;
      if (this_present_scanID || that_present_scanID) {
        if (!(this_present_scanID && that_present_scanID))
          return false;
        if (this.scanID != that.scanID)
          return false;
      }

      boolean this_present_busyTimeout = true;
      boolean that_present_busyTimeout = true;
      if (this_present_busyTimeout || that_present_busyTimeout) {
        if (!(this_present_busyTimeout && that_present_busyTimeout))
          return false;
        if (this.busyTimeout != that.busyTimeout)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(scanID);

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(busyTimeout);

      return hashCode;
    }

    @Override
    public int compareTo(continueScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetScanID(), other.isSetScanID());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanID()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanID, other.scanID);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBusyTimeout(), other.isSetBusyTimeout());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBusyTimeout()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.busyTimeout, other.busyTimeout);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("continueScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scanID:");
      sb.append(this.scanID);
      first = false;
      if (!first) sb.append(", ");
      sb.append("busyTimeout:");
      sb.append(this.busyTimeout);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class continueScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueScan_argsStandardScheme getScheme() {
        return new continueScan_argsStandardScheme();
      }
    }

    private static class continueScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<continueScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, continueScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 2: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SCAN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.scanID = iprot.readI64();
                struct.setScanIDIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // BUSY_TIMEOUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.busyTimeout = iprot.readI64();
                struct.setBusyTimeoutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, continueScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(SCAN_ID_FIELD_DESC);
        oprot.writeI64(struct.scanID);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BUSY_TIMEOUT_FIELD_DESC);
        oprot.writeI64(struct.busyTimeout);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class continueScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueScan_argsTupleScheme getScheme() {
        return new continueScan_argsTupleScheme();
      }
    }

    private static class continueScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<continueScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, continueScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetScanID()) {
          optionals.set(1);
        }
        if (struct.isSetBusyTimeout()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetScanID()) {
          oprot.writeI64(struct.scanID);
        }
        if (struct.isSetBusyTimeout()) {
          oprot.writeI64(struct.busyTimeout);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, continueScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.scanID = iprot.readI64();
          struct.setScanIDIsSet(true);
        }
        if (incoming.get(2)) {
          struct.busyTimeout = iprot.readI64();
          struct.setBusyTimeoutIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class continueScan_result implements org.apache.thrift.TBase<continueScan_result, continueScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<continueScan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("continueScan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField NSSI_FIELD_DESC = new org.apache.thrift.protocol.TField("nssi", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField NSTE_FIELD_DESC = new org.apache.thrift.protocol.TField("nste", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField TMFE_FIELD_DESC = new org.apache.thrift.protocol.TField("tmfe", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField SSBE_FIELD_DESC = new org.apache.thrift.protocol.TField("ssbe", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new continueScan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new continueScan_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.ScanResult success; // required
    public @org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi; // required
    public @org.apache.thrift.annotation.Nullable NotServingTabletException nste; // required
    public @org.apache.thrift.annotation.Nullable TooManyFilesException tmfe; // required
    public @org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe; // required
    public @org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      NSSI((short)1, "nssi"),
      NSTE((short)2, "nste"),
      TMFE((short)3, "tmfe"),
      TSNPE((short)4, "tsnpe"),
      SSBE((short)5, "ssbe");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // NSSI
            return NSSI;
          case 2: // NSTE
            return NSTE;
          case 3: // TMFE
            return TMFE;
          case 4: // TSNPE
            return TSNPE;
          case 5: // SSBE
            return SSBE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.ScanResult.class)));
      tmpMap.put(_Fields.NSSI, new org.apache.thrift.meta_data.FieldMetaData("nssi", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchScanIDException.class)));
      tmpMap.put(_Fields.NSTE, new org.apache.thrift.meta_data.FieldMetaData("nste", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotServingTabletException.class)));
      tmpMap.put(_Fields.TMFE, new org.apache.thrift.meta_data.FieldMetaData("tmfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TooManyFilesException.class)));
      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSampleNotPresentException.class)));
      tmpMap.put(_Fields.SSBE, new org.apache.thrift.meta_data.FieldMetaData("ssbe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ScanServerBusyException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(continueScan_result.class, metaDataMap);
    }

    public continueScan_result() {
    }

    public continueScan_result(
      org.apache.accumulo.core.dataImpl.thrift.ScanResult success,
      NoSuchScanIDException nssi,
      NotServingTabletException nste,
      TooManyFilesException tmfe,
      TSampleNotPresentException tsnpe,
      ScanServerBusyException ssbe)
    {
      this();
      this.success = success;
      this.nssi = nssi;
      this.nste = nste;
      this.tmfe = tmfe;
      this.tsnpe = tsnpe;
      this.ssbe = ssbe;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public continueScan_result(continueScan_result other) {
      if (other.isSetSuccess()) {
        this.success = new org.apache.accumulo.core.dataImpl.thrift.ScanResult(other.success);
      }
      if (other.isSetNssi()) {
        this.nssi = new NoSuchScanIDException(other.nssi);
      }
      if (other.isSetNste()) {
        this.nste = new NotServingTabletException(other.nste);
      }
      if (other.isSetTmfe()) {
        this.tmfe = new TooManyFilesException(other.tmfe);
      }
      if (other.isSetTsnpe()) {
        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
      }
      if (other.isSetSsbe()) {
        this.ssbe = new ScanServerBusyException(other.ssbe);
      }
    }

    @Override
    public continueScan_result deepCopy() {
      return new continueScan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.nssi = null;
      this.nste = null;
      this.tmfe = null;
      this.tsnpe = null;
      this.ssbe = null;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.ScanResult getSuccess() {
      return this.success;
    }

    public continueScan_result setSuccess(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.ScanResult success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchScanIDException getNssi() {
      return this.nssi;
    }

    public continueScan_result setNssi(@org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi) {
      this.nssi = nssi;
      return this;
    }

    public void unsetNssi() {
      this.nssi = null;
    }

    /** Returns true if field nssi is set (has been assigned a value) and false otherwise */
    public boolean isSetNssi() {
      return this.nssi != null;
    }

    public void setNssiIsSet(boolean value) {
      if (!value) {
        this.nssi = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NotServingTabletException getNste() {
      return this.nste;
    }

    public continueScan_result setNste(@org.apache.thrift.annotation.Nullable NotServingTabletException nste) {
      this.nste = nste;
      return this;
    }

    public void unsetNste() {
      this.nste = null;
    }

    /** Returns true if field nste is set (has been assigned a value) and false otherwise */
    public boolean isSetNste() {
      return this.nste != null;
    }

    public void setNsteIsSet(boolean value) {
      if (!value) {
        this.nste = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TooManyFilesException getTmfe() {
      return this.tmfe;
    }

    public continueScan_result setTmfe(@org.apache.thrift.annotation.Nullable TooManyFilesException tmfe) {
      this.tmfe = tmfe;
      return this;
    }

    public void unsetTmfe() {
      this.tmfe = null;
    }

    /** Returns true if field tmfe is set (has been assigned a value) and false otherwise */
    public boolean isSetTmfe() {
      return this.tmfe != null;
    }

    public void setTmfeIsSet(boolean value) {
      if (!value) {
        this.tmfe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TSampleNotPresentException getTsnpe() {
      return this.tsnpe;
    }

    public continueScan_result setTsnpe(@org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe) {
      this.tsnpe = tsnpe;
      return this;
    }

    public void unsetTsnpe() {
      this.tsnpe = null;
    }

    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
    public boolean isSetTsnpe() {
      return this.tsnpe != null;
    }

    public void setTsnpeIsSet(boolean value) {
      if (!value) {
        this.tsnpe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public ScanServerBusyException getSsbe() {
      return this.ssbe;
    }

    public continueScan_result setSsbe(@org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe) {
      this.ssbe = ssbe;
      return this;
    }

    public void unsetSsbe() {
      this.ssbe = null;
    }

    /** Returns true if field ssbe is set (has been assigned a value) and false otherwise */
    public boolean isSetSsbe() {
      return this.ssbe != null;
    }

    public void setSsbeIsSet(boolean value) {
      if (!value) {
        this.ssbe = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((org.apache.accumulo.core.dataImpl.thrift.ScanResult)value);
        }
        break;

      case NSSI:
        if (value == null) {
          unsetNssi();
        } else {
          setNssi((NoSuchScanIDException)value);
        }
        break;

      case NSTE:
        if (value == null) {
          unsetNste();
        } else {
          setNste((NotServingTabletException)value);
        }
        break;

      case TMFE:
        if (value == null) {
          unsetTmfe();
        } else {
          setTmfe((TooManyFilesException)value);
        }
        break;

      case TSNPE:
        if (value == null) {
          unsetTsnpe();
        } else {
          setTsnpe((TSampleNotPresentException)value);
        }
        break;

      case SSBE:
        if (value == null) {
          unsetSsbe();
        } else {
          setSsbe((ScanServerBusyException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case NSSI:
        return getNssi();

      case NSTE:
        return getNste();

      case TMFE:
        return getTmfe();

      case TSNPE:
        return getTsnpe();

      case SSBE:
        return getSsbe();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case NSSI:
        return isSetNssi();
      case NSTE:
        return isSetNste();
      case TMFE:
        return isSetTmfe();
      case TSNPE:
        return isSetTsnpe();
      case SSBE:
        return isSetSsbe();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof continueScan_result)
        return this.equals((continueScan_result)that);
      return false;
    }

    public boolean equals(continueScan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_nssi = true && this.isSetNssi();
      boolean that_present_nssi = true && that.isSetNssi();
      if (this_present_nssi || that_present_nssi) {
        if (!(this_present_nssi && that_present_nssi))
          return false;
        if (!this.nssi.equals(that.nssi))
          return false;
      }

      boolean this_present_nste = true && this.isSetNste();
      boolean that_present_nste = true && that.isSetNste();
      if (this_present_nste || that_present_nste) {
        if (!(this_present_nste && that_present_nste))
          return false;
        if (!this.nste.equals(that.nste))
          return false;
      }

      boolean this_present_tmfe = true && this.isSetTmfe();
      boolean that_present_tmfe = true && that.isSetTmfe();
      if (this_present_tmfe || that_present_tmfe) {
        if (!(this_present_tmfe && that_present_tmfe))
          return false;
        if (!this.tmfe.equals(that.tmfe))
          return false;
      }

      boolean this_present_tsnpe = true && this.isSetTsnpe();
      boolean that_present_tsnpe = true && that.isSetTsnpe();
      if (this_present_tsnpe || that_present_tsnpe) {
        if (!(this_present_tsnpe && that_present_tsnpe))
          return false;
        if (!this.tsnpe.equals(that.tsnpe))
          return false;
      }

      boolean this_present_ssbe = true && this.isSetSsbe();
      boolean that_present_ssbe = true && that.isSetSsbe();
      if (this_present_ssbe || that_present_ssbe) {
        if (!(this_present_ssbe && that_present_ssbe))
          return false;
        if (!this.ssbe.equals(that.ssbe))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetNssi()) ? 131071 : 524287);
      if (isSetNssi())
        hashCode = hashCode * 8191 + nssi.hashCode();

      hashCode = hashCode * 8191 + ((isSetNste()) ? 131071 : 524287);
      if (isSetNste())
        hashCode = hashCode * 8191 + nste.hashCode();

      hashCode = hashCode * 8191 + ((isSetTmfe()) ? 131071 : 524287);
      if (isSetTmfe())
        hashCode = hashCode * 8191 + tmfe.hashCode();

      hashCode = hashCode * 8191 + ((isSetTsnpe()) ? 131071 : 524287);
      if (isSetTsnpe())
        hashCode = hashCode * 8191 + tsnpe.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsbe()) ? 131071 : 524287);
      if (isSetSsbe())
        hashCode = hashCode * 8191 + ssbe.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(continueScan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNssi(), other.isSetNssi());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNssi()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nssi, other.nssi);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNste(), other.isSetNste());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNste()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nste, other.nste);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTmfe(), other.isSetTmfe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTmfe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tmfe, other.tmfe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTsnpe(), other.isSetTsnpe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTsnpe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsbe(), other.isSetSsbe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsbe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssbe, other.ssbe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("continueScan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("nssi:");
      if (this.nssi == null) {
        sb.append("null");
      } else {
        sb.append(this.nssi);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("nste:");
      if (this.nste == null) {
        sb.append("null");
      } else {
        sb.append(this.nste);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tmfe:");
      if (this.tmfe == null) {
        sb.append("null");
      } else {
        sb.append(this.tmfe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tsnpe:");
      if (this.tsnpe == null) {
        sb.append("null");
      } else {
        sb.append(this.tsnpe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssbe:");
      if (this.ssbe == null) {
        sb.append("null");
      } else {
        sb.append(this.ssbe);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class continueScan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueScan_resultStandardScheme getScheme() {
        return new continueScan_resultStandardScheme();
      }
    }

    private static class continueScan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<continueScan_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, continueScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new org.apache.accumulo.core.dataImpl.thrift.ScanResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // NSSI
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.nssi = new NoSuchScanIDException();
                struct.nssi.read(iprot);
                struct.setNssiIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // NSTE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.nste = new NotServingTabletException();
                struct.nste.read(iprot);
                struct.setNsteIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TMFE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tmfe = new TooManyFilesException();
                struct.tmfe.read(iprot);
                struct.setTmfeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // TSNPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tsnpe = new TSampleNotPresentException();
                struct.tsnpe.read(iprot);
                struct.setTsnpeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // SSBE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ssbe = new ScanServerBusyException();
                struct.ssbe.read(iprot);
                struct.setSsbeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, continueScan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.nssi != null) {
          oprot.writeFieldBegin(NSSI_FIELD_DESC);
          struct.nssi.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.nste != null) {
          oprot.writeFieldBegin(NSTE_FIELD_DESC);
          struct.nste.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tmfe != null) {
          oprot.writeFieldBegin(TMFE_FIELD_DESC);
          struct.tmfe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tsnpe != null) {
          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
          struct.tsnpe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ssbe != null) {
          oprot.writeFieldBegin(SSBE_FIELD_DESC);
          struct.ssbe.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class continueScan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueScan_resultTupleScheme getScheme() {
        return new continueScan_resultTupleScheme();
      }
    }

    private static class continueScan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<continueScan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, continueScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetNssi()) {
          optionals.set(1);
        }
        if (struct.isSetNste()) {
          optionals.set(2);
        }
        if (struct.isSetTmfe()) {
          optionals.set(3);
        }
        if (struct.isSetTsnpe()) {
          optionals.set(4);
        }
        if (struct.isSetSsbe()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetNssi()) {
          struct.nssi.write(oprot);
        }
        if (struct.isSetNste()) {
          struct.nste.write(oprot);
        }
        if (struct.isSetTmfe()) {
          struct.tmfe.write(oprot);
        }
        if (struct.isSetTsnpe()) {
          struct.tsnpe.write(oprot);
        }
        if (struct.isSetSsbe()) {
          struct.ssbe.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, continueScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new org.apache.accumulo.core.dataImpl.thrift.ScanResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.nssi = new NoSuchScanIDException();
          struct.nssi.read(iprot);
          struct.setNssiIsSet(true);
        }
        if (incoming.get(2)) {
          struct.nste = new NotServingTabletException();
          struct.nste.read(iprot);
          struct.setNsteIsSet(true);
        }
        if (incoming.get(3)) {
          struct.tmfe = new TooManyFilesException();
          struct.tmfe.read(iprot);
          struct.setTmfeIsSet(true);
        }
        if (incoming.get(4)) {
          struct.tsnpe = new TSampleNotPresentException();
          struct.tsnpe.read(iprot);
          struct.setTsnpeIsSet(true);
        }
        if (incoming.get(5)) {
          struct.ssbe = new ScanServerBusyException();
          struct.ssbe.read(iprot);
          struct.setSsbeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class closeScan_args implements org.apache.thrift.TBase<closeScan_args, closeScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<closeScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SCAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("scanID", org.apache.thrift.protocol.TType.I64, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new closeScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new closeScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public long scanID; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)2, "tinfo"),
      SCAN_ID((short)1, "scanID");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 2: // TINFO
            return TINFO;
          case 1: // SCAN_ID
            return SCAN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SCANID_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.SCAN_ID, new org.apache.thrift.meta_data.FieldMetaData("scanID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64          , "ScanID")));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeScan_args.class, metaDataMap);
    }

    public closeScan_args() {
    }

    public closeScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      long scanID)
    {
      this();
      this.tinfo = tinfo;
      this.scanID = scanID;
      setScanIDIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public closeScan_args(closeScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      this.scanID = other.scanID;
    }

    @Override
    public closeScan_args deepCopy() {
      return new closeScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      setScanIDIsSet(false);
      this.scanID = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public closeScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    public long getScanID() {
      return this.scanID;
    }

    public closeScan_args setScanID(long scanID) {
      this.scanID = scanID;
      setScanIDIsSet(true);
      return this;
    }

    public void unsetScanID() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    /** Returns true if field scanID is set (has been assigned a value) and false otherwise */
    public boolean isSetScanID() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    public void setScanIDIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCANID_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case SCAN_ID:
        if (value == null) {
          unsetScanID();
        } else {
          setScanID((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case SCAN_ID:
        return getScanID();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case SCAN_ID:
        return isSetScanID();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof closeScan_args)
        return this.equals((closeScan_args)that);
      return false;
    }

    public boolean equals(closeScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_scanID = true;
      boolean that_present_scanID = true;
      if (this_present_scanID || that_present_scanID) {
        if (!(this_present_scanID && that_present_scanID))
          return false;
        if (this.scanID != that.scanID)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(scanID);

      return hashCode;
    }

    @Override
    public int compareTo(closeScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetScanID(), other.isSetScanID());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanID()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanID, other.scanID);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("closeScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scanID:");
      sb.append(this.scanID);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class closeScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeScan_argsStandardScheme getScheme() {
        return new closeScan_argsStandardScheme();
      }
    }

    private static class closeScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<closeScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, closeScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 2: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SCAN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.scanID = iprot.readI64();
                struct.setScanIDIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, closeScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(SCAN_ID_FIELD_DESC);
        oprot.writeI64(struct.scanID);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeScan_argsTupleScheme getScheme() {
        return new closeScan_argsTupleScheme();
      }
    }

    private static class closeScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<closeScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetScanID()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetScanID()) {
          oprot.writeI64(struct.scanID);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.scanID = iprot.readI64();
          struct.setScanIDIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class startMultiScan_args implements org.apache.thrift.TBase<startMultiScan_args, startMultiScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<startMultiScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("startMultiScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)8);
    private static final org.apache.thrift.protocol.TField CREDENTIALS_FIELD_DESC = new org.apache.thrift.protocol.TField("credentials", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField BATCH_FIELD_DESC = new org.apache.thrift.protocol.TField("batch", org.apache.thrift.protocol.TType.MAP, (short)2);
    private static final org.apache.thrift.protocol.TField COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("columns", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField SSI_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("ssiList", org.apache.thrift.protocol.TType.LIST, (short)4);
    private static final org.apache.thrift.protocol.TField SSIO_FIELD_DESC = new org.apache.thrift.protocol.TField("ssio", org.apache.thrift.protocol.TType.MAP, (short)5);
    private static final org.apache.thrift.protocol.TField AUTHORIZATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizations", org.apache.thrift.protocol.TType.LIST, (short)6);
    private static final org.apache.thrift.protocol.TField WAIT_FOR_WRITES_FIELD_DESC = new org.apache.thrift.protocol.TField("waitForWrites", org.apache.thrift.protocol.TType.BOOL, (short)7);
    private static final org.apache.thrift.protocol.TField SAMPLER_CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("samplerConfig", org.apache.thrift.protocol.TType.STRUCT, (short)9);
    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)10);
    private static final org.apache.thrift.protocol.TField CLASS_LOADER_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("classLoaderContext", org.apache.thrift.protocol.TType.STRING, (short)11);
    private static final org.apache.thrift.protocol.TField EXECUTION_HINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("executionHints", org.apache.thrift.protocol.TType.MAP, (short)12);
    private static final org.apache.thrift.protocol.TField BUSY_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("busyTimeout", org.apache.thrift.protocol.TType.I64, (short)13);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new startMultiScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new startMultiScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials; // required
    public @org.apache.thrift.annotation.Nullable java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList; // required
    public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio; // required
    public @org.apache.thrift.annotation.Nullable java.util.List<java.nio.ByteBuffer> authorizations; // required
    public boolean waitForWrites; // required
    public @org.apache.thrift.annotation.Nullable TSamplerConfiguration samplerConfig; // required
    public long batchTimeOut; // required
    public @org.apache.thrift.annotation.Nullable java.lang.String classLoaderContext; // required
    public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> executionHints; // required
    public long busyTimeout; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)8, "tinfo"),
      CREDENTIALS((short)1, "credentials"),
      BATCH((short)2, "batch"),
      COLUMNS((short)3, "columns"),
      SSI_LIST((short)4, "ssiList"),
      SSIO((short)5, "ssio"),
      AUTHORIZATIONS((short)6, "authorizations"),
      WAIT_FOR_WRITES((short)7, "waitForWrites"),
      SAMPLER_CONFIG((short)9, "samplerConfig"),
      BATCH_TIME_OUT((short)10, "batchTimeOut"),
      CLASS_LOADER_CONTEXT((short)11, "classLoaderContext"),
      EXECUTION_HINTS((short)12, "executionHints"),
      BUSY_TIMEOUT((short)13, "busyTimeout");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 8: // TINFO
            return TINFO;
          case 1: // CREDENTIALS
            return CREDENTIALS;
          case 2: // BATCH
            return BATCH;
          case 3: // COLUMNS
            return COLUMNS;
          case 4: // SSI_LIST
            return SSI_LIST;
          case 5: // SSIO
            return SSIO;
          case 6: // AUTHORIZATIONS
            return AUTHORIZATIONS;
          case 7: // WAIT_FOR_WRITES
            return WAIT_FOR_WRITES;
          case 9: // SAMPLER_CONFIG
            return SAMPLER_CONFIG;
          case 10: // BATCH_TIME_OUT
            return BATCH_TIME_OUT;
          case 11: // CLASS_LOADER_CONTEXT
            return CLASS_LOADER_CONTEXT;
          case 12: // EXECUTION_HINTS
            return EXECUTION_HINTS;
          case 13: // BUSY_TIMEOUT
            return BUSY_TIMEOUT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __WAITFORWRITES_ISSET_ID = 0;
    private static final int __BATCHTIMEOUT_ISSET_ID = 1;
    private static final int __BUSYTIMEOUT_ISSET_ID = 2;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.CREDENTIALS, new org.apache.thrift.meta_data.FieldMetaData("credentials", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.securityImpl.thrift.TCredentials.class)));
      tmpMap.put(_Fields.BATCH, new org.apache.thrift.meta_data.FieldMetaData("batch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.MAP          , "ScanBatch")));
      tmpMap.put(_Fields.COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("columns", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.TColumn.class))));
      tmpMap.put(_Fields.SSI_LIST, new org.apache.thrift.meta_data.FieldMetaData("ssiList", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.IterInfo.class))));
      tmpMap.put(_Fields.SSIO, new org.apache.thrift.meta_data.FieldMetaData("ssio", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
      tmpMap.put(_Fields.AUTHORIZATIONS, new org.apache.thrift.meta_data.FieldMetaData("authorizations", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      tmpMap.put(_Fields.WAIT_FOR_WRITES, new org.apache.thrift.meta_data.FieldMetaData("waitForWrites", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.SAMPLER_CONFIG, new org.apache.thrift.meta_data.FieldMetaData("samplerConfig", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSamplerConfiguration.class)));
      tmpMap.put(_Fields.BATCH_TIME_OUT, new org.apache.thrift.meta_data.FieldMetaData("batchTimeOut", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.CLASS_LOADER_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("classLoaderContext", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.EXECUTION_HINTS, new org.apache.thrift.meta_data.FieldMetaData("executionHints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.BUSY_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("busyTimeout", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(startMultiScan_args.class, metaDataMap);
    }

    public startMultiScan_args() {
    }

    public startMultiScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials,
      java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch,
      java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns,
      java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList,
      java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio,
      java.util.List<java.nio.ByteBuffer> authorizations,
      boolean waitForWrites,
      TSamplerConfiguration samplerConfig,
      long batchTimeOut,
      java.lang.String classLoaderContext,
      java.util.Map<java.lang.String,java.lang.String> executionHints,
      long busyTimeout)
    {
      this();
      this.tinfo = tinfo;
      this.credentials = credentials;
      this.batch = batch;
      this.columns = columns;
      this.ssiList = ssiList;
      this.ssio = ssio;
      this.authorizations = authorizations;
      this.waitForWrites = waitForWrites;
      setWaitForWritesIsSet(true);
      this.samplerConfig = samplerConfig;
      this.batchTimeOut = batchTimeOut;
      setBatchTimeOutIsSet(true);
      this.classLoaderContext = classLoaderContext;
      this.executionHints = executionHints;
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public startMultiScan_args(startMultiScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      if (other.isSetCredentials()) {
        this.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials(other.credentials);
      }
      if (other.isSetBatch()) {
        java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> __this__batch = new java.util.HashMap<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>>(other.batch.size());
        for (java.util.Map.Entry<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> other_element : other.batch.entrySet()) {

          org.apache.accumulo.core.dataImpl.thrift.TKeyExtent other_element_key = other_element.getKey();
          java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange> other_element_value = other_element.getValue();

          org.apache.accumulo.core.dataImpl.thrift.TKeyExtent __this__batch_copy_key = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent(other_element_key);

          java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange> __this__batch_copy_value = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TRange>(other_element_value.size());
          for (org.apache.accumulo.core.dataImpl.thrift.TRange other_element_value_element : other_element_value) {
            __this__batch_copy_value.add(new org.apache.accumulo.core.dataImpl.thrift.TRange(other_element_value_element));
          }

          __this__batch.put(__this__batch_copy_key, __this__batch_copy_value);
        }
        this.batch = __this__batch;
      }
      if (other.isSetColumns()) {
        java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> __this__columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(other.columns.size());
        for (org.apache.accumulo.core.dataImpl.thrift.TColumn other_element : other.columns) {
          __this__columns.add(new org.apache.accumulo.core.dataImpl.thrift.TColumn(other_element));
        }
        this.columns = __this__columns;
      }
      if (other.isSetSsiList()) {
        java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> __this__ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(other.ssiList.size());
        for (org.apache.accumulo.core.dataImpl.thrift.IterInfo other_element : other.ssiList) {
          __this__ssiList.add(new org.apache.accumulo.core.dataImpl.thrift.IterInfo(other_element));
        }
        this.ssiList = __this__ssiList;
      }
      if (other.isSetSsio()) {
        java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> __this__ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(other.ssio.size());
        for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> other_element : other.ssio.entrySet()) {

          java.lang.String other_element_key = other_element.getKey();
          java.util.Map<java.lang.String,java.lang.String> other_element_value = other_element.getValue();

          java.lang.String __this__ssio_copy_key = other_element_key;

          java.util.Map<java.lang.String,java.lang.String> __this__ssio_copy_value = new java.util.HashMap<java.lang.String,java.lang.String>(other_element_value);

          __this__ssio.put(__this__ssio_copy_key, __this__ssio_copy_value);
        }
        this.ssio = __this__ssio;
      }
      if (other.isSetAuthorizations()) {
        java.util.List<java.nio.ByteBuffer> __this__authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(other.authorizations);
        this.authorizations = __this__authorizations;
      }
      this.waitForWrites = other.waitForWrites;
      if (other.isSetSamplerConfig()) {
        this.samplerConfig = new TSamplerConfiguration(other.samplerConfig);
      }
      this.batchTimeOut = other.batchTimeOut;
      if (other.isSetClassLoaderContext()) {
        this.classLoaderContext = other.classLoaderContext;
      }
      if (other.isSetExecutionHints()) {
        java.util.Map<java.lang.String,java.lang.String> __this__executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(other.executionHints);
        this.executionHints = __this__executionHints;
      }
      this.busyTimeout = other.busyTimeout;
    }

    @Override
    public startMultiScan_args deepCopy() {
      return new startMultiScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      this.credentials = null;
      this.batch = null;
      this.columns = null;
      this.ssiList = null;
      this.ssio = null;
      this.authorizations = null;
      setWaitForWritesIsSet(false);
      this.waitForWrites = false;
      this.samplerConfig = null;
      setBatchTimeOutIsSet(false);
      this.batchTimeOut = 0;
      this.classLoaderContext = null;
      this.executionHints = null;
      setBusyTimeoutIsSet(false);
      this.busyTimeout = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public startMultiScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.securityImpl.thrift.TCredentials getCredentials() {
      return this.credentials;
    }

    public startMultiScan_args setCredentials(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) {
      this.credentials = credentials;
      return this;
    }

    public void unsetCredentials() {
      this.credentials = null;
    }

    /** Returns true if field credentials is set (has been assigned a value) and false otherwise */
    public boolean isSetCredentials() {
      return this.credentials != null;
    }

    public void setCredentialsIsSet(boolean value) {
      if (!value) {
        this.credentials = null;
      }
    }

    public int getBatchSize() {
      return (this.batch == null) ? 0 : this.batch.size();
    }

    public void putToBatch(org.apache.accumulo.core.dataImpl.thrift.TKeyExtent key, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange> val) {
      if (this.batch == null) {
        this.batch = new java.util.HashMap<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>>();
      }
      this.batch.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> getBatch() {
      return this.batch;
    }

    public startMultiScan_args setBatch(@org.apache.thrift.annotation.Nullable java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> batch) {
      this.batch = batch;
      return this;
    }

    public void unsetBatch() {
      this.batch = null;
    }

    /** Returns true if field batch is set (has been assigned a value) and false otherwise */
    public boolean isSetBatch() {
      return this.batch != null;
    }

    public void setBatchIsSet(boolean value) {
      if (!value) {
        this.batch = null;
      }
    }

    public int getColumnsSize() {
      return (this.columns == null) ? 0 : this.columns.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<org.apache.accumulo.core.dataImpl.thrift.TColumn> getColumnsIterator() {
      return (this.columns == null) ? null : this.columns.iterator();
    }

    public void addToColumns(org.apache.accumulo.core.dataImpl.thrift.TColumn elem) {
      if (this.columns == null) {
        this.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>();
      }
      this.columns.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> getColumns() {
      return this.columns;
    }

    public startMultiScan_args setColumns(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn> columns) {
      this.columns = columns;
      return this;
    }

    public void unsetColumns() {
      this.columns = null;
    }

    /** Returns true if field columns is set (has been assigned a value) and false otherwise */
    public boolean isSetColumns() {
      return this.columns != null;
    }

    public void setColumnsIsSet(boolean value) {
      if (!value) {
        this.columns = null;
      }
    }

    public int getSsiListSize() {
      return (this.ssiList == null) ? 0 : this.ssiList.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<org.apache.accumulo.core.dataImpl.thrift.IterInfo> getSsiListIterator() {
      return (this.ssiList == null) ? null : this.ssiList.iterator();
    }

    public void addToSsiList(org.apache.accumulo.core.dataImpl.thrift.IterInfo elem) {
      if (this.ssiList == null) {
        this.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>();
      }
      this.ssiList.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> getSsiList() {
      return this.ssiList;
    }

    public startMultiScan_args setSsiList(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo> ssiList) {
      this.ssiList = ssiList;
      return this;
    }

    public void unsetSsiList() {
      this.ssiList = null;
    }

    /** Returns true if field ssiList is set (has been assigned a value) and false otherwise */
    public boolean isSetSsiList() {
      return this.ssiList != null;
    }

    public void setSsiListIsSet(boolean value) {
      if (!value) {
        this.ssiList = null;
      }
    }

    public int getSsioSize() {
      return (this.ssio == null) ? 0 : this.ssio.size();
    }

    public void putToSsio(java.lang.String key, java.util.Map<java.lang.String,java.lang.String> val) {
      if (this.ssio == null) {
        this.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>();
      }
      this.ssio.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getSsio() {
      return this.ssio;
    }

    public startMultiScan_args setSsio(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> ssio) {
      this.ssio = ssio;
      return this;
    }

    public void unsetSsio() {
      this.ssio = null;
    }

    /** Returns true if field ssio is set (has been assigned a value) and false otherwise */
    public boolean isSetSsio() {
      return this.ssio != null;
    }

    public void setSsioIsSet(boolean value) {
      if (!value) {
        this.ssio = null;
      }
    }

    public int getAuthorizationsSize() {
      return (this.authorizations == null) ? 0 : this.authorizations.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.nio.ByteBuffer> getAuthorizationsIterator() {
      return (this.authorizations == null) ? null : this.authorizations.iterator();
    }

    public void addToAuthorizations(java.nio.ByteBuffer elem) {
      if (this.authorizations == null) {
        this.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>();
      }
      this.authorizations.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.nio.ByteBuffer> getAuthorizations() {
      return this.authorizations;
    }

    public startMultiScan_args setAuthorizations(@org.apache.thrift.annotation.Nullable java.util.List<java.nio.ByteBuffer> authorizations) {
      this.authorizations = authorizations;
      return this;
    }

    public void unsetAuthorizations() {
      this.authorizations = null;
    }

    /** Returns true if field authorizations is set (has been assigned a value) and false otherwise */
    public boolean isSetAuthorizations() {
      return this.authorizations != null;
    }

    public void setAuthorizationsIsSet(boolean value) {
      if (!value) {
        this.authorizations = null;
      }
    }

    public boolean isWaitForWrites() {
      return this.waitForWrites;
    }

    public startMultiScan_args setWaitForWrites(boolean waitForWrites) {
      this.waitForWrites = waitForWrites;
      setWaitForWritesIsSet(true);
      return this;
    }

    public void unsetWaitForWrites() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID);
    }

    /** Returns true if field waitForWrites is set (has been assigned a value) and false otherwise */
    public boolean isSetWaitForWrites() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID);
    }

    public void setWaitForWritesIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __WAITFORWRITES_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public TSamplerConfiguration getSamplerConfig() {
      return this.samplerConfig;
    }

    public startMultiScan_args setSamplerConfig(@org.apache.thrift.annotation.Nullable TSamplerConfiguration samplerConfig) {
      this.samplerConfig = samplerConfig;
      return this;
    }

    public void unsetSamplerConfig() {
      this.samplerConfig = null;
    }

    /** Returns true if field samplerConfig is set (has been assigned a value) and false otherwise */
    public boolean isSetSamplerConfig() {
      return this.samplerConfig != null;
    }

    public void setSamplerConfigIsSet(boolean value) {
      if (!value) {
        this.samplerConfig = null;
      }
    }

    public long getBatchTimeOut() {
      return this.batchTimeOut;
    }

    public startMultiScan_args setBatchTimeOut(long batchTimeOut) {
      this.batchTimeOut = batchTimeOut;
      setBatchTimeOutIsSet(true);
      return this;
    }

    public void unsetBatchTimeOut() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID);
    }

    /** Returns true if field batchTimeOut is set (has been assigned a value) and false otherwise */
    public boolean isSetBatchTimeOut() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID);
    }

    public void setBatchTimeOutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BATCHTIMEOUT_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getClassLoaderContext() {
      return this.classLoaderContext;
    }

    public startMultiScan_args setClassLoaderContext(@org.apache.thrift.annotation.Nullable java.lang.String classLoaderContext) {
      this.classLoaderContext = classLoaderContext;
      return this;
    }

    public void unsetClassLoaderContext() {
      this.classLoaderContext = null;
    }

    /** Returns true if field classLoaderContext is set (has been assigned a value) and false otherwise */
    public boolean isSetClassLoaderContext() {
      return this.classLoaderContext != null;
    }

    public void setClassLoaderContextIsSet(boolean value) {
      if (!value) {
        this.classLoaderContext = null;
      }
    }

    public int getExecutionHintsSize() {
      return (this.executionHints == null) ? 0 : this.executionHints.size();
    }

    public void putToExecutionHints(java.lang.String key, java.lang.String val) {
      if (this.executionHints == null) {
        this.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.executionHints.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getExecutionHints() {
      return this.executionHints;
    }

    public startMultiScan_args setExecutionHints(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> executionHints) {
      this.executionHints = executionHints;
      return this;
    }

    public void unsetExecutionHints() {
      this.executionHints = null;
    }

    /** Returns true if field executionHints is set (has been assigned a value) and false otherwise */
    public boolean isSetExecutionHints() {
      return this.executionHints != null;
    }

    public void setExecutionHintsIsSet(boolean value) {
      if (!value) {
        this.executionHints = null;
      }
    }

    public long getBusyTimeout() {
      return this.busyTimeout;
    }

    public startMultiScan_args setBusyTimeout(long busyTimeout) {
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
      return this;
    }

    public void unsetBusyTimeout() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    /** Returns true if field busyTimeout is set (has been assigned a value) and false otherwise */
    public boolean isSetBusyTimeout() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    public void setBusyTimeoutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case CREDENTIALS:
        if (value == null) {
          unsetCredentials();
        } else {
          setCredentials((org.apache.accumulo.core.securityImpl.thrift.TCredentials)value);
        }
        break;

      case BATCH:
        if (value == null) {
          unsetBatch();
        } else {
          setBatch((java.util.Map<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>>)value);
        }
        break;

      case COLUMNS:
        if (value == null) {
          unsetColumns();
        } else {
          setColumns((java.util.List<org.apache.accumulo.core.dataImpl.thrift.TColumn>)value);
        }
        break;

      case SSI_LIST:
        if (value == null) {
          unsetSsiList();
        } else {
          setSsiList((java.util.List<org.apache.accumulo.core.dataImpl.thrift.IterInfo>)value);
        }
        break;

      case SSIO:
        if (value == null) {
          unsetSsio();
        } else {
          setSsio((java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>)value);
        }
        break;

      case AUTHORIZATIONS:
        if (value == null) {
          unsetAuthorizations();
        } else {
          setAuthorizations((java.util.List<java.nio.ByteBuffer>)value);
        }
        break;

      case WAIT_FOR_WRITES:
        if (value == null) {
          unsetWaitForWrites();
        } else {
          setWaitForWrites((java.lang.Boolean)value);
        }
        break;

      case SAMPLER_CONFIG:
        if (value == null) {
          unsetSamplerConfig();
        } else {
          setSamplerConfig((TSamplerConfiguration)value);
        }
        break;

      case BATCH_TIME_OUT:
        if (value == null) {
          unsetBatchTimeOut();
        } else {
          setBatchTimeOut((java.lang.Long)value);
        }
        break;

      case CLASS_LOADER_CONTEXT:
        if (value == null) {
          unsetClassLoaderContext();
        } else {
          setClassLoaderContext((java.lang.String)value);
        }
        break;

      case EXECUTION_HINTS:
        if (value == null) {
          unsetExecutionHints();
        } else {
          setExecutionHints((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case BUSY_TIMEOUT:
        if (value == null) {
          unsetBusyTimeout();
        } else {
          setBusyTimeout((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case CREDENTIALS:
        return getCredentials();

      case BATCH:
        return getBatch();

      case COLUMNS:
        return getColumns();

      case SSI_LIST:
        return getSsiList();

      case SSIO:
        return getSsio();

      case AUTHORIZATIONS:
        return getAuthorizations();

      case WAIT_FOR_WRITES:
        return isWaitForWrites();

      case SAMPLER_CONFIG:
        return getSamplerConfig();

      case BATCH_TIME_OUT:
        return getBatchTimeOut();

      case CLASS_LOADER_CONTEXT:
        return getClassLoaderContext();

      case EXECUTION_HINTS:
        return getExecutionHints();

      case BUSY_TIMEOUT:
        return getBusyTimeout();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case CREDENTIALS:
        return isSetCredentials();
      case BATCH:
        return isSetBatch();
      case COLUMNS:
        return isSetColumns();
      case SSI_LIST:
        return isSetSsiList();
      case SSIO:
        return isSetSsio();
      case AUTHORIZATIONS:
        return isSetAuthorizations();
      case WAIT_FOR_WRITES:
        return isSetWaitForWrites();
      case SAMPLER_CONFIG:
        return isSetSamplerConfig();
      case BATCH_TIME_OUT:
        return isSetBatchTimeOut();
      case CLASS_LOADER_CONTEXT:
        return isSetClassLoaderContext();
      case EXECUTION_HINTS:
        return isSetExecutionHints();
      case BUSY_TIMEOUT:
        return isSetBusyTimeout();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof startMultiScan_args)
        return this.equals((startMultiScan_args)that);
      return false;
    }

    public boolean equals(startMultiScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_credentials = true && this.isSetCredentials();
      boolean that_present_credentials = true && that.isSetCredentials();
      if (this_present_credentials || that_present_credentials) {
        if (!(this_present_credentials && that_present_credentials))
          return false;
        if (!this.credentials.equals(that.credentials))
          return false;
      }

      boolean this_present_batch = true && this.isSetBatch();
      boolean that_present_batch = true && that.isSetBatch();
      if (this_present_batch || that_present_batch) {
        if (!(this_present_batch && that_present_batch))
          return false;
        if (!this.batch.equals(that.batch))
          return false;
      }

      boolean this_present_columns = true && this.isSetColumns();
      boolean that_present_columns = true && that.isSetColumns();
      if (this_present_columns || that_present_columns) {
        if (!(this_present_columns && that_present_columns))
          return false;
        if (!this.columns.equals(that.columns))
          return false;
      }

      boolean this_present_ssiList = true && this.isSetSsiList();
      boolean that_present_ssiList = true && that.isSetSsiList();
      if (this_present_ssiList || that_present_ssiList) {
        if (!(this_present_ssiList && that_present_ssiList))
          return false;
        if (!this.ssiList.equals(that.ssiList))
          return false;
      }

      boolean this_present_ssio = true && this.isSetSsio();
      boolean that_present_ssio = true && that.isSetSsio();
      if (this_present_ssio || that_present_ssio) {
        if (!(this_present_ssio && that_present_ssio))
          return false;
        if (!this.ssio.equals(that.ssio))
          return false;
      }

      boolean this_present_authorizations = true && this.isSetAuthorizations();
      boolean that_present_authorizations = true && that.isSetAuthorizations();
      if (this_present_authorizations || that_present_authorizations) {
        if (!(this_present_authorizations && that_present_authorizations))
          return false;
        if (!this.authorizations.equals(that.authorizations))
          return false;
      }

      boolean this_present_waitForWrites = true;
      boolean that_present_waitForWrites = true;
      if (this_present_waitForWrites || that_present_waitForWrites) {
        if (!(this_present_waitForWrites && that_present_waitForWrites))
          return false;
        if (this.waitForWrites != that.waitForWrites)
          return false;
      }

      boolean this_present_samplerConfig = true && this.isSetSamplerConfig();
      boolean that_present_samplerConfig = true && that.isSetSamplerConfig();
      if (this_present_samplerConfig || that_present_samplerConfig) {
        if (!(this_present_samplerConfig && that_present_samplerConfig))
          return false;
        if (!this.samplerConfig.equals(that.samplerConfig))
          return false;
      }

      boolean this_present_batchTimeOut = true;
      boolean that_present_batchTimeOut = true;
      if (this_present_batchTimeOut || that_present_batchTimeOut) {
        if (!(this_present_batchTimeOut && that_present_batchTimeOut))
          return false;
        if (this.batchTimeOut != that.batchTimeOut)
          return false;
      }

      boolean this_present_classLoaderContext = true && this.isSetClassLoaderContext();
      boolean that_present_classLoaderContext = true && that.isSetClassLoaderContext();
      if (this_present_classLoaderContext || that_present_classLoaderContext) {
        if (!(this_present_classLoaderContext && that_present_classLoaderContext))
          return false;
        if (!this.classLoaderContext.equals(that.classLoaderContext))
          return false;
      }

      boolean this_present_executionHints = true && this.isSetExecutionHints();
      boolean that_present_executionHints = true && that.isSetExecutionHints();
      if (this_present_executionHints || that_present_executionHints) {
        if (!(this_present_executionHints && that_present_executionHints))
          return false;
        if (!this.executionHints.equals(that.executionHints))
          return false;
      }

      boolean this_present_busyTimeout = true;
      boolean that_present_busyTimeout = true;
      if (this_present_busyTimeout || that_present_busyTimeout) {
        if (!(this_present_busyTimeout && that_present_busyTimeout))
          return false;
        if (this.busyTimeout != that.busyTimeout)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + ((isSetCredentials()) ? 131071 : 524287);
      if (isSetCredentials())
        hashCode = hashCode * 8191 + credentials.hashCode();

      hashCode = hashCode * 8191 + ((isSetBatch()) ? 131071 : 524287);
      if (isSetBatch())
        hashCode = hashCode * 8191 + batch.hashCode();

      hashCode = hashCode * 8191 + ((isSetColumns()) ? 131071 : 524287);
      if (isSetColumns())
        hashCode = hashCode * 8191 + columns.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsiList()) ? 131071 : 524287);
      if (isSetSsiList())
        hashCode = hashCode * 8191 + ssiList.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsio()) ? 131071 : 524287);
      if (isSetSsio())
        hashCode = hashCode * 8191 + ssio.hashCode();

      hashCode = hashCode * 8191 + ((isSetAuthorizations()) ? 131071 : 524287);
      if (isSetAuthorizations())
        hashCode = hashCode * 8191 + authorizations.hashCode();

      hashCode = hashCode * 8191 + ((waitForWrites) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetSamplerConfig()) ? 131071 : 524287);
      if (isSetSamplerConfig())
        hashCode = hashCode * 8191 + samplerConfig.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(batchTimeOut);

      hashCode = hashCode * 8191 + ((isSetClassLoaderContext()) ? 131071 : 524287);
      if (isSetClassLoaderContext())
        hashCode = hashCode * 8191 + classLoaderContext.hashCode();

      hashCode = hashCode * 8191 + ((isSetExecutionHints()) ? 131071 : 524287);
      if (isSetExecutionHints())
        hashCode = hashCode * 8191 + executionHints.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(busyTimeout);

      return hashCode;
    }

    @Override
    public int compareTo(startMultiScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCredentials(), other.isSetCredentials());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCredentials()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentials, other.credentials);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBatch(), other.isSetBatch());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBatch()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batch, other.batch);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetColumns(), other.isSetColumns());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetColumns()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.columns, other.columns);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsiList(), other.isSetSsiList());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsiList()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssiList, other.ssiList);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsio(), other.isSetSsio());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsio()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssio, other.ssio);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetAuthorizations(), other.isSetAuthorizations());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthorizations()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizations, other.authorizations);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetWaitForWrites(), other.isSetWaitForWrites());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWaitForWrites()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.waitForWrites, other.waitForWrites);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSamplerConfig(), other.isSetSamplerConfig());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSamplerConfig()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.samplerConfig, other.samplerConfig);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBatchTimeOut(), other.isSetBatchTimeOut());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBatchTimeOut()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchTimeOut, other.batchTimeOut);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetClassLoaderContext(), other.isSetClassLoaderContext());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetClassLoaderContext()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.classLoaderContext, other.classLoaderContext);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetExecutionHints(), other.isSetExecutionHints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExecutionHints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionHints, other.executionHints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBusyTimeout(), other.isSetBusyTimeout());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBusyTimeout()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.busyTimeout, other.busyTimeout);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("startMultiScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("credentials:");
      if (this.credentials == null) {
        sb.append("null");
      } else {
        sb.append(this.credentials);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("batch:");
      if (this.batch == null) {
        sb.append("null");
      } else {
        sb.append(this.batch);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("columns:");
      if (this.columns == null) {
        sb.append("null");
      } else {
        sb.append(this.columns);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssiList:");
      if (this.ssiList == null) {
        sb.append("null");
      } else {
        sb.append(this.ssiList);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssio:");
      if (this.ssio == null) {
        sb.append("null");
      } else {
        sb.append(this.ssio);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("authorizations:");
      if (this.authorizations == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.authorizations, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("waitForWrites:");
      sb.append(this.waitForWrites);
      first = false;
      if (!first) sb.append(", ");
      sb.append("samplerConfig:");
      if (this.samplerConfig == null) {
        sb.append("null");
      } else {
        sb.append(this.samplerConfig);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("batchTimeOut:");
      sb.append(this.batchTimeOut);
      first = false;
      if (!first) sb.append(", ");
      sb.append("classLoaderContext:");
      if (this.classLoaderContext == null) {
        sb.append("null");
      } else {
        sb.append(this.classLoaderContext);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("executionHints:");
      if (this.executionHints == null) {
        sb.append("null");
      } else {
        sb.append(this.executionHints);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("busyTimeout:");
      sb.append(this.busyTimeout);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
      if (credentials != null) {
        credentials.validate();
      }
      if (samplerConfig != null) {
        samplerConfig.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class startMultiScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startMultiScan_argsStandardScheme getScheme() {
        return new startMultiScan_argsStandardScheme();
      }
    }

    private static class startMultiScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<startMultiScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, startMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 8: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // CREDENTIALS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
                struct.credentials.read(iprot);
                struct.setCredentialsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // BATCH
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map188 = iprot.readMapBegin();
                  struct.batch = new java.util.HashMap<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>>(2*_map188.size);
                  @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent _key189;
                  @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange> _val190;
                  for (int _i191 = 0; _i191 < _map188.size; ++_i191)
                  {
                    _key189 = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
                    _key189.read(iprot);
                    {
                      org.apache.thrift.protocol.TList _list192 = iprot.readListBegin();
                      _val190 = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TRange>(_list192.size);
                      @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TRange _elem193;
                      for (int _i194 = 0; _i194 < _list192.size; ++_i194)
                      {
                        _elem193 = new org.apache.accumulo.core.dataImpl.thrift.TRange();
                        _elem193.read(iprot);
                        _val190.add(_elem193);
                      }
                      iprot.readListEnd();
                    }
                    struct.batch.put(_key189, _val190);
                  }
                  iprot.readMapEnd();
                }
                struct.setBatchIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // COLUMNS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list195 = iprot.readListBegin();
                  struct.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(_list195.size);
                  @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TColumn _elem196;
                  for (int _i197 = 0; _i197 < _list195.size; ++_i197)
                  {
                    _elem196 = new org.apache.accumulo.core.dataImpl.thrift.TColumn();
                    _elem196.read(iprot);
                    struct.columns.add(_elem196);
                  }
                  iprot.readListEnd();
                }
                struct.setColumnsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // SSI_LIST
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list198 = iprot.readListBegin();
                  struct.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(_list198.size);
                  @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.IterInfo _elem199;
                  for (int _i200 = 0; _i200 < _list198.size; ++_i200)
                  {
                    _elem199 = new org.apache.accumulo.core.dataImpl.thrift.IterInfo();
                    _elem199.read(iprot);
                    struct.ssiList.add(_elem199);
                  }
                  iprot.readListEnd();
                }
                struct.setSsiListIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // SSIO
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map201 = iprot.readMapBegin();
                  struct.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(2*_map201.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key202;
                  @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> _val203;
                  for (int _i204 = 0; _i204 < _map201.size; ++_i204)
                  {
                    _key202 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TMap _map205 = iprot.readMapBegin();
                      _val203 = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map205.size);
                      @org.apache.thrift.annotation.Nullable java.lang.String _key206;
                      @org.apache.thrift.annotation.Nullable java.lang.String _val207;
                      for (int _i208 = 0; _i208 < _map205.size; ++_i208)
                      {
                        _key206 = iprot.readString();
                        _val207 = iprot.readString();
                        _val203.put(_key206, _val207);
                      }
                      iprot.readMapEnd();
                    }
                    struct.ssio.put(_key202, _val203);
                  }
                  iprot.readMapEnd();
                }
                struct.setSsioIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // AUTHORIZATIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list209 = iprot.readListBegin();
                  struct.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(_list209.size);
                  @org.apache.thrift.annotation.Nullable java.nio.ByteBuffer _elem210;
                  for (int _i211 = 0; _i211 < _list209.size; ++_i211)
                  {
                    _elem210 = iprot.readBinary();
                    struct.authorizations.add(_elem210);
                  }
                  iprot.readListEnd();
                }
                struct.setAuthorizationsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 7: // WAIT_FOR_WRITES
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.waitForWrites = iprot.readBool();
                struct.setWaitForWritesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 9: // SAMPLER_CONFIG
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.samplerConfig = new TSamplerConfiguration();
                struct.samplerConfig.read(iprot);
                struct.setSamplerConfigIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 10: // BATCH_TIME_OUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.batchTimeOut = iprot.readI64();
                struct.setBatchTimeOutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 11: // CLASS_LOADER_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.classLoaderContext = iprot.readString();
                struct.setClassLoaderContextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 12: // EXECUTION_HINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map212 = iprot.readMapBegin();
                  struct.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map212.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key213;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val214;
                  for (int _i215 = 0; _i215 < _map212.size; ++_i215)
                  {
                    _key213 = iprot.readString();
                    _val214 = iprot.readString();
                    struct.executionHints.put(_key213, _val214);
                  }
                  iprot.readMapEnd();
                }
                struct.setExecutionHintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 13: // BUSY_TIMEOUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.busyTimeout = iprot.readI64();
                struct.setBusyTimeoutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, startMultiScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.credentials != null) {
          oprot.writeFieldBegin(CREDENTIALS_FIELD_DESC);
          struct.credentials.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.batch != null) {
          oprot.writeFieldBegin(BATCH_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.LIST, struct.batch.size()));
            for (java.util.Map.Entry<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> _iter216 : struct.batch.entrySet())
            {
              _iter216.getKey().write(oprot);
              {
                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter216.getValue().size()));
                for (org.apache.accumulo.core.dataImpl.thrift.TRange _iter217 : _iter216.getValue())
                {
                  _iter217.write(oprot);
                }
                oprot.writeListEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.columns != null) {
          oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.columns.size()));
            for (org.apache.accumulo.core.dataImpl.thrift.TColumn _iter218 : struct.columns)
            {
              _iter218.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ssiList != null) {
          oprot.writeFieldBegin(SSI_LIST_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.ssiList.size()));
            for (org.apache.accumulo.core.dataImpl.thrift.IterInfo _iter219 : struct.ssiList)
            {
              _iter219.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ssio != null) {
          oprot.writeFieldBegin(SSIO_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.ssio.size()));
            for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> _iter220 : struct.ssio.entrySet())
            {
              oprot.writeString(_iter220.getKey());
              {
                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter220.getValue().size()));
                for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter221 : _iter220.getValue().entrySet())
                {
                  oprot.writeString(_iter221.getKey());
                  oprot.writeString(_iter221.getValue());
                }
                oprot.writeMapEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.authorizations != null) {
          oprot.writeFieldBegin(AUTHORIZATIONS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.authorizations.size()));
            for (java.nio.ByteBuffer _iter222 : struct.authorizations)
            {
              oprot.writeBinary(_iter222);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(WAIT_FOR_WRITES_FIELD_DESC);
        oprot.writeBool(struct.waitForWrites);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.samplerConfig != null) {
          oprot.writeFieldBegin(SAMPLER_CONFIG_FIELD_DESC);
          struct.samplerConfig.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BATCH_TIME_OUT_FIELD_DESC);
        oprot.writeI64(struct.batchTimeOut);
        oprot.writeFieldEnd();
        if (struct.classLoaderContext != null) {
          oprot.writeFieldBegin(CLASS_LOADER_CONTEXT_FIELD_DESC);
          oprot.writeString(struct.classLoaderContext);
          oprot.writeFieldEnd();
        }
        if (struct.executionHints != null) {
          oprot.writeFieldBegin(EXECUTION_HINTS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.executionHints.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter223 : struct.executionHints.entrySet())
            {
              oprot.writeString(_iter223.getKey());
              oprot.writeString(_iter223.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BUSY_TIMEOUT_FIELD_DESC);
        oprot.writeI64(struct.busyTimeout);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class startMultiScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startMultiScan_argsTupleScheme getScheme() {
        return new startMultiScan_argsTupleScheme();
      }
    }

    private static class startMultiScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<startMultiScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, startMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetCredentials()) {
          optionals.set(1);
        }
        if (struct.isSetBatch()) {
          optionals.set(2);
        }
        if (struct.isSetColumns()) {
          optionals.set(3);
        }
        if (struct.isSetSsiList()) {
          optionals.set(4);
        }
        if (struct.isSetSsio()) {
          optionals.set(5);
        }
        if (struct.isSetAuthorizations()) {
          optionals.set(6);
        }
        if (struct.isSetWaitForWrites()) {
          optionals.set(7);
        }
        if (struct.isSetSamplerConfig()) {
          optionals.set(8);
        }
        if (struct.isSetBatchTimeOut()) {
          optionals.set(9);
        }
        if (struct.isSetClassLoaderContext()) {
          optionals.set(10);
        }
        if (struct.isSetExecutionHints()) {
          optionals.set(11);
        }
        if (struct.isSetBusyTimeout()) {
          optionals.set(12);
        }
        oprot.writeBitSet(optionals, 13);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetCredentials()) {
          struct.credentials.write(oprot);
        }
        if (struct.isSetBatch()) {
          {
            oprot.writeI32(struct.batch.size());
            for (java.util.Map.Entry<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent, java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>> _iter224 : struct.batch.entrySet())
            {
              _iter224.getKey().write(oprot);
              {
                oprot.writeI32(_iter224.getValue().size());
                for (org.apache.accumulo.core.dataImpl.thrift.TRange _iter225 : _iter224.getValue())
                {
                  _iter225.write(oprot);
                }
              }
            }
          }
        }
        if (struct.isSetColumns()) {
          {
            oprot.writeI32(struct.columns.size());
            for (org.apache.accumulo.core.dataImpl.thrift.TColumn _iter226 : struct.columns)
            {
              _iter226.write(oprot);
            }
          }
        }
        if (struct.isSetSsiList()) {
          {
            oprot.writeI32(struct.ssiList.size());
            for (org.apache.accumulo.core.dataImpl.thrift.IterInfo _iter227 : struct.ssiList)
            {
              _iter227.write(oprot);
            }
          }
        }
        if (struct.isSetSsio()) {
          {
            oprot.writeI32(struct.ssio.size());
            for (java.util.Map.Entry<java.lang.String, java.util.Map<java.lang.String,java.lang.String>> _iter228 : struct.ssio.entrySet())
            {
              oprot.writeString(_iter228.getKey());
              {
                oprot.writeI32(_iter228.getValue().size());
                for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter229 : _iter228.getValue().entrySet())
                {
                  oprot.writeString(_iter229.getKey());
                  oprot.writeString(_iter229.getValue());
                }
              }
            }
          }
        }
        if (struct.isSetAuthorizations()) {
          {
            oprot.writeI32(struct.authorizations.size());
            for (java.nio.ByteBuffer _iter230 : struct.authorizations)
            {
              oprot.writeBinary(_iter230);
            }
          }
        }
        if (struct.isSetWaitForWrites()) {
          oprot.writeBool(struct.waitForWrites);
        }
        if (struct.isSetSamplerConfig()) {
          struct.samplerConfig.write(oprot);
        }
        if (struct.isSetBatchTimeOut()) {
          oprot.writeI64(struct.batchTimeOut);
        }
        if (struct.isSetClassLoaderContext()) {
          oprot.writeString(struct.classLoaderContext);
        }
        if (struct.isSetExecutionHints()) {
          {
            oprot.writeI32(struct.executionHints.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter231 : struct.executionHints.entrySet())
            {
              oprot.writeString(_iter231.getKey());
              oprot.writeString(_iter231.getValue());
            }
          }
        }
        if (struct.isSetBusyTimeout()) {
          oprot.writeI64(struct.busyTimeout);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, startMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(13);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
          struct.credentials.read(iprot);
          struct.setCredentialsIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map232 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.LIST); 
            struct.batch = new java.util.HashMap<org.apache.accumulo.core.dataImpl.thrift.TKeyExtent,java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange>>(2*_map232.size);
            @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent _key233;
            @org.apache.thrift.annotation.Nullable java.util.List<org.apache.accumulo.core.dataImpl.thrift.TRange> _val234;
            for (int _i235 = 0; _i235 < _map232.size; ++_i235)
            {
              _key233 = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
              _key233.read(iprot);
              {
                org.apache.thrift.protocol.TList _list236 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
                _val234 = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TRange>(_list236.size);
                @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TRange _elem237;
                for (int _i238 = 0; _i238 < _list236.size; ++_i238)
                {
                  _elem237 = new org.apache.accumulo.core.dataImpl.thrift.TRange();
                  _elem237.read(iprot);
                  _val234.add(_elem237);
                }
              }
              struct.batch.put(_key233, _val234);
            }
          }
          struct.setBatchIsSet(true);
        }
        if (incoming.get(3)) {
          {
            org.apache.thrift.protocol.TList _list239 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.columns = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.TColumn>(_list239.size);
            @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TColumn _elem240;
            for (int _i241 = 0; _i241 < _list239.size; ++_i241)
            {
              _elem240 = new org.apache.accumulo.core.dataImpl.thrift.TColumn();
              _elem240.read(iprot);
              struct.columns.add(_elem240);
            }
          }
          struct.setColumnsIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list242 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.ssiList = new java.util.ArrayList<org.apache.accumulo.core.dataImpl.thrift.IterInfo>(_list242.size);
            @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.IterInfo _elem243;
            for (int _i244 = 0; _i244 < _list242.size; ++_i244)
            {
              _elem243 = new org.apache.accumulo.core.dataImpl.thrift.IterInfo();
              _elem243.read(iprot);
              struct.ssiList.add(_elem243);
            }
          }
          struct.setSsiListIsSet(true);
        }
        if (incoming.get(5)) {
          {
            org.apache.thrift.protocol.TMap _map245 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP); 
            struct.ssio = new java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>(2*_map245.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key246;
            @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> _val247;
            for (int _i248 = 0; _i248 < _map245.size; ++_i248)
            {
              _key246 = iprot.readString();
              {
                org.apache.thrift.protocol.TMap _map249 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
                _val247 = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map249.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key250;
                @org.apache.thrift.annotation.Nullable java.lang.String _val251;
                for (int _i252 = 0; _i252 < _map249.size; ++_i252)
                {
                  _key250 = iprot.readString();
                  _val251 = iprot.readString();
                  _val247.put(_key250, _val251);
                }
              }
              struct.ssio.put(_key246, _val247);
            }
          }
          struct.setSsioIsSet(true);
        }
        if (incoming.get(6)) {
          {
            org.apache.thrift.protocol.TList _list253 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.authorizations = new java.util.ArrayList<java.nio.ByteBuffer>(_list253.size);
            @org.apache.thrift.annotation.Nullable java.nio.ByteBuffer _elem254;
            for (int _i255 = 0; _i255 < _list253.size; ++_i255)
            {
              _elem254 = iprot.readBinary();
              struct.authorizations.add(_elem254);
            }
          }
          struct.setAuthorizationsIsSet(true);
        }
        if (incoming.get(7)) {
          struct.waitForWrites = iprot.readBool();
          struct.setWaitForWritesIsSet(true);
        }
        if (incoming.get(8)) {
          struct.samplerConfig = new TSamplerConfiguration();
          struct.samplerConfig.read(iprot);
          struct.setSamplerConfigIsSet(true);
        }
        if (incoming.get(9)) {
          struct.batchTimeOut = iprot.readI64();
          struct.setBatchTimeOutIsSet(true);
        }
        if (incoming.get(10)) {
          struct.classLoaderContext = iprot.readString();
          struct.setClassLoaderContextIsSet(true);
        }
        if (incoming.get(11)) {
          {
            org.apache.thrift.protocol.TMap _map256 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.executionHints = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map256.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key257;
            @org.apache.thrift.annotation.Nullable java.lang.String _val258;
            for (int _i259 = 0; _i259 < _map256.size; ++_i259)
            {
              _key257 = iprot.readString();
              _val258 = iprot.readString();
              struct.executionHints.put(_key257, _val258);
            }
          }
          struct.setExecutionHintsIsSet(true);
        }
        if (incoming.get(12)) {
          struct.busyTimeout = iprot.readI64();
          struct.setBusyTimeoutIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class startMultiScan_result implements org.apache.thrift.TBase<startMultiScan_result, startMultiScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<startMultiScan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("startMultiScan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField SEC_FIELD_DESC = new org.apache.thrift.protocol.TField("sec", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SSBE_FIELD_DESC = new org.apache.thrift.protocol.TField("ssbe", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new startMultiScan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new startMultiScan_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan success; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec; // required
    public @org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe; // required
    public @org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      SEC((short)1, "sec"),
      TSNPE((short)2, "tsnpe"),
      SSBE((short)3, "ssbe");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SEC
            return SEC;
          case 2: // TSNPE
            return TSNPE;
          case 3: // SSBE
            return SSBE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan.class)));
      tmpMap.put(_Fields.SEC, new org.apache.thrift.meta_data.FieldMetaData("sec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException.class)));
      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSampleNotPresentException.class)));
      tmpMap.put(_Fields.SSBE, new org.apache.thrift.meta_data.FieldMetaData("ssbe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ScanServerBusyException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(startMultiScan_result.class, metaDataMap);
    }

    public startMultiScan_result() {
    }

    public startMultiScan_result(
      org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan success,
      org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec,
      TSampleNotPresentException tsnpe,
      ScanServerBusyException ssbe)
    {
      this();
      this.success = success;
      this.sec = sec;
      this.tsnpe = tsnpe;
      this.ssbe = ssbe;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public startMultiScan_result(startMultiScan_result other) {
      if (other.isSetSuccess()) {
        this.success = new org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan(other.success);
      }
      if (other.isSetSec()) {
        this.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException(other.sec);
      }
      if (other.isSetTsnpe()) {
        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
      }
      if (other.isSetSsbe()) {
        this.ssbe = new ScanServerBusyException(other.ssbe);
      }
    }

    @Override
    public startMultiScan_result deepCopy() {
      return new startMultiScan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.sec = null;
      this.tsnpe = null;
      this.ssbe = null;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan getSuccess() {
      return this.success;
    }

    public startMultiScan_result setSuccess(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException getSec() {
      return this.sec;
    }

    public startMultiScan_result setSec(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
      this.sec = sec;
      return this;
    }

    public void unsetSec() {
      this.sec = null;
    }

    /** Returns true if field sec is set (has been assigned a value) and false otherwise */
    public boolean isSetSec() {
      return this.sec != null;
    }

    public void setSecIsSet(boolean value) {
      if (!value) {
        this.sec = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TSampleNotPresentException getTsnpe() {
      return this.tsnpe;
    }

    public startMultiScan_result setTsnpe(@org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe) {
      this.tsnpe = tsnpe;
      return this;
    }

    public void unsetTsnpe() {
      this.tsnpe = null;
    }

    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
    public boolean isSetTsnpe() {
      return this.tsnpe != null;
    }

    public void setTsnpeIsSet(boolean value) {
      if (!value) {
        this.tsnpe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public ScanServerBusyException getSsbe() {
      return this.ssbe;
    }

    public startMultiScan_result setSsbe(@org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe) {
      this.ssbe = ssbe;
      return this;
    }

    public void unsetSsbe() {
      this.ssbe = null;
    }

    /** Returns true if field ssbe is set (has been assigned a value) and false otherwise */
    public boolean isSetSsbe() {
      return this.ssbe != null;
    }

    public void setSsbeIsSet(boolean value) {
      if (!value) {
        this.ssbe = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan)value);
        }
        break;

      case SEC:
        if (value == null) {
          unsetSec();
        } else {
          setSec((org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException)value);
        }
        break;

      case TSNPE:
        if (value == null) {
          unsetTsnpe();
        } else {
          setTsnpe((TSampleNotPresentException)value);
        }
        break;

      case SSBE:
        if (value == null) {
          unsetSsbe();
        } else {
          setSsbe((ScanServerBusyException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SEC:
        return getSec();

      case TSNPE:
        return getTsnpe();

      case SSBE:
        return getSsbe();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case SEC:
        return isSetSec();
      case TSNPE:
        return isSetTsnpe();
      case SSBE:
        return isSetSsbe();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof startMultiScan_result)
        return this.equals((startMultiScan_result)that);
      return false;
    }

    public boolean equals(startMultiScan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_sec = true && this.isSetSec();
      boolean that_present_sec = true && that.isSetSec();
      if (this_present_sec || that_present_sec) {
        if (!(this_present_sec && that_present_sec))
          return false;
        if (!this.sec.equals(that.sec))
          return false;
      }

      boolean this_present_tsnpe = true && this.isSetTsnpe();
      boolean that_present_tsnpe = true && that.isSetTsnpe();
      if (this_present_tsnpe || that_present_tsnpe) {
        if (!(this_present_tsnpe && that_present_tsnpe))
          return false;
        if (!this.tsnpe.equals(that.tsnpe))
          return false;
      }

      boolean this_present_ssbe = true && this.isSetSsbe();
      boolean that_present_ssbe = true && that.isSetSsbe();
      if (this_present_ssbe || that_present_ssbe) {
        if (!(this_present_ssbe && that_present_ssbe))
          return false;
        if (!this.ssbe.equals(that.ssbe))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetSec()) ? 131071 : 524287);
      if (isSetSec())
        hashCode = hashCode * 8191 + sec.hashCode();

      hashCode = hashCode * 8191 + ((isSetTsnpe()) ? 131071 : 524287);
      if (isSetTsnpe())
        hashCode = hashCode * 8191 + tsnpe.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsbe()) ? 131071 : 524287);
      if (isSetSsbe())
        hashCode = hashCode * 8191 + ssbe.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(startMultiScan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSec(), other.isSetSec());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSec()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sec, other.sec);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTsnpe(), other.isSetTsnpe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTsnpe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsbe(), other.isSetSsbe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsbe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssbe, other.ssbe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("startMultiScan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("sec:");
      if (this.sec == null) {
        sb.append("null");
      } else {
        sb.append(this.sec);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tsnpe:");
      if (this.tsnpe == null) {
        sb.append("null");
      } else {
        sb.append(this.tsnpe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssbe:");
      if (this.ssbe == null) {
        sb.append("null");
      } else {
        sb.append(this.ssbe);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class startMultiScan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startMultiScan_resultStandardScheme getScheme() {
        return new startMultiScan_resultStandardScheme();
      }
    }

    private static class startMultiScan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<startMultiScan_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, startMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SEC
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
                struct.sec.read(iprot);
                struct.setSecIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TSNPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tsnpe = new TSampleNotPresentException();
                struct.tsnpe.read(iprot);
                struct.setTsnpeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SSBE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ssbe = new ScanServerBusyException();
                struct.ssbe.read(iprot);
                struct.setSsbeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, startMultiScan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.sec != null) {
          oprot.writeFieldBegin(SEC_FIELD_DESC);
          struct.sec.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tsnpe != null) {
          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
          struct.tsnpe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ssbe != null) {
          oprot.writeFieldBegin(SSBE_FIELD_DESC);
          struct.ssbe.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class startMultiScan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public startMultiScan_resultTupleScheme getScheme() {
        return new startMultiScan_resultTupleScheme();
      }
    }

    private static class startMultiScan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<startMultiScan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, startMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetSec()) {
          optionals.set(1);
        }
        if (struct.isSetTsnpe()) {
          optionals.set(2);
        }
        if (struct.isSetSsbe()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetSec()) {
          struct.sec.write(oprot);
        }
        if (struct.isSetTsnpe()) {
          struct.tsnpe.write(oprot);
        }
        if (struct.isSetSsbe()) {
          struct.ssbe.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, startMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new org.apache.accumulo.core.dataImpl.thrift.InitialMultiScan();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
          struct.sec.read(iprot);
          struct.setSecIsSet(true);
        }
        if (incoming.get(2)) {
          struct.tsnpe = new TSampleNotPresentException();
          struct.tsnpe.read(iprot);
          struct.setTsnpeIsSet(true);
        }
        if (incoming.get(3)) {
          struct.ssbe = new ScanServerBusyException();
          struct.ssbe.read(iprot);
          struct.setSsbeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class continueMultiScan_args implements org.apache.thrift.TBase<continueMultiScan_args, continueMultiScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<continueMultiScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("continueMultiScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SCAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("scanID", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField BUSY_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("busyTimeout", org.apache.thrift.protocol.TType.I64, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new continueMultiScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new continueMultiScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public long scanID; // required
    public long busyTimeout; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)2, "tinfo"),
      SCAN_ID((short)1, "scanID"),
      BUSY_TIMEOUT((short)3, "busyTimeout");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 2: // TINFO
            return TINFO;
          case 1: // SCAN_ID
            return SCAN_ID;
          case 3: // BUSY_TIMEOUT
            return BUSY_TIMEOUT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SCANID_ISSET_ID = 0;
    private static final int __BUSYTIMEOUT_ISSET_ID = 1;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.SCAN_ID, new org.apache.thrift.meta_data.FieldMetaData("scanID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64          , "ScanID")));
      tmpMap.put(_Fields.BUSY_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("busyTimeout", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(continueMultiScan_args.class, metaDataMap);
    }

    public continueMultiScan_args() {
    }

    public continueMultiScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      long scanID,
      long busyTimeout)
    {
      this();
      this.tinfo = tinfo;
      this.scanID = scanID;
      setScanIDIsSet(true);
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public continueMultiScan_args(continueMultiScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      this.scanID = other.scanID;
      this.busyTimeout = other.busyTimeout;
    }

    @Override
    public continueMultiScan_args deepCopy() {
      return new continueMultiScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      setScanIDIsSet(false);
      this.scanID = 0;
      setBusyTimeoutIsSet(false);
      this.busyTimeout = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public continueMultiScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    public long getScanID() {
      return this.scanID;
    }

    public continueMultiScan_args setScanID(long scanID) {
      this.scanID = scanID;
      setScanIDIsSet(true);
      return this;
    }

    public void unsetScanID() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    /** Returns true if field scanID is set (has been assigned a value) and false otherwise */
    public boolean isSetScanID() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    public void setScanIDIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCANID_ISSET_ID, value);
    }

    public long getBusyTimeout() {
      return this.busyTimeout;
    }

    public continueMultiScan_args setBusyTimeout(long busyTimeout) {
      this.busyTimeout = busyTimeout;
      setBusyTimeoutIsSet(true);
      return this;
    }

    public void unsetBusyTimeout() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    /** Returns true if field busyTimeout is set (has been assigned a value) and false otherwise */
    public boolean isSetBusyTimeout() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID);
    }

    public void setBusyTimeoutIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __BUSYTIMEOUT_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case SCAN_ID:
        if (value == null) {
          unsetScanID();
        } else {
          setScanID((java.lang.Long)value);
        }
        break;

      case BUSY_TIMEOUT:
        if (value == null) {
          unsetBusyTimeout();
        } else {
          setBusyTimeout((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case SCAN_ID:
        return getScanID();

      case BUSY_TIMEOUT:
        return getBusyTimeout();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case SCAN_ID:
        return isSetScanID();
      case BUSY_TIMEOUT:
        return isSetBusyTimeout();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof continueMultiScan_args)
        return this.equals((continueMultiScan_args)that);
      return false;
    }

    public boolean equals(continueMultiScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_scanID = true;
      boolean that_present_scanID = true;
      if (this_present_scanID || that_present_scanID) {
        if (!(this_present_scanID && that_present_scanID))
          return false;
        if (this.scanID != that.scanID)
          return false;
      }

      boolean this_present_busyTimeout = true;
      boolean that_present_busyTimeout = true;
      if (this_present_busyTimeout || that_present_busyTimeout) {
        if (!(this_present_busyTimeout && that_present_busyTimeout))
          return false;
        if (this.busyTimeout != that.busyTimeout)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(scanID);

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(busyTimeout);

      return hashCode;
    }

    @Override
    public int compareTo(continueMultiScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetScanID(), other.isSetScanID());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanID()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanID, other.scanID);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetBusyTimeout(), other.isSetBusyTimeout());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBusyTimeout()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.busyTimeout, other.busyTimeout);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("continueMultiScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scanID:");
      sb.append(this.scanID);
      first = false;
      if (!first) sb.append(", ");
      sb.append("busyTimeout:");
      sb.append(this.busyTimeout);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class continueMultiScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueMultiScan_argsStandardScheme getScheme() {
        return new continueMultiScan_argsStandardScheme();
      }
    }

    private static class continueMultiScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<continueMultiScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, continueMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 2: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SCAN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.scanID = iprot.readI64();
                struct.setScanIDIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // BUSY_TIMEOUT
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.busyTimeout = iprot.readI64();
                struct.setBusyTimeoutIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, continueMultiScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(SCAN_ID_FIELD_DESC);
        oprot.writeI64(struct.scanID);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(BUSY_TIMEOUT_FIELD_DESC);
        oprot.writeI64(struct.busyTimeout);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class continueMultiScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueMultiScan_argsTupleScheme getScheme() {
        return new continueMultiScan_argsTupleScheme();
      }
    }

    private static class continueMultiScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<continueMultiScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, continueMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetScanID()) {
          optionals.set(1);
        }
        if (struct.isSetBusyTimeout()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetScanID()) {
          oprot.writeI64(struct.scanID);
        }
        if (struct.isSetBusyTimeout()) {
          oprot.writeI64(struct.busyTimeout);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, continueMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.scanID = iprot.readI64();
          struct.setScanIDIsSet(true);
        }
        if (incoming.get(2)) {
          struct.busyTimeout = iprot.readI64();
          struct.setBusyTimeoutIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class continueMultiScan_result implements org.apache.thrift.TBase<continueMultiScan_result, continueMultiScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<continueMultiScan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("continueMultiScan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField NSSI_FIELD_DESC = new org.apache.thrift.protocol.TField("nssi", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SSBE_FIELD_DESC = new org.apache.thrift.protocol.TField("ssbe", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new continueMultiScan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new continueMultiScan_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.MultiScanResult success; // required
    public @org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi; // required
    public @org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe; // required
    public @org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      NSSI((short)1, "nssi"),
      TSNPE((short)2, "tsnpe"),
      SSBE((short)3, "ssbe");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // NSSI
            return NSSI;
          case 2: // TSNPE
            return TSNPE;
          case 3: // SSBE
            return SSBE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.MultiScanResult.class)));
      tmpMap.put(_Fields.NSSI, new org.apache.thrift.meta_data.FieldMetaData("nssi", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchScanIDException.class)));
      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSampleNotPresentException.class)));
      tmpMap.put(_Fields.SSBE, new org.apache.thrift.meta_data.FieldMetaData("ssbe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ScanServerBusyException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(continueMultiScan_result.class, metaDataMap);
    }

    public continueMultiScan_result() {
    }

    public continueMultiScan_result(
      org.apache.accumulo.core.dataImpl.thrift.MultiScanResult success,
      NoSuchScanIDException nssi,
      TSampleNotPresentException tsnpe,
      ScanServerBusyException ssbe)
    {
      this();
      this.success = success;
      this.nssi = nssi;
      this.tsnpe = tsnpe;
      this.ssbe = ssbe;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public continueMultiScan_result(continueMultiScan_result other) {
      if (other.isSetSuccess()) {
        this.success = new org.apache.accumulo.core.dataImpl.thrift.MultiScanResult(other.success);
      }
      if (other.isSetNssi()) {
        this.nssi = new NoSuchScanIDException(other.nssi);
      }
      if (other.isSetTsnpe()) {
        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
      }
      if (other.isSetSsbe()) {
        this.ssbe = new ScanServerBusyException(other.ssbe);
      }
    }

    @Override
    public continueMultiScan_result deepCopy() {
      return new continueMultiScan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.nssi = null;
      this.tsnpe = null;
      this.ssbe = null;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.dataImpl.thrift.MultiScanResult getSuccess() {
      return this.success;
    }

    public continueMultiScan_result setSuccess(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.MultiScanResult success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchScanIDException getNssi() {
      return this.nssi;
    }

    public continueMultiScan_result setNssi(@org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi) {
      this.nssi = nssi;
      return this;
    }

    public void unsetNssi() {
      this.nssi = null;
    }

    /** Returns true if field nssi is set (has been assigned a value) and false otherwise */
    public boolean isSetNssi() {
      return this.nssi != null;
    }

    public void setNssiIsSet(boolean value) {
      if (!value) {
        this.nssi = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TSampleNotPresentException getTsnpe() {
      return this.tsnpe;
    }

    public continueMultiScan_result setTsnpe(@org.apache.thrift.annotation.Nullable TSampleNotPresentException tsnpe) {
      this.tsnpe = tsnpe;
      return this;
    }

    public void unsetTsnpe() {
      this.tsnpe = null;
    }

    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
    public boolean isSetTsnpe() {
      return this.tsnpe != null;
    }

    public void setTsnpeIsSet(boolean value) {
      if (!value) {
        this.tsnpe = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public ScanServerBusyException getSsbe() {
      return this.ssbe;
    }

    public continueMultiScan_result setSsbe(@org.apache.thrift.annotation.Nullable ScanServerBusyException ssbe) {
      this.ssbe = ssbe;
      return this;
    }

    public void unsetSsbe() {
      this.ssbe = null;
    }

    /** Returns true if field ssbe is set (has been assigned a value) and false otherwise */
    public boolean isSetSsbe() {
      return this.ssbe != null;
    }

    public void setSsbeIsSet(boolean value) {
      if (!value) {
        this.ssbe = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((org.apache.accumulo.core.dataImpl.thrift.MultiScanResult)value);
        }
        break;

      case NSSI:
        if (value == null) {
          unsetNssi();
        } else {
          setNssi((NoSuchScanIDException)value);
        }
        break;

      case TSNPE:
        if (value == null) {
          unsetTsnpe();
        } else {
          setTsnpe((TSampleNotPresentException)value);
        }
        break;

      case SSBE:
        if (value == null) {
          unsetSsbe();
        } else {
          setSsbe((ScanServerBusyException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case NSSI:
        return getNssi();

      case TSNPE:
        return getTsnpe();

      case SSBE:
        return getSsbe();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case NSSI:
        return isSetNssi();
      case TSNPE:
        return isSetTsnpe();
      case SSBE:
        return isSetSsbe();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof continueMultiScan_result)
        return this.equals((continueMultiScan_result)that);
      return false;
    }

    public boolean equals(continueMultiScan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_nssi = true && this.isSetNssi();
      boolean that_present_nssi = true && that.isSetNssi();
      if (this_present_nssi || that_present_nssi) {
        if (!(this_present_nssi && that_present_nssi))
          return false;
        if (!this.nssi.equals(that.nssi))
          return false;
      }

      boolean this_present_tsnpe = true && this.isSetTsnpe();
      boolean that_present_tsnpe = true && that.isSetTsnpe();
      if (this_present_tsnpe || that_present_tsnpe) {
        if (!(this_present_tsnpe && that_present_tsnpe))
          return false;
        if (!this.tsnpe.equals(that.tsnpe))
          return false;
      }

      boolean this_present_ssbe = true && this.isSetSsbe();
      boolean that_present_ssbe = true && that.isSetSsbe();
      if (this_present_ssbe || that_present_ssbe) {
        if (!(this_present_ssbe && that_present_ssbe))
          return false;
        if (!this.ssbe.equals(that.ssbe))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetNssi()) ? 131071 : 524287);
      if (isSetNssi())
        hashCode = hashCode * 8191 + nssi.hashCode();

      hashCode = hashCode * 8191 + ((isSetTsnpe()) ? 131071 : 524287);
      if (isSetTsnpe())
        hashCode = hashCode * 8191 + tsnpe.hashCode();

      hashCode = hashCode * 8191 + ((isSetSsbe()) ? 131071 : 524287);
      if (isSetSsbe())
        hashCode = hashCode * 8191 + ssbe.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(continueMultiScan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNssi(), other.isSetNssi());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNssi()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nssi, other.nssi);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTsnpe(), other.isSetTsnpe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTsnpe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSsbe(), other.isSetSsbe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSsbe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ssbe, other.ssbe);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("continueMultiScan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("nssi:");
      if (this.nssi == null) {
        sb.append("null");
      } else {
        sb.append(this.nssi);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tsnpe:");
      if (this.tsnpe == null) {
        sb.append("null");
      } else {
        sb.append(this.tsnpe);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ssbe:");
      if (this.ssbe == null) {
        sb.append("null");
      } else {
        sb.append(this.ssbe);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class continueMultiScan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueMultiScan_resultStandardScheme getScheme() {
        return new continueMultiScan_resultStandardScheme();
      }
    }

    private static class continueMultiScan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<continueMultiScan_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, continueMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new org.apache.accumulo.core.dataImpl.thrift.MultiScanResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // NSSI
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.nssi = new NoSuchScanIDException();
                struct.nssi.read(iprot);
                struct.setNssiIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TSNPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tsnpe = new TSampleNotPresentException();
                struct.tsnpe.read(iprot);
                struct.setTsnpeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SSBE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ssbe = new ScanServerBusyException();
                struct.ssbe.read(iprot);
                struct.setSsbeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, continueMultiScan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.nssi != null) {
          oprot.writeFieldBegin(NSSI_FIELD_DESC);
          struct.nssi.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tsnpe != null) {
          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
          struct.tsnpe.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ssbe != null) {
          oprot.writeFieldBegin(SSBE_FIELD_DESC);
          struct.ssbe.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class continueMultiScan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public continueMultiScan_resultTupleScheme getScheme() {
        return new continueMultiScan_resultTupleScheme();
      }
    }

    private static class continueMultiScan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<continueMultiScan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, continueMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetNssi()) {
          optionals.set(1);
        }
        if (struct.isSetTsnpe()) {
          optionals.set(2);
        }
        if (struct.isSetSsbe()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetNssi()) {
          struct.nssi.write(oprot);
        }
        if (struct.isSetTsnpe()) {
          struct.tsnpe.write(oprot);
        }
        if (struct.isSetSsbe()) {
          struct.ssbe.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, continueMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new org.apache.accumulo.core.dataImpl.thrift.MultiScanResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.nssi = new NoSuchScanIDException();
          struct.nssi.read(iprot);
          struct.setNssiIsSet(true);
        }
        if (incoming.get(2)) {
          struct.tsnpe = new TSampleNotPresentException();
          struct.tsnpe.read(iprot);
          struct.setTsnpeIsSet(true);
        }
        if (incoming.get(3)) {
          struct.ssbe = new ScanServerBusyException();
          struct.ssbe.read(iprot);
          struct.setSsbeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class closeMultiScan_args implements org.apache.thrift.TBase<closeMultiScan_args, closeMultiScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<closeMultiScan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeMultiScan_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField SCAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("scanID", org.apache.thrift.protocol.TType.I64, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new closeMultiScan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new closeMultiScan_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public long scanID; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)2, "tinfo"),
      SCAN_ID((short)1, "scanID");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 2: // TINFO
            return TINFO;
          case 1: // SCAN_ID
            return SCAN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SCANID_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.SCAN_ID, new org.apache.thrift.meta_data.FieldMetaData("scanID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64          , "ScanID")));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeMultiScan_args.class, metaDataMap);
    }

    public closeMultiScan_args() {
    }

    public closeMultiScan_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      long scanID)
    {
      this();
      this.tinfo = tinfo;
      this.scanID = scanID;
      setScanIDIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public closeMultiScan_args(closeMultiScan_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      this.scanID = other.scanID;
    }

    @Override
    public closeMultiScan_args deepCopy() {
      return new closeMultiScan_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      setScanIDIsSet(false);
      this.scanID = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public closeMultiScan_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    public long getScanID() {
      return this.scanID;
    }

    public closeMultiScan_args setScanID(long scanID) {
      this.scanID = scanID;
      setScanIDIsSet(true);
      return this;
    }

    public void unsetScanID() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    /** Returns true if field scanID is set (has been assigned a value) and false otherwise */
    public boolean isSetScanID() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCANID_ISSET_ID);
    }

    public void setScanIDIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCANID_ISSET_ID, value);
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case SCAN_ID:
        if (value == null) {
          unsetScanID();
        } else {
          setScanID((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case SCAN_ID:
        return getScanID();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case SCAN_ID:
        return isSetScanID();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof closeMultiScan_args)
        return this.equals((closeMultiScan_args)that);
      return false;
    }

    public boolean equals(closeMultiScan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_scanID = true;
      boolean that_present_scanID = true;
      if (this_present_scanID || that_present_scanID) {
        if (!(this_present_scanID && that_present_scanID))
          return false;
        if (this.scanID != that.scanID)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(scanID);

      return hashCode;
    }

    @Override
    public int compareTo(closeMultiScan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetScanID(), other.isSetScanID());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanID()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanID, other.scanID);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("closeMultiScan_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scanID:");
      sb.append(this.scanID);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class closeMultiScan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeMultiScan_argsStandardScheme getScheme() {
        return new closeMultiScan_argsStandardScheme();
      }
    }

    private static class closeMultiScan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<closeMultiScan_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, closeMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 2: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SCAN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.scanID = iprot.readI64();
                struct.setScanIDIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, closeMultiScan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(SCAN_ID_FIELD_DESC);
        oprot.writeI64(struct.scanID);
        oprot.writeFieldEnd();
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeMultiScan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeMultiScan_argsTupleScheme getScheme() {
        return new closeMultiScan_argsTupleScheme();
      }
    }

    private static class closeMultiScan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<closeMultiScan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetScanID()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetScanID()) {
          oprot.writeI64(struct.scanID);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeMultiScan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.scanID = iprot.readI64();
          struct.setScanIDIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class closeMultiScan_result implements org.apache.thrift.TBase<closeMultiScan_result, closeMultiScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<closeMultiScan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeMultiScan_result");

    private static final org.apache.thrift.protocol.TField NSSI_FIELD_DESC = new org.apache.thrift.protocol.TField("nssi", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new closeMultiScan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new closeMultiScan_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NSSI((short)1, "nssi");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NSSI
            return NSSI;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NSSI, new org.apache.thrift.meta_data.FieldMetaData("nssi", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchScanIDException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeMultiScan_result.class, metaDataMap);
    }

    public closeMultiScan_result() {
    }

    public closeMultiScan_result(
      NoSuchScanIDException nssi)
    {
      this();
      this.nssi = nssi;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public closeMultiScan_result(closeMultiScan_result other) {
      if (other.isSetNssi()) {
        this.nssi = new NoSuchScanIDException(other.nssi);
      }
    }

    @Override
    public closeMultiScan_result deepCopy() {
      return new closeMultiScan_result(this);
    }

    @Override
    public void clear() {
      this.nssi = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchScanIDException getNssi() {
      return this.nssi;
    }

    public closeMultiScan_result setNssi(@org.apache.thrift.annotation.Nullable NoSuchScanIDException nssi) {
      this.nssi = nssi;
      return this;
    }

    public void unsetNssi() {
      this.nssi = null;
    }

    /** Returns true if field nssi is set (has been assigned a value) and false otherwise */
    public boolean isSetNssi() {
      return this.nssi != null;
    }

    public void setNssiIsSet(boolean value) {
      if (!value) {
        this.nssi = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NSSI:
        if (value == null) {
          unsetNssi();
        } else {
          setNssi((NoSuchScanIDException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NSSI:
        return getNssi();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NSSI:
        return isSetNssi();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof closeMultiScan_result)
        return this.equals((closeMultiScan_result)that);
      return false;
    }

    public boolean equals(closeMultiScan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_nssi = true && this.isSetNssi();
      boolean that_present_nssi = true && that.isSetNssi();
      if (this_present_nssi || that_present_nssi) {
        if (!(this_present_nssi && that_present_nssi))
          return false;
        if (!this.nssi.equals(that.nssi))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetNssi()) ? 131071 : 524287);
      if (isSetNssi())
        hashCode = hashCode * 8191 + nssi.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(closeMultiScan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetNssi(), other.isSetNssi());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNssi()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nssi, other.nssi);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("closeMultiScan_result(");
      boolean first = true;

      sb.append("nssi:");
      if (this.nssi == null) {
        sb.append("null");
      } else {
        sb.append(this.nssi);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class closeMultiScan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeMultiScan_resultStandardScheme getScheme() {
        return new closeMultiScan_resultStandardScheme();
      }
    }

    private static class closeMultiScan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<closeMultiScan_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, closeMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NSSI
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.nssi = new NoSuchScanIDException();
                struct.nssi.read(iprot);
                struct.setNssiIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, closeMultiScan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.nssi != null) {
          oprot.writeFieldBegin(NSSI_FIELD_DESC);
          struct.nssi.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeMultiScan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public closeMultiScan_resultTupleScheme getScheme() {
        return new closeMultiScan_resultTupleScheme();
      }
    }

    private static class closeMultiScan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<closeMultiScan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetNssi()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetNssi()) {
          struct.nssi.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeMultiScan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.nssi = new NoSuchScanIDException();
          struct.nssi.read(iprot);
          struct.setNssiIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class getActiveScans_args implements org.apache.thrift.TBase<getActiveScans_args, getActiveScans_args._Fields>, java.io.Serializable, Cloneable, Comparable<getActiveScans_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActiveScans_args");

    private static final org.apache.thrift.protocol.TField TINFO_FIELD_DESC = new org.apache.thrift.protocol.TField("tinfo", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField CREDENTIALS_FIELD_DESC = new org.apache.thrift.protocol.TField("credentials", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getActiveScans_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getActiveScans_argsTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TINFO((short)2, "tinfo"),
      CREDENTIALS((short)1, "credentials");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 2: // TINFO
            return TINFO;
          case 1: // CREDENTIALS
            return CREDENTIALS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TINFO, new org.apache.thrift.meta_data.FieldMetaData("tinfo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.trace.thrift.TInfo.class)));
      tmpMap.put(_Fields.CREDENTIALS, new org.apache.thrift.meta_data.FieldMetaData("credentials", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.securityImpl.thrift.TCredentials.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveScans_args.class, metaDataMap);
    }

    public getActiveScans_args() {
    }

    public getActiveScans_args(
      org.apache.accumulo.core.trace.thrift.TInfo tinfo,
      org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials)
    {
      this();
      this.tinfo = tinfo;
      this.credentials = credentials;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getActiveScans_args(getActiveScans_args other) {
      if (other.isSetTinfo()) {
        this.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo(other.tinfo);
      }
      if (other.isSetCredentials()) {
        this.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials(other.credentials);
      }
    }

    @Override
    public getActiveScans_args deepCopy() {
      return new getActiveScans_args(this);
    }

    @Override
    public void clear() {
      this.tinfo = null;
      this.credentials = null;
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.trace.thrift.TInfo getTinfo() {
      return this.tinfo;
    }

    public getActiveScans_args setTinfo(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.trace.thrift.TInfo tinfo) {
      this.tinfo = tinfo;
      return this;
    }

    public void unsetTinfo() {
      this.tinfo = null;
    }

    /** Returns true if field tinfo is set (has been assigned a value) and false otherwise */
    public boolean isSetTinfo() {
      return this.tinfo != null;
    }

    public void setTinfoIsSet(boolean value) {
      if (!value) {
        this.tinfo = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.securityImpl.thrift.TCredentials getCredentials() {
      return this.credentials;
    }

    public getActiveScans_args setCredentials(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.securityImpl.thrift.TCredentials credentials) {
      this.credentials = credentials;
      return this;
    }

    public void unsetCredentials() {
      this.credentials = null;
    }

    /** Returns true if field credentials is set (has been assigned a value) and false otherwise */
    public boolean isSetCredentials() {
      return this.credentials != null;
    }

    public void setCredentialsIsSet(boolean value) {
      if (!value) {
        this.credentials = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TINFO:
        if (value == null) {
          unsetTinfo();
        } else {
          setTinfo((org.apache.accumulo.core.trace.thrift.TInfo)value);
        }
        break;

      case CREDENTIALS:
        if (value == null) {
          unsetCredentials();
        } else {
          setCredentials((org.apache.accumulo.core.securityImpl.thrift.TCredentials)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TINFO:
        return getTinfo();

      case CREDENTIALS:
        return getCredentials();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TINFO:
        return isSetTinfo();
      case CREDENTIALS:
        return isSetCredentials();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof getActiveScans_args)
        return this.equals((getActiveScans_args)that);
      return false;
    }

    public boolean equals(getActiveScans_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tinfo = true && this.isSetTinfo();
      boolean that_present_tinfo = true && that.isSetTinfo();
      if (this_present_tinfo || that_present_tinfo) {
        if (!(this_present_tinfo && that_present_tinfo))
          return false;
        if (!this.tinfo.equals(that.tinfo))
          return false;
      }

      boolean this_present_credentials = true && this.isSetCredentials();
      boolean that_present_credentials = true && that.isSetCredentials();
      if (this_present_credentials || that_present_credentials) {
        if (!(this_present_credentials && that_present_credentials))
          return false;
        if (!this.credentials.equals(that.credentials))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTinfo()) ? 131071 : 524287);
      if (isSetTinfo())
        hashCode = hashCode * 8191 + tinfo.hashCode();

      hashCode = hashCode * 8191 + ((isSetCredentials()) ? 131071 : 524287);
      if (isSetCredentials())
        hashCode = hashCode * 8191 + credentials.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(getActiveScans_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTinfo(), other.isSetTinfo());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTinfo()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tinfo, other.tinfo);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCredentials(), other.isSetCredentials());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCredentials()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentials, other.credentials);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    @Override
    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("getActiveScans_args(");
      boolean first = true;

      sb.append("tinfo:");
      if (this.tinfo == null) {
        sb.append("null");
      } else {
        sb.append(this.tinfo);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("credentials:");
      if (this.credentials == null) {
        sb.append("null");
      } else {
        sb.append(this.credentials);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tinfo != null) {
        tinfo.validate();
      }
      if (credentials != null) {
        credentials.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getActiveScans_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public getActiveScans_argsStandardScheme getScheme() {
        return new getActiveScans_argsStandardScheme();
      }
    }

    private static class getActiveScans_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getActiveScans_args> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, getActiveScans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 2: // TINFO
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
                struct.tinfo.read(iprot);
                struct.setTinfoIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // CREDENTIALS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
                struct.credentials.read(iprot);
                struct.setCredentialsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, getActiveScans_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.credentials != null) {
          oprot.writeFieldBegin(CREDENTIALS_FIELD_DESC);
          struct.credentials.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.tinfo != null) {
          oprot.writeFieldBegin(TINFO_FIELD_DESC);
          struct.tinfo.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveScans_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public getActiveScans_argsTupleScheme getScheme() {
        return new getActiveScans_argsTupleScheme();
      }
    }

    private static class getActiveScans_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getActiveScans_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveScans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTinfo()) {
          optionals.set(0);
        }
        if (struct.isSetCredentials()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetTinfo()) {
          struct.tinfo.write(oprot);
        }
        if (struct.isSetCredentials()) {
          struct.credentials.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveScans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
          struct.tinfo.read(iprot);
          struct.setTinfoIsSet(true);
        }
        if (incoming.get(1)) {
          struct.credentials = new org.apache.accumulo.core.securityImpl.thrift.TCredentials();
          struct.credentials.read(iprot);
          struct.setCredentialsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
  public static class getActiveScans_result implements org.apache.thrift.TBase<getActiveScans_result, getActiveScans_result._Fields>, java.io.Serializable, Cloneable, Comparable<getActiveScans_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActiveScans_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField SEC_FIELD_DESC = new org.apache.thrift.protocol.TField("sec", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getActiveScans_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getActiveScans_resultTupleSchemeFactory();

    public @org.apache.thrift.annotation.Nullable java.util.List<ActiveScan> success; // required
    public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      SEC((short)1, "sec");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SEC
            return SEC;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      @Override
      public short getThriftFieldId() {
        return _thriftId;
      }

      @Override
      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ActiveScan.class))));
      tmpMap.put(_Fields.SEC, new org.apache.thrift.meta_data.FieldMetaData("sec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveScans_result.class, metaDataMap);
    }

    public getActiveScans_result() {
    }

    public getActiveScans_result(
      java.util.List<ActiveScan> success,
      org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec)
    {
      this();
      this.success = success;
      this.sec = sec;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getActiveScans_result(getActiveScans_result other) {
      if (other.isSetSuccess()) {
        java.util.List<ActiveScan> __this__success = new java.util.ArrayList<ActiveScan>(other.success.size());
        for (ActiveScan other_element : other.success) {
          __this__success.add(new ActiveScan(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetSec()) {
        this.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException(other.sec);
      }
    }

    @Override
    public getActiveScans_result deepCopy() {
      return new getActiveScans_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.sec = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<ActiveScan> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ActiveScan elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<ActiveScan>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<ActiveScan> getSuccess() {
      return this.success;
    }

    public getActiveScans_result setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<ActiveScan> success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException getSec() {
      return this.sec;
    }

    public getActiveScans_result setSec(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException sec) {
      this.sec = sec;
      return this;
    }

    public void unsetSec() {
      this.sec = null;
    }

    /** Returns true if field sec is set (has been assigned a value) and false otherwise */
    public boolean isSetSec() {
      return this.sec != null;
    }

    public void setSecIsSet(boolean value) {
      if (!value) {
        this.sec = null;
      }
    }

    @Override
    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<ActiveScan>)value);
        }
        break;

      case SEC:
        if (value == null) {
          unsetSec();
        } else {
          setSec((org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SEC:
        return getSec();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    @Override
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case SEC:
        return isSetSec();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof getActiveScans_result)
        return this.equals((getActiveScans_result)that);
      return false;
    }

    public boolean equals(getActiveScans_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_sec = true && this.isSetSec();
      boolean that_present_sec = true && that.isSetSec();
      if (this_present_sec || that_present_sec) {
        if (!(this_present_sec && that_present_sec))
          return false;
        if (!this.sec.equals(that.sec))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetSec()) ? 131071 : 524287);
      if (isSetSec())
        hashCode = hashCode * 8191 + sec.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(getActiveScans_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSec(), other.isSetSec());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSec()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sec, other.sec);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    @Override
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("getActiveScans_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("sec:");
      if (this.sec == null) {
        sb.append("null");
      } else {
        sb.append(this.sec);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getActiveScans_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public getActiveScans_resultStandardScheme getScheme() {
        return new getActiveScans_resultStandardScheme();
      }
    }

    private static class getActiveScans_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getActiveScans_result> {

      @Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, getActiveScans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list260 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<ActiveScan>(_list260.size);
                  @org.apache.thrift.annotation.Nullable ActiveScan _elem261;
                  for (int _i262 = 0; _i262 < _list260.size; ++_i262)
                  {
                    _elem261 = new ActiveScan();
                    _elem261.read(iprot);
                    struct.success.add(_elem261);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // SEC
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
                struct.sec.read(iprot);
                struct.setSecIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      @Override
      public void write(org.apache.thrift.protocol.TProtocol oprot, getActiveScans_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (ActiveScan _iter263 : struct.success)
            {
              _iter263.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.sec != null) {
          oprot.writeFieldBegin(SEC_FIELD_DESC);
          struct.sec.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveScans_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      @Override
      public getActiveScans_resultTupleScheme getScheme() {
        return new getActiveScans_resultTupleScheme();
      }
    }

    private static class getActiveScans_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getActiveScans_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveScans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetSec()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (ActiveScan _iter264 : struct.success)
            {
              _iter264.write(oprot);
            }
          }
        }
        if (struct.isSetSec()) {
          struct.sec.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveScans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list265 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<ActiveScan>(_list265.size);
            @org.apache.thrift.annotation.Nullable ActiveScan _elem266;
            for (int _i267 = 0; _i267 < _list265.size; ++_i267)
            {
              _elem266 = new ActiveScan();
              _elem266.read(iprot);
              struct.success.add(_elem266);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException();
          struct.sec.read(iprot);
          struct.setSecIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  private static void unusedMethod() {}
}
