All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.accumulo.proxy.thrift.AccumuloProxy Maven / Gradle / Ivy

Go to download

A server for Apache Accumulo that proxies connections from any language supported by Apache Thrift.

There is a newer version: 2.0.0-alpha-2
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Autogenerated by Thrift Compiler (0.9.1)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.accumulo.proxy.thrift;

import org.apache.thrift.scheme.IScheme;
import org.apache.thrift.scheme.SchemeFactory;
import org.apache.thrift.scheme.StandardScheme;

import org.apache.thrift.scheme.TupleScheme;
import org.apache.thrift.protocol.TTupleProtocol;
import org.apache.thrift.protocol.TProtocolException;
import org.apache.thrift.EncodingUtils;
import org.apache.thrift.TException;
import org.apache.thrift.async.AsyncMethodCallback;
import org.apache.thrift.server.AbstractNonblockingServer.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

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

  public interface Iface {

    public ByteBuffer login(String principal, Map loginProperties) throws AccumuloSecurityException, org.apache.thrift.TException;

    public int addConstraint(ByteBuffer login, String tableName, String constraintClassName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void addSplits(ByteBuffer login, String tableName, Set splits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void attachIterator(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException;

    public void checkIteratorConflicts(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException;

    public void clearLocatorCache(ByteBuffer login, String tableName) throws TableNotFoundException, org.apache.thrift.TException;

    public void cloneTable(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException;

    public void compactTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy) throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException;

    public void cancelCompaction(ByteBuffer login, String tableName) throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException;

    public void createTable(ByteBuffer login, String tableName, boolean versioningIter, TimeType type) throws AccumuloException, AccumuloSecurityException, TableExistsException, org.apache.thrift.TException;

    public void deleteTable(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void deleteRows(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void exportTable(ByteBuffer login, String tableName, String exportDir) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void flushTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public List getDiskUsage(ByteBuffer login, Set tables) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Map> getLocalityGroups(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public IteratorSetting getIteratorSetting(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public ByteBuffer getMaxRow(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Map getTableProperties(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void importDirectory(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime) throws TableNotFoundException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void importTable(ByteBuffer login, String tableName, String importDir) throws TableExistsException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public List listSplits(ByteBuffer login, String tableName, int maxSplits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Set listTables(ByteBuffer login) throws org.apache.thrift.TException;

    public Map> listIterators(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Map listConstraints(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void mergeTablets(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void offlineTable(ByteBuffer login, String tableName, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void onlineTable(ByteBuffer login, String tableName, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void removeConstraint(ByteBuffer login, String tableName, int constraint) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void removeIterator(ByteBuffer login, String tableName, String iterName, Set scopes) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void removeTableProperty(ByteBuffer login, String tableName, String property) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void renameTable(ByteBuffer login, String oldTableName, String newTableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException;

    public void setLocalityGroups(ByteBuffer login, String tableName, Map> groups) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void setTableProperty(ByteBuffer login, String tableName, String property, String value) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Set splitRangeByTablets(ByteBuffer login, String tableName, Range range, int maxSplits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public boolean tableExists(ByteBuffer login, String tableName) throws org.apache.thrift.TException;

    public Map tableIdMap(ByteBuffer login) throws org.apache.thrift.TException;

    public boolean testTableClassLoad(ByteBuffer login, String tableName, String className, String asTypeName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void pingTabletServer(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public List getActiveScans(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public List getActiveCompactions(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public Map getSiteConfiguration(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public Map getSystemConfiguration(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public List getTabletServers(ByteBuffer login) throws org.apache.thrift.TException;

    public void removeProperty(ByteBuffer login, String property) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void setProperty(ByteBuffer login, String property, String value) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public boolean testClassLoad(ByteBuffer login, String className, String asTypeName) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public boolean authenticateUser(ByteBuffer login, String user, Map properties) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void changeUserAuthorizations(ByteBuffer login, String user, Set authorizations) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void dropLocalUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public List getUserAuthorizations(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void grantSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void grantTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public boolean hasSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public boolean hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Set listLocalUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void revokeTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public String createBatchScanner(ByteBuffer login, String tableName, BatchScanOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public String createScanner(ByteBuffer login, String tableName, ScanOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public boolean hasNext(String scanner) throws UnknownScanner, org.apache.thrift.TException;

    public KeyValueAndPeek nextEntry(String scanner) throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException;

    public ScanResult nextK(String scanner, int k) throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException;

    public void closeScanner(String scanner) throws UnknownScanner, org.apache.thrift.TException;

    public void updateAndFlush(ByteBuffer login, String tableName, Map> cells) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, MutationsRejectedException, org.apache.thrift.TException;

    public String createWriter(ByteBuffer login, String tableName, WriterOptions opts) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public void update(String writer, Map> cells) throws org.apache.thrift.TException;

    public void flush(String writer) throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException;

    public void closeWriter(String writer) throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException;

    public ConditionalStatus updateRowConditionally(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public String createConditionalWriter(ByteBuffer login, String tableName, ConditionalWriterOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;

    public Map updateRowsConditionally(String conditionalWriter, Map updates) throws UnknownWriter, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;

    public void closeConditionalWriter(String conditionalWriter) throws org.apache.thrift.TException;

    public Range getRowRange(ByteBuffer row) throws org.apache.thrift.TException;

    public Key getFollowing(Key key, PartialKey part) throws org.apache.thrift.TException;

  }

  public interface AsyncIface {

    public void login(String principal, Map loginProperties, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void addConstraint(ByteBuffer login, String tableName, String constraintClassName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void addSplits(ByteBuffer login, String tableName, Set splits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void attachIterator(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void checkIteratorConflicts(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void clearLocatorCache(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void cloneTable(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void compactTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void cancelCompaction(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createTable(ByteBuffer login, String tableName, boolean versioningIter, TimeType type, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void deleteTable(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void deleteRows(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void exportTable(ByteBuffer login, String tableName, String exportDir, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void flushTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getDiskUsage(ByteBuffer login, Set tables, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getLocalityGroups(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getIteratorSetting(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getMaxRow(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getTableProperties(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void importDirectory(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void importTable(ByteBuffer login, String tableName, String importDir, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void listSplits(ByteBuffer login, String tableName, int maxSplits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void listTables(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void listIterators(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void listConstraints(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void mergeTablets(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void offlineTable(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void onlineTable(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void removeConstraint(ByteBuffer login, String tableName, int constraint, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void removeIterator(ByteBuffer login, String tableName, String iterName, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void removeTableProperty(ByteBuffer login, String tableName, String property, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void renameTable(ByteBuffer login, String oldTableName, String newTableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void setLocalityGroups(ByteBuffer login, String tableName, Map> groups, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void setTableProperty(ByteBuffer login, String tableName, String property, String value, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void splitRangeByTablets(ByteBuffer login, String tableName, Range range, int maxSplits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void tableExists(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void tableIdMap(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void testTableClassLoad(ByteBuffer login, String tableName, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void pingTabletServer(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getActiveScans(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getActiveCompactions(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getSiteConfiguration(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getSystemConfiguration(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getTabletServers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void removeProperty(ByteBuffer login, String property, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void setProperty(ByteBuffer login, String property, String value, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void testClassLoad(ByteBuffer login, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void authenticateUser(ByteBuffer login, String user, Map properties, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void changeUserAuthorizations(ByteBuffer login, String user, Set authorizations, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void dropLocalUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getUserAuthorizations(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void grantSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void grantTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void hasSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void listLocalUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void revokeTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createBatchScanner(ByteBuffer login, String tableName, BatchScanOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createScanner(ByteBuffer login, String tableName, ScanOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void hasNext(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void nextEntry(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void nextK(String scanner, int k, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void closeScanner(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void updateAndFlush(ByteBuffer login, String tableName, Map> cells, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createWriter(ByteBuffer login, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void update(String writer, Map> cells, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void flush(String writer, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void closeWriter(String writer, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void updateRowConditionally(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void createConditionalWriter(ByteBuffer login, String tableName, ConditionalWriterOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void updateRowsConditionally(String conditionalWriter, Map updates, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void closeConditionalWriter(String conditionalWriter, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getRowRange(ByteBuffer row, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getFollowing(Key key, PartialKey part, org.apache.thrift.async.AsyncMethodCallback 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 {
      public Factory() {}
      public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
        return new Client(prot);
      }
      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);
    }

    public ByteBuffer login(String principal, Map loginProperties) throws AccumuloSecurityException, org.apache.thrift.TException
    {
      send_login(principal, loginProperties);
      return recv_login();
    }

    public void send_login(String principal, Map loginProperties) throws org.apache.thrift.TException
    {
      login_args args = new login_args();
      args.setPrincipal(principal);
      args.setLoginProperties(loginProperties);
      sendBase("login", args);
    }

    public ByteBuffer recv_login() throws AccumuloSecurityException, org.apache.thrift.TException
    {
      login_result result = new login_result();
      receiveBase(result, "login");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "login failed: unknown result");
    }

    public int addConstraint(ByteBuffer login, String tableName, String constraintClassName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_addConstraint(login, tableName, constraintClassName);
      return recv_addConstraint();
    }

    public void send_addConstraint(ByteBuffer login, String tableName, String constraintClassName) throws org.apache.thrift.TException
    {
      addConstraint_args args = new addConstraint_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setConstraintClassName(constraintClassName);
      sendBase("addConstraint", args);
    }

    public int recv_addConstraint() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      addConstraint_result result = new addConstraint_result();
      receiveBase(result, "addConstraint");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addConstraint failed: unknown result");
    }

    public void addSplits(ByteBuffer login, String tableName, Set splits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_addSplits(login, tableName, splits);
      recv_addSplits();
    }

    public void send_addSplits(ByteBuffer login, String tableName, Set splits) throws org.apache.thrift.TException
    {
      addSplits_args args = new addSplits_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setSplits(splits);
      sendBase("addSplits", args);
    }

    public void recv_addSplits() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      addSplits_result result = new addSplits_result();
      receiveBase(result, "addSplits");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void attachIterator(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException
    {
      send_attachIterator(login, tableName, setting, scopes);
      recv_attachIterator();
    }

    public void send_attachIterator(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws org.apache.thrift.TException
    {
      attachIterator_args args = new attachIterator_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setSetting(setting);
      args.setScopes(scopes);
      sendBase("attachIterator", args);
    }

    public void recv_attachIterator() throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException
    {
      attachIterator_result result = new attachIterator_result();
      receiveBase(result, "attachIterator");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void checkIteratorConflicts(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException
    {
      send_checkIteratorConflicts(login, tableName, setting, scopes);
      recv_checkIteratorConflicts();
    }

    public void send_checkIteratorConflicts(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes) throws org.apache.thrift.TException
    {
      checkIteratorConflicts_args args = new checkIteratorConflicts_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setSetting(setting);
      args.setScopes(scopes);
      sendBase("checkIteratorConflicts", args);
    }

    public void recv_checkIteratorConflicts() throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException
    {
      checkIteratorConflicts_result result = new checkIteratorConflicts_result();
      receiveBase(result, "checkIteratorConflicts");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void clearLocatorCache(ByteBuffer login, String tableName) throws TableNotFoundException, org.apache.thrift.TException
    {
      send_clearLocatorCache(login, tableName);
      recv_clearLocatorCache();
    }

    public void send_clearLocatorCache(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      clearLocatorCache_args args = new clearLocatorCache_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("clearLocatorCache", args);
    }

    public void recv_clearLocatorCache() throws TableNotFoundException, org.apache.thrift.TException
    {
      clearLocatorCache_result result = new clearLocatorCache_result();
      receiveBase(result, "clearLocatorCache");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      return;
    }

    public void cloneTable(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException
    {
      send_cloneTable(login, tableName, newTableName, flush, propertiesToSet, propertiesToExclude);
      recv_cloneTable();
    }

    public void send_cloneTable(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude) throws org.apache.thrift.TException
    {
      cloneTable_args args = new cloneTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setNewTableName(newTableName);
      args.setFlush(flush);
      args.setPropertiesToSet(propertiesToSet);
      args.setPropertiesToExclude(propertiesToExclude);
      sendBase("cloneTable", args);
    }

    public void recv_cloneTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException
    {
      cloneTable_result result = new cloneTable_result();
      receiveBase(result, "cloneTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      if (result.ouch4 != null) {
        throw result.ouch4;
      }
      return;
    }

    public void compactTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy) throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException
    {
      send_compactTable(login, tableName, startRow, endRow, iterators, flush, wait, compactionStrategy);
      recv_compactTable();
    }

    public void send_compactTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy) throws org.apache.thrift.TException
    {
      compactTable_args args = new compactTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setStartRow(startRow);
      args.setEndRow(endRow);
      args.setIterators(iterators);
      args.setFlush(flush);
      args.setWait(wait);
      args.setCompactionStrategy(compactionStrategy);
      sendBase("compactTable", args);
    }

    public void recv_compactTable() throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException
    {
      compactTable_result result = new compactTable_result();
      receiveBase(result, "compactTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void cancelCompaction(ByteBuffer login, String tableName) throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException
    {
      send_cancelCompaction(login, tableName);
      recv_cancelCompaction();
    }

    public void send_cancelCompaction(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      cancelCompaction_args args = new cancelCompaction_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("cancelCompaction", args);
    }

    public void recv_cancelCompaction() throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException
    {
      cancelCompaction_result result = new cancelCompaction_result();
      receiveBase(result, "cancelCompaction");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void createTable(ByteBuffer login, String tableName, boolean versioningIter, TimeType type) throws AccumuloException, AccumuloSecurityException, TableExistsException, org.apache.thrift.TException
    {
      send_createTable(login, tableName, versioningIter, type);
      recv_createTable();
    }

    public void send_createTable(ByteBuffer login, String tableName, boolean versioningIter, TimeType type) throws org.apache.thrift.TException
    {
      createTable_args args = new createTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setVersioningIter(versioningIter);
      args.setType(type);
      sendBase("createTable", args);
    }

    public void recv_createTable() throws AccumuloException, AccumuloSecurityException, TableExistsException, org.apache.thrift.TException
    {
      createTable_result result = new createTable_result();
      receiveBase(result, "createTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void deleteTable(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_deleteTable(login, tableName);
      recv_deleteTable();
    }

    public void send_deleteTable(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      deleteTable_args args = new deleteTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("deleteTable", args);
    }

    public void recv_deleteTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      deleteTable_result result = new deleteTable_result();
      receiveBase(result, "deleteTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void deleteRows(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_deleteRows(login, tableName, startRow, endRow);
      recv_deleteRows();
    }

    public void send_deleteRows(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws org.apache.thrift.TException
    {
      deleteRows_args args = new deleteRows_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setStartRow(startRow);
      args.setEndRow(endRow);
      sendBase("deleteRows", args);
    }

    public void recv_deleteRows() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      deleteRows_result result = new deleteRows_result();
      receiveBase(result, "deleteRows");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void exportTable(ByteBuffer login, String tableName, String exportDir) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_exportTable(login, tableName, exportDir);
      recv_exportTable();
    }

    public void send_exportTable(ByteBuffer login, String tableName, String exportDir) throws org.apache.thrift.TException
    {
      exportTable_args args = new exportTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setExportDir(exportDir);
      sendBase("exportTable", args);
    }

    public void recv_exportTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      exportTable_result result = new exportTable_result();
      receiveBase(result, "exportTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void flushTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_flushTable(login, tableName, startRow, endRow, wait);
      recv_flushTable();
    }

    public void send_flushTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait) throws org.apache.thrift.TException
    {
      flushTable_args args = new flushTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setStartRow(startRow);
      args.setEndRow(endRow);
      args.setWait(wait);
      sendBase("flushTable", args);
    }

    public void recv_flushTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      flushTable_result result = new flushTable_result();
      receiveBase(result, "flushTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public List getDiskUsage(ByteBuffer login, Set tables) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_getDiskUsage(login, tables);
      return recv_getDiskUsage();
    }

    public void send_getDiskUsage(ByteBuffer login, Set tables) throws org.apache.thrift.TException
    {
      getDiskUsage_args args = new getDiskUsage_args();
      args.setLogin(login);
      args.setTables(tables);
      sendBase("getDiskUsage", args);
    }

    public List recv_getDiskUsage() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      getDiskUsage_result result = new getDiskUsage_result();
      receiveBase(result, "getDiskUsage");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getDiskUsage failed: unknown result");
    }

    public Map> getLocalityGroups(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_getLocalityGroups(login, tableName);
      return recv_getLocalityGroups();
    }

    public void send_getLocalityGroups(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      getLocalityGroups_args args = new getLocalityGroups_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("getLocalityGroups", args);
    }

    public Map> recv_getLocalityGroups() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      getLocalityGroups_result result = new getLocalityGroups_result();
      receiveBase(result, "getLocalityGroups");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLocalityGroups failed: unknown result");
    }

    public IteratorSetting getIteratorSetting(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_getIteratorSetting(login, tableName, iteratorName, scope);
      return recv_getIteratorSetting();
    }

    public void send_getIteratorSetting(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope) throws org.apache.thrift.TException
    {
      getIteratorSetting_args args = new getIteratorSetting_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setIteratorName(iteratorName);
      args.setScope(scope);
      sendBase("getIteratorSetting", args);
    }

    public IteratorSetting recv_getIteratorSetting() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      getIteratorSetting_result result = new getIteratorSetting_result();
      receiveBase(result, "getIteratorSetting");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getIteratorSetting failed: unknown result");
    }

    public ByteBuffer getMaxRow(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_getMaxRow(login, tableName, auths, startRow, startInclusive, endRow, endInclusive);
      return recv_getMaxRow();
    }

    public void send_getMaxRow(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive) throws org.apache.thrift.TException
    {
      getMaxRow_args args = new getMaxRow_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setAuths(auths);
      args.setStartRow(startRow);
      args.setStartInclusive(startInclusive);
      args.setEndRow(endRow);
      args.setEndInclusive(endInclusive);
      sendBase("getMaxRow", args);
    }

    public ByteBuffer recv_getMaxRow() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      getMaxRow_result result = new getMaxRow_result();
      receiveBase(result, "getMaxRow");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getMaxRow failed: unknown result");
    }

    public Map getTableProperties(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_getTableProperties(login, tableName);
      return recv_getTableProperties();
    }

    public void send_getTableProperties(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      getTableProperties_args args = new getTableProperties_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("getTableProperties", args);
    }

    public Map recv_getTableProperties() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      getTableProperties_result result = new getTableProperties_result();
      receiveBase(result, "getTableProperties");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTableProperties failed: unknown result");
    }

    public void importDirectory(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime) throws TableNotFoundException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_importDirectory(login, tableName, importDir, failureDir, setTime);
      recv_importDirectory();
    }

    public void send_importDirectory(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime) throws org.apache.thrift.TException
    {
      importDirectory_args args = new importDirectory_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setImportDir(importDir);
      args.setFailureDir(failureDir);
      args.setSetTime(setTime);
      sendBase("importDirectory", args);
    }

    public void recv_importDirectory() throws TableNotFoundException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      importDirectory_result result = new importDirectory_result();
      receiveBase(result, "importDirectory");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      if (result.ouch4 != null) {
        throw result.ouch4;
      }
      return;
    }

    public void importTable(ByteBuffer login, String tableName, String importDir) throws TableExistsException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_importTable(login, tableName, importDir);
      recv_importTable();
    }

    public void send_importTable(ByteBuffer login, String tableName, String importDir) throws org.apache.thrift.TException
    {
      importTable_args args = new importTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setImportDir(importDir);
      sendBase("importTable", args);
    }

    public void recv_importTable() throws TableExistsException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      importTable_result result = new importTable_result();
      receiveBase(result, "importTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public List listSplits(ByteBuffer login, String tableName, int maxSplits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_listSplits(login, tableName, maxSplits);
      return recv_listSplits();
    }

    public void send_listSplits(ByteBuffer login, String tableName, int maxSplits) throws org.apache.thrift.TException
    {
      listSplits_args args = new listSplits_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setMaxSplits(maxSplits);
      sendBase("listSplits", args);
    }

    public List recv_listSplits() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      listSplits_result result = new listSplits_result();
      receiveBase(result, "listSplits");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listSplits failed: unknown result");
    }

    public Set listTables(ByteBuffer login) throws org.apache.thrift.TException
    {
      send_listTables(login);
      return recv_listTables();
    }

    public void send_listTables(ByteBuffer login) throws org.apache.thrift.TException
    {
      listTables_args args = new listTables_args();
      args.setLogin(login);
      sendBase("listTables", args);
    }

    public Set recv_listTables() throws org.apache.thrift.TException
    {
      listTables_result result = new listTables_result();
      receiveBase(result, "listTables");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listTables failed: unknown result");
    }

    public Map> listIterators(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_listIterators(login, tableName);
      return recv_listIterators();
    }

    public void send_listIterators(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      listIterators_args args = new listIterators_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("listIterators", args);
    }

    public Map> recv_listIterators() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      listIterators_result result = new listIterators_result();
      receiveBase(result, "listIterators");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listIterators failed: unknown result");
    }

    public Map listConstraints(ByteBuffer login, String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_listConstraints(login, tableName);
      return recv_listConstraints();
    }

    public void send_listConstraints(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      listConstraints_args args = new listConstraints_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("listConstraints", args);
    }

    public Map recv_listConstraints() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      listConstraints_result result = new listConstraints_result();
      receiveBase(result, "listConstraints");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listConstraints failed: unknown result");
    }

    public void mergeTablets(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_mergeTablets(login, tableName, startRow, endRow);
      recv_mergeTablets();
    }

    public void send_mergeTablets(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow) throws org.apache.thrift.TException
    {
      mergeTablets_args args = new mergeTablets_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setStartRow(startRow);
      args.setEndRow(endRow);
      sendBase("mergeTablets", args);
    }

    public void recv_mergeTablets() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      mergeTablets_result result = new mergeTablets_result();
      receiveBase(result, "mergeTablets");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void offlineTable(ByteBuffer login, String tableName, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_offlineTable(login, tableName, wait);
      recv_offlineTable();
    }

    public void send_offlineTable(ByteBuffer login, String tableName, boolean wait) throws org.apache.thrift.TException
    {
      offlineTable_args args = new offlineTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setWait(wait);
      sendBase("offlineTable", args);
    }

    public void recv_offlineTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      offlineTable_result result = new offlineTable_result();
      receiveBase(result, "offlineTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void onlineTable(ByteBuffer login, String tableName, boolean wait) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_onlineTable(login, tableName, wait);
      recv_onlineTable();
    }

    public void send_onlineTable(ByteBuffer login, String tableName, boolean wait) throws org.apache.thrift.TException
    {
      onlineTable_args args = new onlineTable_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setWait(wait);
      sendBase("onlineTable", args);
    }

    public void recv_onlineTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      onlineTable_result result = new onlineTable_result();
      receiveBase(result, "onlineTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void removeConstraint(ByteBuffer login, String tableName, int constraint) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_removeConstraint(login, tableName, constraint);
      recv_removeConstraint();
    }

    public void send_removeConstraint(ByteBuffer login, String tableName, int constraint) throws org.apache.thrift.TException
    {
      removeConstraint_args args = new removeConstraint_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setConstraint(constraint);
      sendBase("removeConstraint", args);
    }

    public void recv_removeConstraint() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      removeConstraint_result result = new removeConstraint_result();
      receiveBase(result, "removeConstraint");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void removeIterator(ByteBuffer login, String tableName, String iterName, Set scopes) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_removeIterator(login, tableName, iterName, scopes);
      recv_removeIterator();
    }

    public void send_removeIterator(ByteBuffer login, String tableName, String iterName, Set scopes) throws org.apache.thrift.TException
    {
      removeIterator_args args = new removeIterator_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setIterName(iterName);
      args.setScopes(scopes);
      sendBase("removeIterator", args);
    }

    public void recv_removeIterator() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      removeIterator_result result = new removeIterator_result();
      receiveBase(result, "removeIterator");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void removeTableProperty(ByteBuffer login, String tableName, String property) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_removeTableProperty(login, tableName, property);
      recv_removeTableProperty();
    }

    public void send_removeTableProperty(ByteBuffer login, String tableName, String property) throws org.apache.thrift.TException
    {
      removeTableProperty_args args = new removeTableProperty_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setProperty(property);
      sendBase("removeTableProperty", args);
    }

    public void recv_removeTableProperty() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      removeTableProperty_result result = new removeTableProperty_result();
      receiveBase(result, "removeTableProperty");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void renameTable(ByteBuffer login, String oldTableName, String newTableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException
    {
      send_renameTable(login, oldTableName, newTableName);
      recv_renameTable();
    }

    public void send_renameTable(ByteBuffer login, String oldTableName, String newTableName) throws org.apache.thrift.TException
    {
      renameTable_args args = new renameTable_args();
      args.setLogin(login);
      args.setOldTableName(oldTableName);
      args.setNewTableName(newTableName);
      sendBase("renameTable", args);
    }

    public void recv_renameTable() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException
    {
      renameTable_result result = new renameTable_result();
      receiveBase(result, "renameTable");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      if (result.ouch4 != null) {
        throw result.ouch4;
      }
      return;
    }

    public void setLocalityGroups(ByteBuffer login, String tableName, Map> groups) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_setLocalityGroups(login, tableName, groups);
      recv_setLocalityGroups();
    }

    public void send_setLocalityGroups(ByteBuffer login, String tableName, Map> groups) throws org.apache.thrift.TException
    {
      setLocalityGroups_args args = new setLocalityGroups_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setGroups(groups);
      sendBase("setLocalityGroups", args);
    }

    public void recv_setLocalityGroups() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      setLocalityGroups_result result = new setLocalityGroups_result();
      receiveBase(result, "setLocalityGroups");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public void setTableProperty(ByteBuffer login, String tableName, String property, String value) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_setTableProperty(login, tableName, property, value);
      recv_setTableProperty();
    }

    public void send_setTableProperty(ByteBuffer login, String tableName, String property, String value) throws org.apache.thrift.TException
    {
      setTableProperty_args args = new setTableProperty_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setProperty(property);
      args.setValue(value);
      sendBase("setTableProperty", args);
    }

    public void recv_setTableProperty() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      setTableProperty_result result = new setTableProperty_result();
      receiveBase(result, "setTableProperty");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public Set splitRangeByTablets(ByteBuffer login, String tableName, Range range, int maxSplits) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_splitRangeByTablets(login, tableName, range, maxSplits);
      return recv_splitRangeByTablets();
    }

    public void send_splitRangeByTablets(ByteBuffer login, String tableName, Range range, int maxSplits) throws org.apache.thrift.TException
    {
      splitRangeByTablets_args args = new splitRangeByTablets_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setRange(range);
      args.setMaxSplits(maxSplits);
      sendBase("splitRangeByTablets", args);
    }

    public Set recv_splitRangeByTablets() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      splitRangeByTablets_result result = new splitRangeByTablets_result();
      receiveBase(result, "splitRangeByTablets");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "splitRangeByTablets failed: unknown result");
    }

    public boolean tableExists(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      send_tableExists(login, tableName);
      return recv_tableExists();
    }

    public void send_tableExists(ByteBuffer login, String tableName) throws org.apache.thrift.TException
    {
      tableExists_args args = new tableExists_args();
      args.setLogin(login);
      args.setTableName(tableName);
      sendBase("tableExists", args);
    }

    public boolean recv_tableExists() throws org.apache.thrift.TException
    {
      tableExists_result result = new tableExists_result();
      receiveBase(result, "tableExists");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "tableExists failed: unknown result");
    }

    public Map tableIdMap(ByteBuffer login) throws org.apache.thrift.TException
    {
      send_tableIdMap(login);
      return recv_tableIdMap();
    }

    public void send_tableIdMap(ByteBuffer login) throws org.apache.thrift.TException
    {
      tableIdMap_args args = new tableIdMap_args();
      args.setLogin(login);
      sendBase("tableIdMap", args);
    }

    public Map recv_tableIdMap() throws org.apache.thrift.TException
    {
      tableIdMap_result result = new tableIdMap_result();
      receiveBase(result, "tableIdMap");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "tableIdMap failed: unknown result");
    }

    public boolean testTableClassLoad(ByteBuffer login, String tableName, String className, String asTypeName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_testTableClassLoad(login, tableName, className, asTypeName);
      return recv_testTableClassLoad();
    }

    public void send_testTableClassLoad(ByteBuffer login, String tableName, String className, String asTypeName) throws org.apache.thrift.TException
    {
      testTableClassLoad_args args = new testTableClassLoad_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setClassName(className);
      args.setAsTypeName(asTypeName);
      sendBase("testTableClassLoad", args);
    }

    public boolean recv_testTableClassLoad() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      testTableClassLoad_result result = new testTableClassLoad_result();
      receiveBase(result, "testTableClassLoad");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "testTableClassLoad failed: unknown result");
    }

    public void pingTabletServer(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_pingTabletServer(login, tserver);
      recv_pingTabletServer();
    }

    public void send_pingTabletServer(ByteBuffer login, String tserver) throws org.apache.thrift.TException
    {
      pingTabletServer_args args = new pingTabletServer_args();
      args.setLogin(login);
      args.setTserver(tserver);
      sendBase("pingTabletServer", args);
    }

    public void recv_pingTabletServer() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      pingTabletServer_result result = new pingTabletServer_result();
      receiveBase(result, "pingTabletServer");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public List getActiveScans(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_getActiveScans(login, tserver);
      return recv_getActiveScans();
    }

    public void send_getActiveScans(ByteBuffer login, String tserver) throws org.apache.thrift.TException
    {
      getActiveScans_args args = new getActiveScans_args();
      args.setLogin(login);
      args.setTserver(tserver);
      sendBase("getActiveScans", args);
    }

    public List recv_getActiveScans() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      getActiveScans_result result = new getActiveScans_result();
      receiveBase(result, "getActiveScans");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getActiveScans failed: unknown result");
    }

    public List getActiveCompactions(ByteBuffer login, String tserver) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_getActiveCompactions(login, tserver);
      return recv_getActiveCompactions();
    }

    public void send_getActiveCompactions(ByteBuffer login, String tserver) throws org.apache.thrift.TException
    {
      getActiveCompactions_args args = new getActiveCompactions_args();
      args.setLogin(login);
      args.setTserver(tserver);
      sendBase("getActiveCompactions", args);
    }

    public List recv_getActiveCompactions() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      getActiveCompactions_result result = new getActiveCompactions_result();
      receiveBase(result, "getActiveCompactions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getActiveCompactions failed: unknown result");
    }

    public Map getSiteConfiguration(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_getSiteConfiguration(login);
      return recv_getSiteConfiguration();
    }

    public void send_getSiteConfiguration(ByteBuffer login) throws org.apache.thrift.TException
    {
      getSiteConfiguration_args args = new getSiteConfiguration_args();
      args.setLogin(login);
      sendBase("getSiteConfiguration", args);
    }

    public Map recv_getSiteConfiguration() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      getSiteConfiguration_result result = new getSiteConfiguration_result();
      receiveBase(result, "getSiteConfiguration");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getSiteConfiguration failed: unknown result");
    }

    public Map getSystemConfiguration(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_getSystemConfiguration(login);
      return recv_getSystemConfiguration();
    }

    public void send_getSystemConfiguration(ByteBuffer login) throws org.apache.thrift.TException
    {
      getSystemConfiguration_args args = new getSystemConfiguration_args();
      args.setLogin(login);
      sendBase("getSystemConfiguration", args);
    }

    public Map recv_getSystemConfiguration() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      getSystemConfiguration_result result = new getSystemConfiguration_result();
      receiveBase(result, "getSystemConfiguration");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getSystemConfiguration failed: unknown result");
    }

    public List getTabletServers(ByteBuffer login) throws org.apache.thrift.TException
    {
      send_getTabletServers(login);
      return recv_getTabletServers();
    }

    public void send_getTabletServers(ByteBuffer login) throws org.apache.thrift.TException
    {
      getTabletServers_args args = new getTabletServers_args();
      args.setLogin(login);
      sendBase("getTabletServers", args);
    }

    public List recv_getTabletServers() throws org.apache.thrift.TException
    {
      getTabletServers_result result = new getTabletServers_result();
      receiveBase(result, "getTabletServers");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTabletServers failed: unknown result");
    }

    public void removeProperty(ByteBuffer login, String property) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_removeProperty(login, property);
      recv_removeProperty();
    }

    public void send_removeProperty(ByteBuffer login, String property) throws org.apache.thrift.TException
    {
      removeProperty_args args = new removeProperty_args();
      args.setLogin(login);
      args.setProperty(property);
      sendBase("removeProperty", args);
    }

    public void recv_removeProperty() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      removeProperty_result result = new removeProperty_result();
      receiveBase(result, "removeProperty");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void setProperty(ByteBuffer login, String property, String value) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_setProperty(login, property, value);
      recv_setProperty();
    }

    public void send_setProperty(ByteBuffer login, String property, String value) throws org.apache.thrift.TException
    {
      setProperty_args args = new setProperty_args();
      args.setLogin(login);
      args.setProperty(property);
      args.setValue(value);
      sendBase("setProperty", args);
    }

    public void recv_setProperty() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      setProperty_result result = new setProperty_result();
      receiveBase(result, "setProperty");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public boolean testClassLoad(ByteBuffer login, String className, String asTypeName) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_testClassLoad(login, className, asTypeName);
      return recv_testClassLoad();
    }

    public void send_testClassLoad(ByteBuffer login, String className, String asTypeName) throws org.apache.thrift.TException
    {
      testClassLoad_args args = new testClassLoad_args();
      args.setLogin(login);
      args.setClassName(className);
      args.setAsTypeName(asTypeName);
      sendBase("testClassLoad", args);
    }

    public boolean recv_testClassLoad() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      testClassLoad_result result = new testClassLoad_result();
      receiveBase(result, "testClassLoad");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "testClassLoad failed: unknown result");
    }

    public boolean authenticateUser(ByteBuffer login, String user, Map properties) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_authenticateUser(login, user, properties);
      return recv_authenticateUser();
    }

    public void send_authenticateUser(ByteBuffer login, String user, Map properties) throws org.apache.thrift.TException
    {
      authenticateUser_args args = new authenticateUser_args();
      args.setLogin(login);
      args.setUser(user);
      args.setProperties(properties);
      sendBase("authenticateUser", args);
    }

    public boolean recv_authenticateUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      authenticateUser_result result = new authenticateUser_result();
      receiveBase(result, "authenticateUser");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "authenticateUser failed: unknown result");
    }

    public void changeUserAuthorizations(ByteBuffer login, String user, Set authorizations) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_changeUserAuthorizations(login, user, authorizations);
      recv_changeUserAuthorizations();
    }

    public void send_changeUserAuthorizations(ByteBuffer login, String user, Set authorizations) throws org.apache.thrift.TException
    {
      changeUserAuthorizations_args args = new changeUserAuthorizations_args();
      args.setLogin(login);
      args.setUser(user);
      args.setAuthorizations(authorizations);
      sendBase("changeUserAuthorizations", args);
    }

    public void recv_changeUserAuthorizations() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      changeUserAuthorizations_result result = new changeUserAuthorizations_result();
      receiveBase(result, "changeUserAuthorizations");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_changeLocalUserPassword(login, user, password);
      recv_changeLocalUserPassword();
    }

    public void send_changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
    {
      changeLocalUserPassword_args args = new changeLocalUserPassword_args();
      args.setLogin(login);
      args.setUser(user);
      args.setPassword(password);
      sendBase("changeLocalUserPassword", args);
    }

    public void recv_changeLocalUserPassword() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      changeLocalUserPassword_result result = new changeLocalUserPassword_result();
      receiveBase(result, "changeLocalUserPassword");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_createLocalUser(login, user, password);
      recv_createLocalUser();
    }

    public void send_createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
    {
      createLocalUser_args args = new createLocalUser_args();
      args.setLogin(login);
      args.setUser(user);
      args.setPassword(password);
      sendBase("createLocalUser", args);
    }

    public void recv_createLocalUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      createLocalUser_result result = new createLocalUser_result();
      receiveBase(result, "createLocalUser");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void dropLocalUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_dropLocalUser(login, user);
      recv_dropLocalUser();
    }

    public void send_dropLocalUser(ByteBuffer login, String user) throws org.apache.thrift.TException
    {
      dropLocalUser_args args = new dropLocalUser_args();
      args.setLogin(login);
      args.setUser(user);
      sendBase("dropLocalUser", args);
    }

    public void recv_dropLocalUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      dropLocalUser_result result = new dropLocalUser_result();
      receiveBase(result, "dropLocalUser");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public List getUserAuthorizations(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_getUserAuthorizations(login, user);
      return recv_getUserAuthorizations();
    }

    public void send_getUserAuthorizations(ByteBuffer login, String user) throws org.apache.thrift.TException
    {
      getUserAuthorizations_args args = new getUserAuthorizations_args();
      args.setLogin(login);
      args.setUser(user);
      sendBase("getUserAuthorizations", args);
    }

    public List recv_getUserAuthorizations() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      getUserAuthorizations_result result = new getUserAuthorizations_result();
      receiveBase(result, "getUserAuthorizations");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserAuthorizations failed: unknown result");
    }

    public void grantSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_grantSystemPermission(login, user, perm);
      recv_grantSystemPermission();
    }

    public void send_grantSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws org.apache.thrift.TException
    {
      grantSystemPermission_args args = new grantSystemPermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setPerm(perm);
      sendBase("grantSystemPermission", args);
    }

    public void recv_grantSystemPermission() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      grantSystemPermission_result result = new grantSystemPermission_result();
      receiveBase(result, "grantSystemPermission");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void grantTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_grantTablePermission(login, user, table, perm);
      recv_grantTablePermission();
    }

    public void send_grantTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws org.apache.thrift.TException
    {
      grantTablePermission_args args = new grantTablePermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setTable(table);
      args.setPerm(perm);
      sendBase("grantTablePermission", args);
    }

    public void recv_grantTablePermission() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      grantTablePermission_result result = new grantTablePermission_result();
      receiveBase(result, "grantTablePermission");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public boolean hasSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_hasSystemPermission(login, user, perm);
      return recv_hasSystemPermission();
    }

    public void send_hasSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws org.apache.thrift.TException
    {
      hasSystemPermission_args args = new hasSystemPermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setPerm(perm);
      sendBase("hasSystemPermission", args);
    }

    public boolean recv_hasSystemPermission() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      hasSystemPermission_result result = new hasSystemPermission_result();
      receiveBase(result, "hasSystemPermission");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "hasSystemPermission failed: unknown result");
    }

    public boolean hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_hasTablePermission(login, user, table, perm);
      return recv_hasTablePermission();
    }

    public void send_hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws org.apache.thrift.TException
    {
      hasTablePermission_args args = new hasTablePermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setTable(table);
      args.setPerm(perm);
      sendBase("hasTablePermission", args);
    }

    public boolean recv_hasTablePermission() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      hasTablePermission_result result = new hasTablePermission_result();
      receiveBase(result, "hasTablePermission");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "hasTablePermission failed: unknown result");
    }

    public Set listLocalUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_listLocalUsers(login);
      return recv_listLocalUsers();
    }

    public void send_listLocalUsers(ByteBuffer login) throws org.apache.thrift.TException
    {
      listLocalUsers_args args = new listLocalUsers_args();
      args.setLogin(login);
      sendBase("listLocalUsers", args);
    }

    public Set recv_listLocalUsers() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      listLocalUsers_result result = new listLocalUsers_result();
      receiveBase(result, "listLocalUsers");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listLocalUsers failed: unknown result");
    }

    public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_revokeSystemPermission(login, user, perm);
      recv_revokeSystemPermission();
    }

    public void send_revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws org.apache.thrift.TException
    {
      revokeSystemPermission_args args = new revokeSystemPermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setPerm(perm);
      sendBase("revokeSystemPermission", args);
    }

    public void recv_revokeSystemPermission() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      revokeSystemPermission_result result = new revokeSystemPermission_result();
      receiveBase(result, "revokeSystemPermission");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void revokeTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_revokeTablePermission(login, user, table, perm);
      recv_revokeTablePermission();
    }

    public void send_revokeTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws org.apache.thrift.TException
    {
      revokeTablePermission_args args = new revokeTablePermission_args();
      args.setLogin(login);
      args.setUser(user);
      args.setTable(table);
      args.setPerm(perm);
      sendBase("revokeTablePermission", args);
    }

    public void recv_revokeTablePermission() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      revokeTablePermission_result result = new revokeTablePermission_result();
      receiveBase(result, "revokeTablePermission");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      return;
    }

    public String createBatchScanner(ByteBuffer login, String tableName, BatchScanOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_createBatchScanner(login, tableName, options);
      return recv_createBatchScanner();
    }

    public void send_createBatchScanner(ByteBuffer login, String tableName, BatchScanOptions options) throws org.apache.thrift.TException
    {
      createBatchScanner_args args = new createBatchScanner_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setOptions(options);
      sendBase("createBatchScanner", args);
    }

    public String recv_createBatchScanner() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      createBatchScanner_result result = new createBatchScanner_result();
      receiveBase(result, "createBatchScanner");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createBatchScanner failed: unknown result");
    }

    public String createScanner(ByteBuffer login, String tableName, ScanOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_createScanner(login, tableName, options);
      return recv_createScanner();
    }

    public void send_createScanner(ByteBuffer login, String tableName, ScanOptions options) throws org.apache.thrift.TException
    {
      createScanner_args args = new createScanner_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setOptions(options);
      sendBase("createScanner", args);
    }

    public String recv_createScanner() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      createScanner_result result = new createScanner_result();
      receiveBase(result, "createScanner");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createScanner failed: unknown result");
    }

    public boolean hasNext(String scanner) throws UnknownScanner, org.apache.thrift.TException
    {
      send_hasNext(scanner);
      return recv_hasNext();
    }

    public void send_hasNext(String scanner) throws org.apache.thrift.TException
    {
      hasNext_args args = new hasNext_args();
      args.setScanner(scanner);
      sendBase("hasNext", args);
    }

    public boolean recv_hasNext() throws UnknownScanner, org.apache.thrift.TException
    {
      hasNext_result result = new hasNext_result();
      receiveBase(result, "hasNext");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "hasNext failed: unknown result");
    }

    public KeyValueAndPeek nextEntry(String scanner) throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_nextEntry(scanner);
      return recv_nextEntry();
    }

    public void send_nextEntry(String scanner) throws org.apache.thrift.TException
    {
      nextEntry_args args = new nextEntry_args();
      args.setScanner(scanner);
      sendBase("nextEntry", args);
    }

    public KeyValueAndPeek recv_nextEntry() throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException
    {
      nextEntry_result result = new nextEntry_result();
      receiveBase(result, "nextEntry");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "nextEntry failed: unknown result");
    }

    public ScanResult nextK(String scanner, int k) throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_nextK(scanner, k);
      return recv_nextK();
    }

    public void send_nextK(String scanner, int k) throws org.apache.thrift.TException
    {
      nextK_args args = new nextK_args();
      args.setScanner(scanner);
      args.setK(k);
      sendBase("nextK", args);
    }

    public ScanResult recv_nextK() throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException
    {
      nextK_result result = new nextK_result();
      receiveBase(result, "nextK");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "nextK failed: unknown result");
    }

    public void closeScanner(String scanner) throws UnknownScanner, org.apache.thrift.TException
    {
      send_closeScanner(scanner);
      recv_closeScanner();
    }

    public void send_closeScanner(String scanner) throws org.apache.thrift.TException
    {
      closeScanner_args args = new closeScanner_args();
      args.setScanner(scanner);
      sendBase("closeScanner", args);
    }

    public void recv_closeScanner() throws UnknownScanner, org.apache.thrift.TException
    {
      closeScanner_result result = new closeScanner_result();
      receiveBase(result, "closeScanner");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      return;
    }

    public void updateAndFlush(ByteBuffer login, String tableName, Map> cells) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, MutationsRejectedException, org.apache.thrift.TException
    {
      send_updateAndFlush(login, tableName, cells);
      recv_updateAndFlush();
    }

    public void send_updateAndFlush(ByteBuffer login, String tableName, Map> cells) throws org.apache.thrift.TException
    {
      updateAndFlush_args args = new updateAndFlush_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setCells(cells);
      sendBase("updateAndFlush", args);
    }

    public void recv_updateAndFlush() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, MutationsRejectedException, org.apache.thrift.TException
    {
      updateAndFlush_result result = new updateAndFlush_result();
      receiveBase(result, "updateAndFlush");
      if (result.outch1 != null) {
        throw result.outch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      if (result.ouch4 != null) {
        throw result.ouch4;
      }
      return;
    }

    public String createWriter(ByteBuffer login, String tableName, WriterOptions opts) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_createWriter(login, tableName, opts);
      return recv_createWriter();
    }

    public void send_createWriter(ByteBuffer login, String tableName, WriterOptions opts) throws org.apache.thrift.TException
    {
      createWriter_args args = new createWriter_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setOpts(opts);
      sendBase("createWriter", args);
    }

    public String recv_createWriter() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      createWriter_result result = new createWriter_result();
      receiveBase(result, "createWriter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.outch1 != null) {
        throw result.outch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createWriter failed: unknown result");
    }

    public void update(String writer, Map> cells) throws org.apache.thrift.TException
    {
      send_update(writer, cells);
    }

    public void send_update(String writer, Map> cells) throws org.apache.thrift.TException
    {
      update_args args = new update_args();
      args.setWriter(writer);
      args.setCells(cells);
      sendBase("update", args);
    }

    public void flush(String writer) throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException
    {
      send_flush(writer);
      recv_flush();
    }

    public void send_flush(String writer) throws org.apache.thrift.TException
    {
      flush_args args = new flush_args();
      args.setWriter(writer);
      sendBase("flush", args);
    }

    public void recv_flush() throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException
    {
      flush_result result = new flush_result();
      receiveBase(result, "flush");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public void closeWriter(String writer) throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException
    {
      send_closeWriter(writer);
      recv_closeWriter();
    }

    public void send_closeWriter(String writer) throws org.apache.thrift.TException
    {
      closeWriter_args args = new closeWriter_args();
      args.setWriter(writer);
      sendBase("closeWriter", args);
    }

    public void recv_closeWriter() throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException
    {
      closeWriter_result result = new closeWriter_result();
      receiveBase(result, "closeWriter");
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      return;
    }

    public ConditionalStatus updateRowConditionally(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_updateRowConditionally(login, tableName, row, updates);
      return recv_updateRowConditionally();
    }

    public void send_updateRowConditionally(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates) throws org.apache.thrift.TException
    {
      updateRowConditionally_args args = new updateRowConditionally_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setRow(row);
      args.setUpdates(updates);
      sendBase("updateRowConditionally", args);
    }

    public ConditionalStatus recv_updateRowConditionally() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      updateRowConditionally_result result = new updateRowConditionally_result();
      receiveBase(result, "updateRowConditionally");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateRowConditionally failed: unknown result");
    }

    public String createConditionalWriter(ByteBuffer login, String tableName, ConditionalWriterOptions options) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      send_createConditionalWriter(login, tableName, options);
      return recv_createConditionalWriter();
    }

    public void send_createConditionalWriter(ByteBuffer login, String tableName, ConditionalWriterOptions options) throws org.apache.thrift.TException
    {
      createConditionalWriter_args args = new createConditionalWriter_args();
      args.setLogin(login);
      args.setTableName(tableName);
      args.setOptions(options);
      sendBase("createConditionalWriter", args);
    }

    public String recv_createConditionalWriter() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException
    {
      createConditionalWriter_result result = new createConditionalWriter_result();
      receiveBase(result, "createConditionalWriter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createConditionalWriter failed: unknown result");
    }

    public Map updateRowsConditionally(String conditionalWriter, Map updates) throws UnknownWriter, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      send_updateRowsConditionally(conditionalWriter, updates);
      return recv_updateRowsConditionally();
    }

    public void send_updateRowsConditionally(String conditionalWriter, Map updates) throws org.apache.thrift.TException
    {
      updateRowsConditionally_args args = new updateRowsConditionally_args();
      args.setConditionalWriter(conditionalWriter);
      args.setUpdates(updates);
      sendBase("updateRowsConditionally", args);
    }

    public Map recv_updateRowsConditionally() throws UnknownWriter, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
    {
      updateRowsConditionally_result result = new updateRowsConditionally_result();
      receiveBase(result, "updateRowsConditionally");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ouch1 != null) {
        throw result.ouch1;
      }
      if (result.ouch2 != null) {
        throw result.ouch2;
      }
      if (result.ouch3 != null) {
        throw result.ouch3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateRowsConditionally failed: unknown result");
    }

    public void closeConditionalWriter(String conditionalWriter) throws org.apache.thrift.TException
    {
      send_closeConditionalWriter(conditionalWriter);
      recv_closeConditionalWriter();
    }

    public void send_closeConditionalWriter(String conditionalWriter) throws org.apache.thrift.TException
    {
      closeConditionalWriter_args args = new closeConditionalWriter_args();
      args.setConditionalWriter(conditionalWriter);
      sendBase("closeConditionalWriter", args);
    }

    public void recv_closeConditionalWriter() throws org.apache.thrift.TException
    {
      closeConditionalWriter_result result = new closeConditionalWriter_result();
      receiveBase(result, "closeConditionalWriter");
      return;
    }

    public Range getRowRange(ByteBuffer row) throws org.apache.thrift.TException
    {
      send_getRowRange(row);
      return recv_getRowRange();
    }

    public void send_getRowRange(ByteBuffer row) throws org.apache.thrift.TException
    {
      getRowRange_args args = new getRowRange_args();
      args.setRow(row);
      sendBase("getRowRange", args);
    }

    public Range recv_getRowRange() throws org.apache.thrift.TException
    {
      getRowRange_result result = new getRowRange_result();
      receiveBase(result, "getRowRange");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getRowRange failed: unknown result");
    }

    public Key getFollowing(Key key, PartialKey part) throws org.apache.thrift.TException
    {
      send_getFollowing(key, part);
      return recv_getFollowing();
    }

    public void send_getFollowing(Key key, PartialKey part) throws org.apache.thrift.TException
    {
      getFollowing_args args = new getFollowing_args();
      args.setKey(key);
      args.setPart(part);
      sendBase("getFollowing", args);
    }

    public Key recv_getFollowing() throws org.apache.thrift.TException
    {
      getFollowing_result result = new getFollowing_result();
      receiveBase(result, "getFollowing");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getFollowing 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 {
      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;
      }
      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);
    }

    public void login(String principal, Map loginProperties, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      login_call method_call = new login_call(principal, loginProperties, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class login_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String principal;
      private Map loginProperties;
      public login_call(String principal, Map loginProperties, org.apache.thrift.async.AsyncMethodCallback 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.principal = principal;
        this.loginProperties = loginProperties;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("login", org.apache.thrift.protocol.TMessageType.CALL, 0));
        login_args args = new login_args();
        args.setPrincipal(principal);
        args.setLoginProperties(loginProperties);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ByteBuffer getResult() throws AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_login();
      }
    }

    public void addConstraint(ByteBuffer login, String tableName, String constraintClassName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addConstraint_call method_call = new addConstraint_call(login, tableName, constraintClassName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addConstraint_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String constraintClassName;
      public addConstraint_call(ByteBuffer login, String tableName, String constraintClassName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.constraintClassName = constraintClassName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addConstraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addConstraint_args args = new addConstraint_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setConstraintClassName(constraintClassName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public int getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_addConstraint();
      }
    }

    public void addSplits(ByteBuffer login, String tableName, Set splits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addSplits_call method_call = new addSplits_call(login, tableName, splits, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addSplits_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private Set splits;
      public addSplits_call(ByteBuffer login, String tableName, Set splits, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.splits = splits;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addSplits", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addSplits_args args = new addSplits_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setSplits(splits);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_addSplits();
      }
    }

    public void attachIterator(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      attachIterator_call method_call = new attachIterator_call(login, tableName, setting, scopes, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class attachIterator_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private IteratorSetting setting;
      private Set scopes;
      public attachIterator_call(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.setting = setting;
        this.scopes = scopes;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("attachIterator", org.apache.thrift.protocol.TMessageType.CALL, 0));
        attachIterator_args args = new attachIterator_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setSetting(setting);
        args.setScopes(scopes);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_attachIterator();
      }
    }

    public void checkIteratorConflicts(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      checkIteratorConflicts_call method_call = new checkIteratorConflicts_call(login, tableName, setting, scopes, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class checkIteratorConflicts_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private IteratorSetting setting;
      private Set scopes;
      public checkIteratorConflicts_call(ByteBuffer login, String tableName, IteratorSetting setting, Set scopes, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.setting = setting;
        this.scopes = scopes;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("checkIteratorConflicts", org.apache.thrift.protocol.TMessageType.CALL, 0));
        checkIteratorConflicts_args args = new checkIteratorConflicts_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setSetting(setting);
        args.setScopes(scopes);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloSecurityException, AccumuloException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_checkIteratorConflicts();
      }
    }

    public void clearLocatorCache(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      clearLocatorCache_call method_call = new clearLocatorCache_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class clearLocatorCache_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public clearLocatorCache_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("clearLocatorCache", org.apache.thrift.protocol.TMessageType.CALL, 0));
        clearLocatorCache_args args = new clearLocatorCache_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_clearLocatorCache();
      }
    }

    public void cloneTable(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      cloneTable_call method_call = new cloneTable_call(login, tableName, newTableName, flush, propertiesToSet, propertiesToExclude, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class cloneTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String newTableName;
      private boolean flush;
      private Map propertiesToSet;
      private Set propertiesToExclude;
      public cloneTable_call(ByteBuffer login, String tableName, String newTableName, boolean flush, Map propertiesToSet, Set propertiesToExclude, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.newTableName = newTableName;
        this.flush = flush;
        this.propertiesToSet = propertiesToSet;
        this.propertiesToExclude = propertiesToExclude;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cloneTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        cloneTable_args args = new cloneTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setNewTableName(newTableName);
        args.setFlush(flush);
        args.setPropertiesToSet(propertiesToSet);
        args.setPropertiesToExclude(propertiesToExclude);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_cloneTable();
      }
    }

    public void compactTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      compactTable_call method_call = new compactTable_call(login, tableName, startRow, endRow, iterators, flush, wait, compactionStrategy, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class compactTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ByteBuffer startRow;
      private ByteBuffer endRow;
      private List iterators;
      private boolean flush;
      private boolean wait;
      private CompactionStrategyConfig compactionStrategy;
      public compactTable_call(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, List iterators, boolean flush, boolean wait, CompactionStrategyConfig compactionStrategy, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.startRow = startRow;
        this.endRow = endRow;
        this.iterators = iterators;
        this.flush = flush;
        this.wait = wait;
        this.compactionStrategy = compactionStrategy;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("compactTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        compactTable_args args = new compactTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setStartRow(startRow);
        args.setEndRow(endRow);
        args.setIterators(iterators);
        args.setFlush(flush);
        args.setWait(wait);
        args.setCompactionStrategy(compactionStrategy);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_compactTable();
      }
    }

    public void cancelCompaction(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      cancelCompaction_call method_call = new cancelCompaction_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class cancelCompaction_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public cancelCompaction_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cancelCompaction", org.apache.thrift.protocol.TMessageType.CALL, 0));
        cancelCompaction_args args = new cancelCompaction_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloSecurityException, TableNotFoundException, AccumuloException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_cancelCompaction();
      }
    }

    public void createTable(ByteBuffer login, String tableName, boolean versioningIter, TimeType type, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createTable_call method_call = new createTable_call(login, tableName, versioningIter, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private boolean versioningIter;
      private TimeType type;
      public createTable_call(ByteBuffer login, String tableName, boolean versioningIter, TimeType type, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.versioningIter = versioningIter;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createTable_args args = new createTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setVersioningIter(versioningIter);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableExistsException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createTable();
      }
    }

    public void deleteTable(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteTable_call method_call = new deleteTable_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public deleteTable_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteTable_args args = new deleteTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_deleteTable();
      }
    }

    public void deleteRows(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteRows_call method_call = new deleteRows_call(login, tableName, startRow, endRow, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteRows_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ByteBuffer startRow;
      private ByteBuffer endRow;
      public deleteRows_call(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.startRow = startRow;
        this.endRow = endRow;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteRows", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteRows_args args = new deleteRows_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setStartRow(startRow);
        args.setEndRow(endRow);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_deleteRows();
      }
    }

    public void exportTable(ByteBuffer login, String tableName, String exportDir, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      exportTable_call method_call = new exportTable_call(login, tableName, exportDir, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class exportTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String exportDir;
      public exportTable_call(ByteBuffer login, String tableName, String exportDir, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.exportDir = exportDir;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("exportTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        exportTable_args args = new exportTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setExportDir(exportDir);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_exportTable();
      }
    }

    public void flushTable(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      flushTable_call method_call = new flushTable_call(login, tableName, startRow, endRow, wait, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class flushTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ByteBuffer startRow;
      private ByteBuffer endRow;
      private boolean wait;
      public flushTable_call(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, boolean wait, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.startRow = startRow;
        this.endRow = endRow;
        this.wait = wait;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("flushTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        flushTable_args args = new flushTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setStartRow(startRow);
        args.setEndRow(endRow);
        args.setWait(wait);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_flushTable();
      }
    }

    public void getDiskUsage(ByteBuffer login, Set tables, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getDiskUsage_call method_call = new getDiskUsage_call(login, tables, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getDiskUsage_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private Set tables;
      public getDiskUsage_call(ByteBuffer login, Set tables, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tables = tables;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getDiskUsage", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getDiskUsage_args args = new getDiskUsage_args();
        args.setLogin(login);
        args.setTables(tables);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getDiskUsage();
      }
    }

    public void getLocalityGroups(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getLocalityGroups_call method_call = new getLocalityGroups_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getLocalityGroups_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public getLocalityGroups_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLocalityGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getLocalityGroups_args args = new getLocalityGroups_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map> getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getLocalityGroups();
      }
    }

    public void getIteratorSetting(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getIteratorSetting_call method_call = new getIteratorSetting_call(login, tableName, iteratorName, scope, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getIteratorSetting_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String iteratorName;
      private IteratorScope scope;
      public getIteratorSetting_call(ByteBuffer login, String tableName, String iteratorName, IteratorScope scope, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.iteratorName = iteratorName;
        this.scope = scope;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getIteratorSetting", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getIteratorSetting_args args = new getIteratorSetting_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setIteratorName(iteratorName);
        args.setScope(scope);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public IteratorSetting getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getIteratorSetting();
      }
    }

    public void getMaxRow(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getMaxRow_call method_call = new getMaxRow_call(login, tableName, auths, startRow, startInclusive, endRow, endInclusive, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getMaxRow_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private Set auths;
      private ByteBuffer startRow;
      private boolean startInclusive;
      private ByteBuffer endRow;
      private boolean endInclusive;
      public getMaxRow_call(ByteBuffer login, String tableName, Set auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean endInclusive, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.auths = auths;
        this.startRow = startRow;
        this.startInclusive = startInclusive;
        this.endRow = endRow;
        this.endInclusive = endInclusive;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getMaxRow", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getMaxRow_args args = new getMaxRow_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setAuths(auths);
        args.setStartRow(startRow);
        args.setStartInclusive(startInclusive);
        args.setEndRow(endRow);
        args.setEndInclusive(endInclusive);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ByteBuffer getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getMaxRow();
      }
    }

    public void getTableProperties(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getTableProperties_call method_call = new getTableProperties_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getTableProperties_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public getTableProperties_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getTableProperties", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getTableProperties_args args = new getTableProperties_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getTableProperties();
      }
    }

    public void importDirectory(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      importDirectory_call method_call = new importDirectory_call(login, tableName, importDir, failureDir, setTime, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class importDirectory_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String importDir;
      private String failureDir;
      private boolean setTime;
      public importDirectory_call(ByteBuffer login, String tableName, String importDir, String failureDir, boolean setTime, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.importDir = importDir;
        this.failureDir = failureDir;
        this.setTime = setTime;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("importDirectory", org.apache.thrift.protocol.TMessageType.CALL, 0));
        importDirectory_args args = new importDirectory_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setImportDir(importDir);
        args.setFailureDir(failureDir);
        args.setSetTime(setTime);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws TableNotFoundException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_importDirectory();
      }
    }

    public void importTable(ByteBuffer login, String tableName, String importDir, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      importTable_call method_call = new importTable_call(login, tableName, importDir, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class importTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String importDir;
      public importTable_call(ByteBuffer login, String tableName, String importDir, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.importDir = importDir;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("importTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        importTable_args args = new importTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setImportDir(importDir);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws TableExistsException, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_importTable();
      }
    }

    public void listSplits(ByteBuffer login, String tableName, int maxSplits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      listSplits_call method_call = new listSplits_call(login, tableName, maxSplits, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class listSplits_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private int maxSplits;
      public listSplits_call(ByteBuffer login, String tableName, int maxSplits, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.maxSplits = maxSplits;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listSplits", org.apache.thrift.protocol.TMessageType.CALL, 0));
        listSplits_args args = new listSplits_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setMaxSplits(maxSplits);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_listSplits();
      }
    }

    public void listTables(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      listTables_call method_call = new listTables_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class listTables_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public listTables_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listTables", org.apache.thrift.protocol.TMessageType.CALL, 0));
        listTables_args args = new listTables_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Set getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_listTables();
      }
    }

    public void listIterators(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      listIterators_call method_call = new listIterators_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class listIterators_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public listIterators_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listIterators", org.apache.thrift.protocol.TMessageType.CALL, 0));
        listIterators_args args = new listIterators_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map> getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_listIterators();
      }
    }

    public void listConstraints(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      listConstraints_call method_call = new listConstraints_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class listConstraints_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public listConstraints_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listConstraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        listConstraints_args args = new listConstraints_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_listConstraints();
      }
    }

    public void mergeTablets(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      mergeTablets_call method_call = new mergeTablets_call(login, tableName, startRow, endRow, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class mergeTablets_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ByteBuffer startRow;
      private ByteBuffer endRow;
      public mergeTablets_call(ByteBuffer login, String tableName, ByteBuffer startRow, ByteBuffer endRow, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.startRow = startRow;
        this.endRow = endRow;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("mergeTablets", org.apache.thrift.protocol.TMessageType.CALL, 0));
        mergeTablets_args args = new mergeTablets_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setStartRow(startRow);
        args.setEndRow(endRow);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_mergeTablets();
      }
    }

    public void offlineTable(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      offlineTable_call method_call = new offlineTable_call(login, tableName, wait, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class offlineTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private boolean wait;
      public offlineTable_call(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.wait = wait;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("offlineTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        offlineTable_args args = new offlineTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setWait(wait);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_offlineTable();
      }
    }

    public void onlineTable(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      onlineTable_call method_call = new onlineTable_call(login, tableName, wait, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class onlineTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private boolean wait;
      public onlineTable_call(ByteBuffer login, String tableName, boolean wait, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.wait = wait;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("onlineTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        onlineTable_args args = new onlineTable_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setWait(wait);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_onlineTable();
      }
    }

    public void removeConstraint(ByteBuffer login, String tableName, int constraint, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      removeConstraint_call method_call = new removeConstraint_call(login, tableName, constraint, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class removeConstraint_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private int constraint;
      public removeConstraint_call(ByteBuffer login, String tableName, int constraint, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.constraint = constraint;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("removeConstraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        removeConstraint_args args = new removeConstraint_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setConstraint(constraint);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_removeConstraint();
      }
    }

    public void removeIterator(ByteBuffer login, String tableName, String iterName, Set scopes, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      removeIterator_call method_call = new removeIterator_call(login, tableName, iterName, scopes, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class removeIterator_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String iterName;
      private Set scopes;
      public removeIterator_call(ByteBuffer login, String tableName, String iterName, Set scopes, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.iterName = iterName;
        this.scopes = scopes;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("removeIterator", org.apache.thrift.protocol.TMessageType.CALL, 0));
        removeIterator_args args = new removeIterator_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setIterName(iterName);
        args.setScopes(scopes);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_removeIterator();
      }
    }

    public void removeTableProperty(ByteBuffer login, String tableName, String property, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      removeTableProperty_call method_call = new removeTableProperty_call(login, tableName, property, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class removeTableProperty_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String property;
      public removeTableProperty_call(ByteBuffer login, String tableName, String property, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.property = property;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("removeTableProperty", org.apache.thrift.protocol.TMessageType.CALL, 0));
        removeTableProperty_args args = new removeTableProperty_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setProperty(property);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_removeTableProperty();
      }
    }

    public void renameTable(ByteBuffer login, String oldTableName, String newTableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      renameTable_call method_call = new renameTable_call(login, oldTableName, newTableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class renameTable_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String oldTableName;
      private String newTableName;
      public renameTable_call(ByteBuffer login, String oldTableName, String newTableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.oldTableName = oldTableName;
        this.newTableName = newTableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("renameTable", org.apache.thrift.protocol.TMessageType.CALL, 0));
        renameTable_args args = new renameTable_args();
        args.setLogin(login);
        args.setOldTableName(oldTableName);
        args.setNewTableName(newTableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, TableExistsException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_renameTable();
      }
    }

    public void setLocalityGroups(ByteBuffer login, String tableName, Map> groups, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      setLocalityGroups_call method_call = new setLocalityGroups_call(login, tableName, groups, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class setLocalityGroups_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private Map> groups;
      public setLocalityGroups_call(ByteBuffer login, String tableName, Map> groups, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.groups = groups;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("setLocalityGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
        setLocalityGroups_args args = new setLocalityGroups_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setGroups(groups);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_setLocalityGroups();
      }
    }

    public void setTableProperty(ByteBuffer login, String tableName, String property, String value, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      setTableProperty_call method_call = new setTableProperty_call(login, tableName, property, value, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class setTableProperty_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String property;
      private String value;
      public setTableProperty_call(ByteBuffer login, String tableName, String property, String value, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.property = property;
        this.value = value;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("setTableProperty", org.apache.thrift.protocol.TMessageType.CALL, 0));
        setTableProperty_args args = new setTableProperty_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setProperty(property);
        args.setValue(value);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_setTableProperty();
      }
    }

    public void splitRangeByTablets(ByteBuffer login, String tableName, Range range, int maxSplits, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      splitRangeByTablets_call method_call = new splitRangeByTablets_call(login, tableName, range, maxSplits, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class splitRangeByTablets_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private Range range;
      private int maxSplits;
      public splitRangeByTablets_call(ByteBuffer login, String tableName, Range range, int maxSplits, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.range = range;
        this.maxSplits = maxSplits;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("splitRangeByTablets", org.apache.thrift.protocol.TMessageType.CALL, 0));
        splitRangeByTablets_args args = new splitRangeByTablets_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setRange(range);
        args.setMaxSplits(maxSplits);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Set getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_splitRangeByTablets();
      }
    }

    public void tableExists(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      tableExists_call method_call = new tableExists_call(login, tableName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class tableExists_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      public tableExists_call(ByteBuffer login, String tableName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("tableExists", org.apache.thrift.protocol.TMessageType.CALL, 0));
        tableExists_args args = new tableExists_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_tableExists();
      }
    }

    public void tableIdMap(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      tableIdMap_call method_call = new tableIdMap_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class tableIdMap_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public tableIdMap_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("tableIdMap", org.apache.thrift.protocol.TMessageType.CALL, 0));
        tableIdMap_args args = new tableIdMap_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_tableIdMap();
      }
    }

    public void testTableClassLoad(ByteBuffer login, String tableName, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      testTableClassLoad_call method_call = new testTableClassLoad_call(login, tableName, className, asTypeName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class testTableClassLoad_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private String className;
      private String asTypeName;
      public testTableClassLoad_call(ByteBuffer login, String tableName, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.className = className;
        this.asTypeName = asTypeName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("testTableClassLoad", org.apache.thrift.protocol.TMessageType.CALL, 0));
        testTableClassLoad_args args = new testTableClassLoad_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setClassName(className);
        args.setAsTypeName(asTypeName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_testTableClassLoad();
      }
    }

    public void pingTabletServer(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      pingTabletServer_call method_call = new pingTabletServer_call(login, tserver, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class pingTabletServer_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tserver;
      public pingTabletServer_call(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tserver = tserver;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pingTabletServer", org.apache.thrift.protocol.TMessageType.CALL, 0));
        pingTabletServer_args args = new pingTabletServer_args();
        args.setLogin(login);
        args.setTserver(tserver);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_pingTabletServer();
      }
    }

    public void getActiveScans(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getActiveScans_call method_call = new getActiveScans_call(login, tserver, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getActiveScans_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tserver;
      public getActiveScans_call(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tserver = tserver;
      }

      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.setLogin(login);
        args.setTserver(tserver);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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 void getActiveCompactions(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getActiveCompactions_call method_call = new getActiveCompactions_call(login, tserver, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getActiveCompactions_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tserver;
      public getActiveCompactions_call(ByteBuffer login, String tserver, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tserver = tserver;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getActiveCompactions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getActiveCompactions_args args = new getActiveCompactions_args();
        args.setLogin(login);
        args.setTserver(tserver);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getActiveCompactions();
      }
    }

    public void getSiteConfiguration(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getSiteConfiguration_call method_call = new getSiteConfiguration_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getSiteConfiguration_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public getSiteConfiguration_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getSiteConfiguration", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getSiteConfiguration_args args = new getSiteConfiguration_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getSiteConfiguration();
      }
    }

    public void getSystemConfiguration(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getSystemConfiguration_call method_call = new getSystemConfiguration_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getSystemConfiguration_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public getSystemConfiguration_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getSystemConfiguration", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getSystemConfiguration_args args = new getSystemConfiguration_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getSystemConfiguration();
      }
    }

    public void getTabletServers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getTabletServers_call method_call = new getTabletServers_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getTabletServers_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public getTabletServers_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getTabletServers", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getTabletServers_args args = new getTabletServers_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getTabletServers();
      }
    }

    public void removeProperty(ByteBuffer login, String property, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      removeProperty_call method_call = new removeProperty_call(login, property, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class removeProperty_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String property;
      public removeProperty_call(ByteBuffer login, String property, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.property = property;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("removeProperty", org.apache.thrift.protocol.TMessageType.CALL, 0));
        removeProperty_args args = new removeProperty_args();
        args.setLogin(login);
        args.setProperty(property);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_removeProperty();
      }
    }

    public void setProperty(ByteBuffer login, String property, String value, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      setProperty_call method_call = new setProperty_call(login, property, value, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class setProperty_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String property;
      private String value;
      public setProperty_call(ByteBuffer login, String property, String value, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.property = property;
        this.value = value;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("setProperty", org.apache.thrift.protocol.TMessageType.CALL, 0));
        setProperty_args args = new setProperty_args();
        args.setLogin(login);
        args.setProperty(property);
        args.setValue(value);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_setProperty();
      }
    }

    public void testClassLoad(ByteBuffer login, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      testClassLoad_call method_call = new testClassLoad_call(login, className, asTypeName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class testClassLoad_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String className;
      private String asTypeName;
      public testClassLoad_call(ByteBuffer login, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.className = className;
        this.asTypeName = asTypeName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("testClassLoad", org.apache.thrift.protocol.TMessageType.CALL, 0));
        testClassLoad_args args = new testClassLoad_args();
        args.setLogin(login);
        args.setClassName(className);
        args.setAsTypeName(asTypeName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_testClassLoad();
      }
    }

    public void authenticateUser(ByteBuffer login, String user, Map properties, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      authenticateUser_call method_call = new authenticateUser_call(login, user, properties, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class authenticateUser_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private Map properties;
      public authenticateUser_call(ByteBuffer login, String user, Map properties, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.properties = properties;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("authenticateUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
        authenticateUser_args args = new authenticateUser_args();
        args.setLogin(login);
        args.setUser(user);
        args.setProperties(properties);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_authenticateUser();
      }
    }

    public void changeUserAuthorizations(ByteBuffer login, String user, Set authorizations, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      changeUserAuthorizations_call method_call = new changeUserAuthorizations_call(login, user, authorizations, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class changeUserAuthorizations_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private Set authorizations;
      public changeUserAuthorizations_call(ByteBuffer login, String user, Set authorizations, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.authorizations = authorizations;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("changeUserAuthorizations", org.apache.thrift.protocol.TMessageType.CALL, 0));
        changeUserAuthorizations_args args = new changeUserAuthorizations_args();
        args.setLogin(login);
        args.setUser(user);
        args.setAuthorizations(authorizations);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_changeUserAuthorizations();
      }
    }

    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      changeLocalUserPassword_call method_call = new changeLocalUserPassword_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class changeLocalUserPassword_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private ByteBuffer password;
      public changeLocalUserPassword_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.password = password;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("changeLocalUserPassword", org.apache.thrift.protocol.TMessageType.CALL, 0));
        changeLocalUserPassword_args args = new changeLocalUserPassword_args();
        args.setLogin(login);
        args.setUser(user);
        args.setPassword(password);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_changeLocalUserPassword();
      }
    }

    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createLocalUser_call method_call = new createLocalUser_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createLocalUser_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private ByteBuffer password;
      public createLocalUser_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.password = password;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createLocalUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createLocalUser_args args = new createLocalUser_args();
        args.setLogin(login);
        args.setUser(user);
        args.setPassword(password);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createLocalUser();
      }
    }

    public void dropLocalUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      dropLocalUser_call method_call = new dropLocalUser_call(login, user, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class dropLocalUser_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      public dropLocalUser_call(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("dropLocalUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
        dropLocalUser_args args = new dropLocalUser_args();
        args.setLogin(login);
        args.setUser(user);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_dropLocalUser();
      }
    }

    public void getUserAuthorizations(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getUserAuthorizations_call method_call = new getUserAuthorizations_call(login, user, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getUserAuthorizations_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      public getUserAuthorizations_call(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserAuthorizations", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getUserAuthorizations_args args = new getUserAuthorizations_args();
        args.setLogin(login);
        args.setUser(user);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getUserAuthorizations();
      }
    }

    public void grantSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grantSystemPermission_call method_call = new grantSystemPermission_call(login, user, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class grantSystemPermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private SystemPermission perm;
      public grantSystemPermission_call(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grantSystemPermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grantSystemPermission_args args = new grantSystemPermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_grantSystemPermission();
      }
    }

    public void grantTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grantTablePermission_call method_call = new grantTablePermission_call(login, user, table, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class grantTablePermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private String table;
      private TablePermission perm;
      public grantTablePermission_call(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.table = table;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grantTablePermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grantTablePermission_args args = new grantTablePermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setTable(table);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_grantTablePermission();
      }
    }

    public void hasSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      hasSystemPermission_call method_call = new hasSystemPermission_call(login, user, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class hasSystemPermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private SystemPermission perm;
      public hasSystemPermission_call(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("hasSystemPermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        hasSystemPermission_args args = new hasSystemPermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_hasSystemPermission();
      }
    }

    public void hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      hasTablePermission_call method_call = new hasTablePermission_call(login, user, table, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class hasTablePermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private String table;
      private TablePermission perm;
      public hasTablePermission_call(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.table = table;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("hasTablePermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        hasTablePermission_args args = new hasTablePermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setTable(table);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_hasTablePermission();
      }
    }

    public void listLocalUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      listLocalUsers_call method_call = new listLocalUsers_call(login, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class listLocalUsers_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      public listLocalUsers_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listLocalUsers", org.apache.thrift.protocol.TMessageType.CALL, 0));
        listLocalUsers_args args = new listLocalUsers_args();
        args.setLogin(login);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Set getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_listLocalUsers();
      }
    }

    public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      revokeSystemPermission_call method_call = new revokeSystemPermission_call(login, user, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class revokeSystemPermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private SystemPermission perm;
      public revokeSystemPermission_call(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("revokeSystemPermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        revokeSystemPermission_args args = new revokeSystemPermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_revokeSystemPermission();
      }
    }

    public void revokeTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      revokeTablePermission_call method_call = new revokeTablePermission_call(login, user, table, perm, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class revokeTablePermission_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String user;
      private String table;
      private TablePermission perm;
      public revokeTablePermission_call(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.user = user;
        this.table = table;
        this.perm = perm;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("revokeTablePermission", org.apache.thrift.protocol.TMessageType.CALL, 0));
        revokeTablePermission_args args = new revokeTablePermission_args();
        args.setLogin(login);
        args.setUser(user);
        args.setTable(table);
        args.setPerm(perm);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_revokeTablePermission();
      }
    }

    public void createBatchScanner(ByteBuffer login, String tableName, BatchScanOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createBatchScanner_call method_call = new createBatchScanner_call(login, tableName, options, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createBatchScanner_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private BatchScanOptions options;
      public createBatchScanner_call(ByteBuffer login, String tableName, BatchScanOptions options, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.options = options;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createBatchScanner", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createBatchScanner_args args = new createBatchScanner_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setOptions(options);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createBatchScanner();
      }
    }

    public void createScanner(ByteBuffer login, String tableName, ScanOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createScanner_call method_call = new createScanner_call(login, tableName, options, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createScanner_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ScanOptions options;
      public createScanner_call(ByteBuffer login, String tableName, ScanOptions options, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.options = options;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createScanner", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createScanner_args args = new createScanner_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setOptions(options);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createScanner();
      }
    }

    public void hasNext(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      hasNext_call method_call = new hasNext_call(scanner, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class hasNext_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String scanner;
      public hasNext_call(String scanner, org.apache.thrift.async.AsyncMethodCallback 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.scanner = scanner;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("hasNext", org.apache.thrift.protocol.TMessageType.CALL, 0));
        hasNext_args args = new hasNext_args();
        args.setScanner(scanner);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public boolean getResult() throws UnknownScanner, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_hasNext();
      }
    }

    public void nextEntry(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      nextEntry_call method_call = new nextEntry_call(scanner, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class nextEntry_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String scanner;
      public nextEntry_call(String scanner, org.apache.thrift.async.AsyncMethodCallback 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.scanner = scanner;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("nextEntry", org.apache.thrift.protocol.TMessageType.CALL, 0));
        nextEntry_args args = new nextEntry_args();
        args.setScanner(scanner);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public KeyValueAndPeek getResult() throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_nextEntry();
      }
    }

    public void nextK(String scanner, int k, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      nextK_call method_call = new nextK_call(scanner, k, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class nextK_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String scanner;
      private int k;
      public nextK_call(String scanner, int k, org.apache.thrift.async.AsyncMethodCallback 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.scanner = scanner;
        this.k = k;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("nextK", org.apache.thrift.protocol.TMessageType.CALL, 0));
        nextK_args args = new nextK_args();
        args.setScanner(scanner);
        args.setK(k);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ScanResult getResult() throws NoMoreEntriesException, UnknownScanner, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_nextK();
      }
    }

    public void closeScanner(String scanner, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      closeScanner_call method_call = new closeScanner_call(scanner, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class closeScanner_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String scanner;
      public closeScanner_call(String scanner, org.apache.thrift.async.AsyncMethodCallback 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.scanner = scanner;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("closeScanner", org.apache.thrift.protocol.TMessageType.CALL, 0));
        closeScanner_args args = new closeScanner_args();
        args.setScanner(scanner);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws UnknownScanner, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_closeScanner();
      }
    }

    public void updateAndFlush(ByteBuffer login, String tableName, Map> cells, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateAndFlush_call method_call = new updateAndFlush_call(login, tableName, cells, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateAndFlush_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private Map> cells;
      public updateAndFlush_call(ByteBuffer login, String tableName, Map> cells, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.cells = cells;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateAndFlush", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateAndFlush_args args = new updateAndFlush_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setCells(cells);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, MutationsRejectedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_updateAndFlush();
      }
    }

    public void createWriter(ByteBuffer login, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createWriter_call method_call = new createWriter_call(login, tableName, opts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createWriter_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private WriterOptions opts;
      public createWriter_call(ByteBuffer login, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.opts = opts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createWriter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createWriter_args args = new createWriter_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setOpts(opts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createWriter();
      }
    }

    public void update(String writer, Map> cells, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      update_call method_call = new update_call(writer, cells, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class update_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String writer;
      private Map> cells;
      public update_call(String writer, Map> cells, org.apache.thrift.async.AsyncMethodCallback 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.writer = writer;
        this.cells = cells;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("update", org.apache.thrift.protocol.TMessageType.CALL, 0));
        update_args args = new update_args();
        args.setWriter(writer);
        args.setCells(cells);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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);
      }
    }

    public void flush(String writer, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      flush_call method_call = new flush_call(writer, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class flush_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String writer;
      public flush_call(String writer, org.apache.thrift.async.AsyncMethodCallback 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.writer = writer;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("flush", org.apache.thrift.protocol.TMessageType.CALL, 0));
        flush_args args = new flush_args();
        args.setWriter(writer);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_flush();
      }
    }

    public void closeWriter(String writer, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      closeWriter_call method_call = new closeWriter_call(writer, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class closeWriter_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String writer;
      public closeWriter_call(String writer, org.apache.thrift.async.AsyncMethodCallback 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.writer = writer;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("closeWriter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        closeWriter_args args = new closeWriter_args();
        args.setWriter(writer);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws UnknownWriter, MutationsRejectedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_closeWriter();
      }
    }

    public void updateRowConditionally(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateRowConditionally_call method_call = new updateRowConditionally_call(login, tableName, row, updates, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateRowConditionally_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ByteBuffer row;
      private ConditionalUpdates updates;
      public updateRowConditionally_call(ByteBuffer login, String tableName, ByteBuffer row, ConditionalUpdates updates, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.row = row;
        this.updates = updates;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateRowConditionally", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateRowConditionally_args args = new updateRowConditionally_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setRow(row);
        args.setUpdates(updates);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ConditionalStatus getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_updateRowConditionally();
      }
    }

    public void createConditionalWriter(ByteBuffer login, String tableName, ConditionalWriterOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      createConditionalWriter_call method_call = new createConditionalWriter_call(login, tableName, options, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class createConditionalWriter_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer login;
      private String tableName;
      private ConditionalWriterOptions options;
      public createConditionalWriter_call(ByteBuffer login, String tableName, ConditionalWriterOptions options, org.apache.thrift.async.AsyncMethodCallback 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.login = login;
        this.tableName = tableName;
        this.options = options;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createConditionalWriter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        createConditionalWriter_args args = new createConditionalWriter_args();
        args.setLogin(login);
        args.setTableName(tableName);
        args.setOptions(options);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_createConditionalWriter();
      }
    }

    public void updateRowsConditionally(String conditionalWriter, Map updates, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateRowsConditionally_call method_call = new updateRowsConditionally_call(conditionalWriter, updates, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateRowsConditionally_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String conditionalWriter;
      private Map updates;
      public updateRowsConditionally_call(String conditionalWriter, Map updates, org.apache.thrift.async.AsyncMethodCallback 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.conditionalWriter = conditionalWriter;
        this.updates = updates;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateRowsConditionally", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateRowsConditionally_args args = new updateRowsConditionally_args();
        args.setConditionalWriter(conditionalWriter);
        args.setUpdates(updates);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map getResult() throws UnknownWriter, AccumuloException, AccumuloSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_updateRowsConditionally();
      }
    }

    public void closeConditionalWriter(String conditionalWriter, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      closeConditionalWriter_call method_call = new closeConditionalWriter_call(conditionalWriter, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class closeConditionalWriter_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String conditionalWriter;
      public closeConditionalWriter_call(String conditionalWriter, org.apache.thrift.async.AsyncMethodCallback 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.conditionalWriter = conditionalWriter;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("closeConditionalWriter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        closeConditionalWriter_args args = new closeConditionalWriter_args();
        args.setConditionalWriter(conditionalWriter);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_closeConditionalWriter();
      }
    }

    public void getRowRange(ByteBuffer row, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getRowRange_call method_call = new getRowRange_call(row, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getRowRange_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ByteBuffer row;
      public getRowRange_call(ByteBuffer row, org.apache.thrift.async.AsyncMethodCallback 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.row = row;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getRowRange", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getRowRange_args args = new getRowRange_args();
        args.setRow(row);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Range getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getRowRange();
      }
    }

    public void getFollowing(Key key, PartialKey part, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getFollowing_call method_call = new getFollowing_call(key, part, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getFollowing_call extends org.apache.thrift.async.TAsyncMethodCall {
      private Key key;
      private PartialKey part;
      public getFollowing_call(Key key, PartialKey part, org.apache.thrift.async.AsyncMethodCallback 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.key = key;
        this.part = part;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getFollowing", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getFollowing_args args = new getFollowing_args();
        args.setKey(key);
        args.setPart(part);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Key getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new 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_getFollowing();
      }
    }

  }

  public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor {
    private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
    public Processor(I iface) {
      super(iface, getProcessMap(new HashMap>()));
    }

    protected Processor(I iface, Map> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static  Map> getProcessMap(Map> processMap) {
      processMap.put("login", new login());
      processMap.put("addConstraint", new addConstraint());
      processMap.put("addSplits", new addSplits());
      processMap.put("attachIterator", new attachIterator());
      processMap.put("checkIteratorConflicts", new checkIteratorConflicts());
      processMap.put("clearLocatorCache", new clearLocatorCache());
      processMap.put("cloneTable", new cloneTable());
      processMap.put("compactTable", new compactTable());
      processMap.put("cancelCompaction", new cancelCompaction());
      processMap.put("createTable", new createTable());
      processMap.put("deleteTable", new deleteTable());
      processMap.put("deleteRows", new deleteRows());
      processMap.put("exportTable", new exportTable());
      processMap.put("flushTable", new flushTable());
      processMap.put("getDiskUsage", new getDiskUsage());
      processMap.put("getLocalityGroups", new getLocalityGroups());
      processMap.put("getIteratorSetting", new getIteratorSetting());
      processMap.put("getMaxRow", new getMaxRow());
      processMap.put("getTableProperties", new getTableProperties());
      processMap.put("importDirectory", new importDirectory());
      processMap.put("importTable", new importTable());
      processMap.put("listSplits", new listSplits());
      processMap.put("listTables", new listTables());
      processMap.put("listIterators", new listIterators());
      processMap.put("listConstraints", new listConstraints());
      processMap.put("mergeTablets", new mergeTablets());
      processMap.put("offlineTable", new offlineTable());
      processMap.put("onlineTable", new onlineTable());
      processMap.put("removeConstraint", new removeConstraint());
      processMap.put("removeIterator", new removeIterator());
      processMap.put("removeTableProperty", new removeTableProperty());
      processMap.put("renameTable", new renameTable());
      processMap.put("setLocalityGroups", new setLocalityGroups());
      processMap.put("setTableProperty", new setTableProperty());
      processMap.put("splitRangeByTablets", new splitRangeByTablets());
      processMap.put("tableExists", new tableExists());
      processMap.put("tableIdMap", new tableIdMap());
      processMap.put("testTableClassLoad", new testTableClassLoad());
      processMap.put("pingTabletServer", new pingTabletServer());
      processMap.put("getActiveScans", new getActiveScans());
      processMap.put("getActiveCompactions", new getActiveCompactions());
      processMap.put("getSiteConfiguration", new getSiteConfiguration());
      processMap.put("getSystemConfiguration", new getSystemConfiguration());
      processMap.put("getTabletServers", new getTabletServers());
      processMap.put("removeProperty", new removeProperty());
      processMap.put("setProperty", new setProperty());
      processMap.put("testClassLoad", new testClassLoad());
      processMap.put("authenticateUser", new authenticateUser());
      processMap.put("changeUserAuthorizations", new changeUserAuthorizations());
      processMap.put("changeLocalUserPassword", new changeLocalUserPassword());
      processMap.put("createLocalUser", new createLocalUser());
      processMap.put("dropLocalUser", new dropLocalUser());
      processMap.put("getUserAuthorizations", new getUserAuthorizations());
      processMap.put("grantSystemPermission", new grantSystemPermission());
      processMap.put("grantTablePermission", new grantTablePermission());
      processMap.put("hasSystemPermission", new hasSystemPermission());
      processMap.put("hasTablePermission", new hasTablePermission());
      processMap.put("listLocalUsers", new listLocalUsers());
      processMap.put("revokeSystemPermission", new revokeSystemPermission());
      processMap.put("revokeTablePermission", new revokeTablePermission());
      processMap.put("createBatchScanner", new createBatchScanner());
      processMap.put("createScanner", new createScanner());
      processMap.put("hasNext", new hasNext());
      processMap.put("nextEntry", new nextEntry());
      processMap.put("nextK", new nextK());
      processMap.put("closeScanner", new closeScanner());
      processMap.put("updateAndFlush", new updateAndFlush());
      processMap.put("createWriter", new createWriter());
      processMap.put("update", new update());
      processMap.put("flush", new flush());
      processMap.put("closeWriter", new closeWriter());
      processMap.put("updateRowConditionally", new updateRowConditionally());
      processMap.put("createConditionalWriter", new createConditionalWriter());
      processMap.put("updateRowsConditionally", new updateRowsConditionally());
      processMap.put("closeConditionalWriter", new closeConditionalWriter());
      processMap.put("getRowRange", new getRowRange());
      processMap.put("getFollowing", new getFollowing());
      return processMap;
    }

    public static class login extends org.apache.thrift.ProcessFunction {
      public login() {
        super("login");
      }

      public login_args getEmptyArgsInstance() {
        return new login_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public login_result getResult(I iface, login_args args) throws org.apache.thrift.TException {
        login_result result = new login_result();
        try {
          result.success = iface.login(args.principal, args.loginProperties);
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class addConstraint extends org.apache.thrift.ProcessFunction {
      public addConstraint() {
        super("addConstraint");
      }

      public addConstraint_args getEmptyArgsInstance() {
        return new addConstraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public addConstraint_result getResult(I iface, addConstraint_args args) throws org.apache.thrift.TException {
        addConstraint_result result = new addConstraint_result();
        try {
          result.success = iface.addConstraint(args.login, args.tableName, args.constraintClassName);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class addSplits extends org.apache.thrift.ProcessFunction {
      public addSplits() {
        super("addSplits");
      }

      public addSplits_args getEmptyArgsInstance() {
        return new addSplits_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public addSplits_result getResult(I iface, addSplits_args args) throws org.apache.thrift.TException {
        addSplits_result result = new addSplits_result();
        try {
          iface.addSplits(args.login, args.tableName, args.splits);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class attachIterator extends org.apache.thrift.ProcessFunction {
      public attachIterator() {
        super("attachIterator");
      }

      public attachIterator_args getEmptyArgsInstance() {
        return new attachIterator_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public attachIterator_result getResult(I iface, attachIterator_args args) throws org.apache.thrift.TException {
        attachIterator_result result = new attachIterator_result();
        try {
          iface.attachIterator(args.login, args.tableName, args.setting, args.scopes);
        } catch (AccumuloSecurityException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class checkIteratorConflicts extends org.apache.thrift.ProcessFunction {
      public checkIteratorConflicts() {
        super("checkIteratorConflicts");
      }

      public checkIteratorConflicts_args getEmptyArgsInstance() {
        return new checkIteratorConflicts_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public checkIteratorConflicts_result getResult(I iface, checkIteratorConflicts_args args) throws org.apache.thrift.TException {
        checkIteratorConflicts_result result = new checkIteratorConflicts_result();
        try {
          iface.checkIteratorConflicts(args.login, args.tableName, args.setting, args.scopes);
        } catch (AccumuloSecurityException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class clearLocatorCache extends org.apache.thrift.ProcessFunction {
      public clearLocatorCache() {
        super("clearLocatorCache");
      }

      public clearLocatorCache_args getEmptyArgsInstance() {
        return new clearLocatorCache_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public clearLocatorCache_result getResult(I iface, clearLocatorCache_args args) throws org.apache.thrift.TException {
        clearLocatorCache_result result = new clearLocatorCache_result();
        try {
          iface.clearLocatorCache(args.login, args.tableName);
        } catch (TableNotFoundException ouch1) {
          result.ouch1 = ouch1;
        }
        return result;
      }
    }

    public static class cloneTable extends org.apache.thrift.ProcessFunction {
      public cloneTable() {
        super("cloneTable");
      }

      public cloneTable_args getEmptyArgsInstance() {
        return new cloneTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public cloneTable_result getResult(I iface, cloneTable_args args) throws org.apache.thrift.TException {
        cloneTable_result result = new cloneTable_result();
        try {
          iface.cloneTable(args.login, args.tableName, args.newTableName, args.flush, args.propertiesToSet, args.propertiesToExclude);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        } catch (TableExistsException ouch4) {
          result.ouch4 = ouch4;
        }
        return result;
      }
    }

    public static class compactTable extends org.apache.thrift.ProcessFunction {
      public compactTable() {
        super("compactTable");
      }

      public compactTable_args getEmptyArgsInstance() {
        return new compactTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public compactTable_result getResult(I iface, compactTable_args args) throws org.apache.thrift.TException {
        compactTable_result result = new compactTable_result();
        try {
          iface.compactTable(args.login, args.tableName, args.startRow, args.endRow, args.iterators, args.flush, args.wait, args.compactionStrategy);
        } catch (AccumuloSecurityException ouch1) {
          result.ouch1 = ouch1;
        } catch (TableNotFoundException ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class cancelCompaction extends org.apache.thrift.ProcessFunction {
      public cancelCompaction() {
        super("cancelCompaction");
      }

      public cancelCompaction_args getEmptyArgsInstance() {
        return new cancelCompaction_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public cancelCompaction_result getResult(I iface, cancelCompaction_args args) throws org.apache.thrift.TException {
        cancelCompaction_result result = new cancelCompaction_result();
        try {
          iface.cancelCompaction(args.login, args.tableName);
        } catch (AccumuloSecurityException ouch1) {
          result.ouch1 = ouch1;
        } catch (TableNotFoundException ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class createTable extends org.apache.thrift.ProcessFunction {
      public createTable() {
        super("createTable");
      }

      public createTable_args getEmptyArgsInstance() {
        return new createTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createTable_result getResult(I iface, createTable_args args) throws org.apache.thrift.TException {
        createTable_result result = new createTable_result();
        try {
          iface.createTable(args.login, args.tableName, args.versioningIter, args.type);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableExistsException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class deleteTable extends org.apache.thrift.ProcessFunction {
      public deleteTable() {
        super("deleteTable");
      }

      public deleteTable_args getEmptyArgsInstance() {
        return new deleteTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public deleteTable_result getResult(I iface, deleteTable_args args) throws org.apache.thrift.TException {
        deleteTable_result result = new deleteTable_result();
        try {
          iface.deleteTable(args.login, args.tableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class deleteRows extends org.apache.thrift.ProcessFunction {
      public deleteRows() {
        super("deleteRows");
      }

      public deleteRows_args getEmptyArgsInstance() {
        return new deleteRows_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public deleteRows_result getResult(I iface, deleteRows_args args) throws org.apache.thrift.TException {
        deleteRows_result result = new deleteRows_result();
        try {
          iface.deleteRows(args.login, args.tableName, args.startRow, args.endRow);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class exportTable extends org.apache.thrift.ProcessFunction {
      public exportTable() {
        super("exportTable");
      }

      public exportTable_args getEmptyArgsInstance() {
        return new exportTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public exportTable_result getResult(I iface, exportTable_args args) throws org.apache.thrift.TException {
        exportTable_result result = new exportTable_result();
        try {
          iface.exportTable(args.login, args.tableName, args.exportDir);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class flushTable extends org.apache.thrift.ProcessFunction {
      public flushTable() {
        super("flushTable");
      }

      public flushTable_args getEmptyArgsInstance() {
        return new flushTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public flushTable_result getResult(I iface, flushTable_args args) throws org.apache.thrift.TException {
        flushTable_result result = new flushTable_result();
        try {
          iface.flushTable(args.login, args.tableName, args.startRow, args.endRow, args.wait);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class getDiskUsage extends org.apache.thrift.ProcessFunction {
      public getDiskUsage() {
        super("getDiskUsage");
      }

      public getDiskUsage_args getEmptyArgsInstance() {
        return new getDiskUsage_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getDiskUsage_result getResult(I iface, getDiskUsage_args args) throws org.apache.thrift.TException {
        getDiskUsage_result result = new getDiskUsage_result();
        try {
          result.success = iface.getDiskUsage(args.login, args.tables);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class getLocalityGroups extends org.apache.thrift.ProcessFunction {
      public getLocalityGroups() {
        super("getLocalityGroups");
      }

      public getLocalityGroups_args getEmptyArgsInstance() {
        return new getLocalityGroups_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getLocalityGroups_result getResult(I iface, getLocalityGroups_args args) throws org.apache.thrift.TException {
        getLocalityGroups_result result = new getLocalityGroups_result();
        try {
          result.success = iface.getLocalityGroups(args.login, args.tableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class getIteratorSetting extends org.apache.thrift.ProcessFunction {
      public getIteratorSetting() {
        super("getIteratorSetting");
      }

      public getIteratorSetting_args getEmptyArgsInstance() {
        return new getIteratorSetting_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getIteratorSetting_result getResult(I iface, getIteratorSetting_args args) throws org.apache.thrift.TException {
        getIteratorSetting_result result = new getIteratorSetting_result();
        try {
          result.success = iface.getIteratorSetting(args.login, args.tableName, args.iteratorName, args.scope);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class getMaxRow extends org.apache.thrift.ProcessFunction {
      public getMaxRow() {
        super("getMaxRow");
      }

      public getMaxRow_args getEmptyArgsInstance() {
        return new getMaxRow_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getMaxRow_result getResult(I iface, getMaxRow_args args) throws org.apache.thrift.TException {
        getMaxRow_result result = new getMaxRow_result();
        try {
          result.success = iface.getMaxRow(args.login, args.tableName, args.auths, args.startRow, args.startInclusive, args.endRow, args.endInclusive);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class getTableProperties extends org.apache.thrift.ProcessFunction {
      public getTableProperties() {
        super("getTableProperties");
      }

      public getTableProperties_args getEmptyArgsInstance() {
        return new getTableProperties_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getTableProperties_result getResult(I iface, getTableProperties_args args) throws org.apache.thrift.TException {
        getTableProperties_result result = new getTableProperties_result();
        try {
          result.success = iface.getTableProperties(args.login, args.tableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class importDirectory extends org.apache.thrift.ProcessFunction {
      public importDirectory() {
        super("importDirectory");
      }

      public importDirectory_args getEmptyArgsInstance() {
        return new importDirectory_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public importDirectory_result getResult(I iface, importDirectory_args args) throws org.apache.thrift.TException {
        importDirectory_result result = new importDirectory_result();
        try {
          iface.importDirectory(args.login, args.tableName, args.importDir, args.failureDir, args.setTime);
        } catch (TableNotFoundException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloException ouch3) {
          result.ouch3 = ouch3;
        } catch (AccumuloSecurityException ouch4) {
          result.ouch4 = ouch4;
        }
        return result;
      }
    }

    public static class importTable extends org.apache.thrift.ProcessFunction {
      public importTable() {
        super("importTable");
      }

      public importTable_args getEmptyArgsInstance() {
        return new importTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public importTable_result getResult(I iface, importTable_args args) throws org.apache.thrift.TException {
        importTable_result result = new importTable_result();
        try {
          iface.importTable(args.login, args.tableName, args.importDir);
        } catch (TableExistsException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloException ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloSecurityException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class listSplits extends org.apache.thrift.ProcessFunction {
      public listSplits() {
        super("listSplits");
      }

      public listSplits_args getEmptyArgsInstance() {
        return new listSplits_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public listSplits_result getResult(I iface, listSplits_args args) throws org.apache.thrift.TException {
        listSplits_result result = new listSplits_result();
        try {
          result.success = iface.listSplits(args.login, args.tableName, args.maxSplits);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class listTables extends org.apache.thrift.ProcessFunction {
      public listTables() {
        super("listTables");
      }

      public listTables_args getEmptyArgsInstance() {
        return new listTables_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public listTables_result getResult(I iface, listTables_args args) throws org.apache.thrift.TException {
        listTables_result result = new listTables_result();
        result.success = iface.listTables(args.login);
        return result;
      }
    }

    public static class listIterators extends org.apache.thrift.ProcessFunction {
      public listIterators() {
        super("listIterators");
      }

      public listIterators_args getEmptyArgsInstance() {
        return new listIterators_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public listIterators_result getResult(I iface, listIterators_args args) throws org.apache.thrift.TException {
        listIterators_result result = new listIterators_result();
        try {
          result.success = iface.listIterators(args.login, args.tableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class listConstraints extends org.apache.thrift.ProcessFunction {
      public listConstraints() {
        super("listConstraints");
      }

      public listConstraints_args getEmptyArgsInstance() {
        return new listConstraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public listConstraints_result getResult(I iface, listConstraints_args args) throws org.apache.thrift.TException {
        listConstraints_result result = new listConstraints_result();
        try {
          result.success = iface.listConstraints(args.login, args.tableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class mergeTablets extends org.apache.thrift.ProcessFunction {
      public mergeTablets() {
        super("mergeTablets");
      }

      public mergeTablets_args getEmptyArgsInstance() {
        return new mergeTablets_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public mergeTablets_result getResult(I iface, mergeTablets_args args) throws org.apache.thrift.TException {
        mergeTablets_result result = new mergeTablets_result();
        try {
          iface.mergeTablets(args.login, args.tableName, args.startRow, args.endRow);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class offlineTable extends org.apache.thrift.ProcessFunction {
      public offlineTable() {
        super("offlineTable");
      }

      public offlineTable_args getEmptyArgsInstance() {
        return new offlineTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public offlineTable_result getResult(I iface, offlineTable_args args) throws org.apache.thrift.TException {
        offlineTable_result result = new offlineTable_result();
        try {
          iface.offlineTable(args.login, args.tableName, args.wait);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class onlineTable extends org.apache.thrift.ProcessFunction {
      public onlineTable() {
        super("onlineTable");
      }

      public onlineTable_args getEmptyArgsInstance() {
        return new onlineTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public onlineTable_result getResult(I iface, onlineTable_args args) throws org.apache.thrift.TException {
        onlineTable_result result = new onlineTable_result();
        try {
          iface.onlineTable(args.login, args.tableName, args.wait);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class removeConstraint extends org.apache.thrift.ProcessFunction {
      public removeConstraint() {
        super("removeConstraint");
      }

      public removeConstraint_args getEmptyArgsInstance() {
        return new removeConstraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public removeConstraint_result getResult(I iface, removeConstraint_args args) throws org.apache.thrift.TException {
        removeConstraint_result result = new removeConstraint_result();
        try {
          iface.removeConstraint(args.login, args.tableName, args.constraint);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class removeIterator extends org.apache.thrift.ProcessFunction {
      public removeIterator() {
        super("removeIterator");
      }

      public removeIterator_args getEmptyArgsInstance() {
        return new removeIterator_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public removeIterator_result getResult(I iface, removeIterator_args args) throws org.apache.thrift.TException {
        removeIterator_result result = new removeIterator_result();
        try {
          iface.removeIterator(args.login, args.tableName, args.iterName, args.scopes);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class removeTableProperty extends org.apache.thrift.ProcessFunction {
      public removeTableProperty() {
        super("removeTableProperty");
      }

      public removeTableProperty_args getEmptyArgsInstance() {
        return new removeTableProperty_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public removeTableProperty_result getResult(I iface, removeTableProperty_args args) throws org.apache.thrift.TException {
        removeTableProperty_result result = new removeTableProperty_result();
        try {
          iface.removeTableProperty(args.login, args.tableName, args.property);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class renameTable extends org.apache.thrift.ProcessFunction {
      public renameTable() {
        super("renameTable");
      }

      public renameTable_args getEmptyArgsInstance() {
        return new renameTable_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public renameTable_result getResult(I iface, renameTable_args args) throws org.apache.thrift.TException {
        renameTable_result result = new renameTable_result();
        try {
          iface.renameTable(args.login, args.oldTableName, args.newTableName);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        } catch (TableExistsException ouch4) {
          result.ouch4 = ouch4;
        }
        return result;
      }
    }

    public static class setLocalityGroups extends org.apache.thrift.ProcessFunction {
      public setLocalityGroups() {
        super("setLocalityGroups");
      }

      public setLocalityGroups_args getEmptyArgsInstance() {
        return new setLocalityGroups_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public setLocalityGroups_result getResult(I iface, setLocalityGroups_args args) throws org.apache.thrift.TException {
        setLocalityGroups_result result = new setLocalityGroups_result();
        try {
          iface.setLocalityGroups(args.login, args.tableName, args.groups);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class setTableProperty extends org.apache.thrift.ProcessFunction {
      public setTableProperty() {
        super("setTableProperty");
      }

      public setTableProperty_args getEmptyArgsInstance() {
        return new setTableProperty_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public setTableProperty_result getResult(I iface, setTableProperty_args args) throws org.apache.thrift.TException {
        setTableProperty_result result = new setTableProperty_result();
        try {
          iface.setTableProperty(args.login, args.tableName, args.property, args.value);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class splitRangeByTablets extends org.apache.thrift.ProcessFunction {
      public splitRangeByTablets() {
        super("splitRangeByTablets");
      }

      public splitRangeByTablets_args getEmptyArgsInstance() {
        return new splitRangeByTablets_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public splitRangeByTablets_result getResult(I iface, splitRangeByTablets_args args) throws org.apache.thrift.TException {
        splitRangeByTablets_result result = new splitRangeByTablets_result();
        try {
          result.success = iface.splitRangeByTablets(args.login, args.tableName, args.range, args.maxSplits);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class tableExists extends org.apache.thrift.ProcessFunction {
      public tableExists() {
        super("tableExists");
      }

      public tableExists_args getEmptyArgsInstance() {
        return new tableExists_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public tableExists_result getResult(I iface, tableExists_args args) throws org.apache.thrift.TException {
        tableExists_result result = new tableExists_result();
        result.success = iface.tableExists(args.login, args.tableName);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    public static class tableIdMap extends org.apache.thrift.ProcessFunction {
      public tableIdMap() {
        super("tableIdMap");
      }

      public tableIdMap_args getEmptyArgsInstance() {
        return new tableIdMap_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public tableIdMap_result getResult(I iface, tableIdMap_args args) throws org.apache.thrift.TException {
        tableIdMap_result result = new tableIdMap_result();
        result.success = iface.tableIdMap(args.login);
        return result;
      }
    }

    public static class testTableClassLoad extends org.apache.thrift.ProcessFunction {
      public testTableClassLoad() {
        super("testTableClassLoad");
      }

      public testTableClassLoad_args getEmptyArgsInstance() {
        return new testTableClassLoad_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public testTableClassLoad_result getResult(I iface, testTableClassLoad_args args) throws org.apache.thrift.TException {
        testTableClassLoad_result result = new testTableClassLoad_result();
        try {
          result.success = iface.testTableClassLoad(args.login, args.tableName, args.className, args.asTypeName);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class pingTabletServer extends org.apache.thrift.ProcessFunction {
      public pingTabletServer() {
        super("pingTabletServer");
      }

      public pingTabletServer_args getEmptyArgsInstance() {
        return new pingTabletServer_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public pingTabletServer_result getResult(I iface, pingTabletServer_args args) throws org.apache.thrift.TException {
        pingTabletServer_result result = new pingTabletServer_result();
        try {
          iface.pingTabletServer(args.login, args.tserver);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getActiveScans extends org.apache.thrift.ProcessFunction {
      public getActiveScans() {
        super("getActiveScans");
      }

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

      protected boolean isOneway() {
        return false;
      }

      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.login, args.tserver);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getActiveCompactions extends org.apache.thrift.ProcessFunction {
      public getActiveCompactions() {
        super("getActiveCompactions");
      }

      public getActiveCompactions_args getEmptyArgsInstance() {
        return new getActiveCompactions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getActiveCompactions_result getResult(I iface, getActiveCompactions_args args) throws org.apache.thrift.TException {
        getActiveCompactions_result result = new getActiveCompactions_result();
        try {
          result.success = iface.getActiveCompactions(args.login, args.tserver);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getSiteConfiguration extends org.apache.thrift.ProcessFunction {
      public getSiteConfiguration() {
        super("getSiteConfiguration");
      }

      public getSiteConfiguration_args getEmptyArgsInstance() {
        return new getSiteConfiguration_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getSiteConfiguration_result getResult(I iface, getSiteConfiguration_args args) throws org.apache.thrift.TException {
        getSiteConfiguration_result result = new getSiteConfiguration_result();
        try {
          result.success = iface.getSiteConfiguration(args.login);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getSystemConfiguration extends org.apache.thrift.ProcessFunction {
      public getSystemConfiguration() {
        super("getSystemConfiguration");
      }

      public getSystemConfiguration_args getEmptyArgsInstance() {
        return new getSystemConfiguration_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getSystemConfiguration_result getResult(I iface, getSystemConfiguration_args args) throws org.apache.thrift.TException {
        getSystemConfiguration_result result = new getSystemConfiguration_result();
        try {
          result.success = iface.getSystemConfiguration(args.login);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getTabletServers extends org.apache.thrift.ProcessFunction {
      public getTabletServers() {
        super("getTabletServers");
      }

      public getTabletServers_args getEmptyArgsInstance() {
        return new getTabletServers_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getTabletServers_result getResult(I iface, getTabletServers_args args) throws org.apache.thrift.TException {
        getTabletServers_result result = new getTabletServers_result();
        result.success = iface.getTabletServers(args.login);
        return result;
      }
    }

    public static class removeProperty extends org.apache.thrift.ProcessFunction {
      public removeProperty() {
        super("removeProperty");
      }

      public removeProperty_args getEmptyArgsInstance() {
        return new removeProperty_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public removeProperty_result getResult(I iface, removeProperty_args args) throws org.apache.thrift.TException {
        removeProperty_result result = new removeProperty_result();
        try {
          iface.removeProperty(args.login, args.property);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class setProperty extends org.apache.thrift.ProcessFunction {
      public setProperty() {
        super("setProperty");
      }

      public setProperty_args getEmptyArgsInstance() {
        return new setProperty_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public setProperty_result getResult(I iface, setProperty_args args) throws org.apache.thrift.TException {
        setProperty_result result = new setProperty_result();
        try {
          iface.setProperty(args.login, args.property, args.value);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class testClassLoad extends org.apache.thrift.ProcessFunction {
      public testClassLoad() {
        super("testClassLoad");
      }

      public testClassLoad_args getEmptyArgsInstance() {
        return new testClassLoad_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public testClassLoad_result getResult(I iface, testClassLoad_args args) throws org.apache.thrift.TException {
        testClassLoad_result result = new testClassLoad_result();
        try {
          result.success = iface.testClassLoad(args.login, args.className, args.asTypeName);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class authenticateUser extends org.apache.thrift.ProcessFunction {
      public authenticateUser() {
        super("authenticateUser");
      }

      public authenticateUser_args getEmptyArgsInstance() {
        return new authenticateUser_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public authenticateUser_result getResult(I iface, authenticateUser_args args) throws org.apache.thrift.TException {
        authenticateUser_result result = new authenticateUser_result();
        try {
          result.success = iface.authenticateUser(args.login, args.user, args.properties);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class changeUserAuthorizations extends org.apache.thrift.ProcessFunction {
      public changeUserAuthorizations() {
        super("changeUserAuthorizations");
      }

      public changeUserAuthorizations_args getEmptyArgsInstance() {
        return new changeUserAuthorizations_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public changeUserAuthorizations_result getResult(I iface, changeUserAuthorizations_args args) throws org.apache.thrift.TException {
        changeUserAuthorizations_result result = new changeUserAuthorizations_result();
        try {
          iface.changeUserAuthorizations(args.login, args.user, args.authorizations);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class changeLocalUserPassword extends org.apache.thrift.ProcessFunction {
      public changeLocalUserPassword() {
        super("changeLocalUserPassword");
      }

      public changeLocalUserPassword_args getEmptyArgsInstance() {
        return new changeLocalUserPassword_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public changeLocalUserPassword_result getResult(I iface, changeLocalUserPassword_args args) throws org.apache.thrift.TException {
        changeLocalUserPassword_result result = new changeLocalUserPassword_result();
        try {
          iface.changeLocalUserPassword(args.login, args.user, args.password);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class createLocalUser extends org.apache.thrift.ProcessFunction {
      public createLocalUser() {
        super("createLocalUser");
      }

      public createLocalUser_args getEmptyArgsInstance() {
        return new createLocalUser_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createLocalUser_result getResult(I iface, createLocalUser_args args) throws org.apache.thrift.TException {
        createLocalUser_result result = new createLocalUser_result();
        try {
          iface.createLocalUser(args.login, args.user, args.password);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class dropLocalUser extends org.apache.thrift.ProcessFunction {
      public dropLocalUser() {
        super("dropLocalUser");
      }

      public dropLocalUser_args getEmptyArgsInstance() {
        return new dropLocalUser_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public dropLocalUser_result getResult(I iface, dropLocalUser_args args) throws org.apache.thrift.TException {
        dropLocalUser_result result = new dropLocalUser_result();
        try {
          iface.dropLocalUser(args.login, args.user);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class getUserAuthorizations extends org.apache.thrift.ProcessFunction {
      public getUserAuthorizations() {
        super("getUserAuthorizations");
      }

      public getUserAuthorizations_args getEmptyArgsInstance() {
        return new getUserAuthorizations_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getUserAuthorizations_result getResult(I iface, getUserAuthorizations_args args) throws org.apache.thrift.TException {
        getUserAuthorizations_result result = new getUserAuthorizations_result();
        try {
          result.success = iface.getUserAuthorizations(args.login, args.user);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class grantSystemPermission extends org.apache.thrift.ProcessFunction {
      public grantSystemPermission() {
        super("grantSystemPermission");
      }

      public grantSystemPermission_args getEmptyArgsInstance() {
        return new grantSystemPermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public grantSystemPermission_result getResult(I iface, grantSystemPermission_args args) throws org.apache.thrift.TException {
        grantSystemPermission_result result = new grantSystemPermission_result();
        try {
          iface.grantSystemPermission(args.login, args.user, args.perm);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class grantTablePermission extends org.apache.thrift.ProcessFunction {
      public grantTablePermission() {
        super("grantTablePermission");
      }

      public grantTablePermission_args getEmptyArgsInstance() {
        return new grantTablePermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public grantTablePermission_result getResult(I iface, grantTablePermission_args args) throws org.apache.thrift.TException {
        grantTablePermission_result result = new grantTablePermission_result();
        try {
          iface.grantTablePermission(args.login, args.user, args.table, args.perm);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class hasSystemPermission extends org.apache.thrift.ProcessFunction {
      public hasSystemPermission() {
        super("hasSystemPermission");
      }

      public hasSystemPermission_args getEmptyArgsInstance() {
        return new hasSystemPermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public hasSystemPermission_result getResult(I iface, hasSystemPermission_args args) throws org.apache.thrift.TException {
        hasSystemPermission_result result = new hasSystemPermission_result();
        try {
          result.success = iface.hasSystemPermission(args.login, args.user, args.perm);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class hasTablePermission extends org.apache.thrift.ProcessFunction {
      public hasTablePermission() {
        super("hasTablePermission");
      }

      public hasTablePermission_args getEmptyArgsInstance() {
        return new hasTablePermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public hasTablePermission_result getResult(I iface, hasTablePermission_args args) throws org.apache.thrift.TException {
        hasTablePermission_result result = new hasTablePermission_result();
        try {
          result.success = iface.hasTablePermission(args.login, args.user, args.table, args.perm);
          result.setSuccessIsSet(true);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class listLocalUsers extends org.apache.thrift.ProcessFunction {
      public listLocalUsers() {
        super("listLocalUsers");
      }

      public listLocalUsers_args getEmptyArgsInstance() {
        return new listLocalUsers_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public listLocalUsers_result getResult(I iface, listLocalUsers_args args) throws org.apache.thrift.TException {
        listLocalUsers_result result = new listLocalUsers_result();
        try {
          result.success = iface.listLocalUsers(args.login);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class revokeSystemPermission extends org.apache.thrift.ProcessFunction {
      public revokeSystemPermission() {
        super("revokeSystemPermission");
      }

      public revokeSystemPermission_args getEmptyArgsInstance() {
        return new revokeSystemPermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public revokeSystemPermission_result getResult(I iface, revokeSystemPermission_args args) throws org.apache.thrift.TException {
        revokeSystemPermission_result result = new revokeSystemPermission_result();
        try {
          iface.revokeSystemPermission(args.login, args.user, args.perm);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class revokeTablePermission extends org.apache.thrift.ProcessFunction {
      public revokeTablePermission() {
        super("revokeTablePermission");
      }

      public revokeTablePermission_args getEmptyArgsInstance() {
        return new revokeTablePermission_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public revokeTablePermission_result getResult(I iface, revokeTablePermission_args args) throws org.apache.thrift.TException {
        revokeTablePermission_result result = new revokeTablePermission_result();
        try {
          iface.revokeTablePermission(args.login, args.user, args.table, args.perm);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class createBatchScanner extends org.apache.thrift.ProcessFunction {
      public createBatchScanner() {
        super("createBatchScanner");
      }

      public createBatchScanner_args getEmptyArgsInstance() {
        return new createBatchScanner_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createBatchScanner_result getResult(I iface, createBatchScanner_args args) throws org.apache.thrift.TException {
        createBatchScanner_result result = new createBatchScanner_result();
        try {
          result.success = iface.createBatchScanner(args.login, args.tableName, args.options);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class createScanner extends org.apache.thrift.ProcessFunction {
      public createScanner() {
        super("createScanner");
      }

      public createScanner_args getEmptyArgsInstance() {
        return new createScanner_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createScanner_result getResult(I iface, createScanner_args args) throws org.apache.thrift.TException {
        createScanner_result result = new createScanner_result();
        try {
          result.success = iface.createScanner(args.login, args.tableName, args.options);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class hasNext extends org.apache.thrift.ProcessFunction {
      public hasNext() {
        super("hasNext");
      }

      public hasNext_args getEmptyArgsInstance() {
        return new hasNext_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public hasNext_result getResult(I iface, hasNext_args args) throws org.apache.thrift.TException {
        hasNext_result result = new hasNext_result();
        try {
          result.success = iface.hasNext(args.scanner);
          result.setSuccessIsSet(true);
        } catch (UnknownScanner ouch1) {
          result.ouch1 = ouch1;
        }
        return result;
      }
    }

    public static class nextEntry extends org.apache.thrift.ProcessFunction {
      public nextEntry() {
        super("nextEntry");
      }

      public nextEntry_args getEmptyArgsInstance() {
        return new nextEntry_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public nextEntry_result getResult(I iface, nextEntry_args args) throws org.apache.thrift.TException {
        nextEntry_result result = new nextEntry_result();
        try {
          result.success = iface.nextEntry(args.scanner);
        } catch (NoMoreEntriesException ouch1) {
          result.ouch1 = ouch1;
        } catch (UnknownScanner ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloSecurityException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class nextK extends org.apache.thrift.ProcessFunction {
      public nextK() {
        super("nextK");
      }

      public nextK_args getEmptyArgsInstance() {
        return new nextK_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public nextK_result getResult(I iface, nextK_args args) throws org.apache.thrift.TException {
        nextK_result result = new nextK_result();
        try {
          result.success = iface.nextK(args.scanner, args.k);
        } catch (NoMoreEntriesException ouch1) {
          result.ouch1 = ouch1;
        } catch (UnknownScanner ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloSecurityException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class closeScanner extends org.apache.thrift.ProcessFunction {
      public closeScanner() {
        super("closeScanner");
      }

      public closeScanner_args getEmptyArgsInstance() {
        return new closeScanner_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public closeScanner_result getResult(I iface, closeScanner_args args) throws org.apache.thrift.TException {
        closeScanner_result result = new closeScanner_result();
        try {
          iface.closeScanner(args.scanner);
        } catch (UnknownScanner ouch1) {
          result.ouch1 = ouch1;
        }
        return result;
      }
    }

    public static class updateAndFlush extends org.apache.thrift.ProcessFunction {
      public updateAndFlush() {
        super("updateAndFlush");
      }

      public updateAndFlush_args getEmptyArgsInstance() {
        return new updateAndFlush_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public updateAndFlush_result getResult(I iface, updateAndFlush_args args) throws org.apache.thrift.TException {
        updateAndFlush_result result = new updateAndFlush_result();
        try {
          iface.updateAndFlush(args.login, args.tableName, args.cells);
        } catch (AccumuloException outch1) {
          result.outch1 = outch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        } catch (MutationsRejectedException ouch4) {
          result.ouch4 = ouch4;
        }
        return result;
      }
    }

    public static class createWriter extends org.apache.thrift.ProcessFunction {
      public createWriter() {
        super("createWriter");
      }

      public createWriter_args getEmptyArgsInstance() {
        return new createWriter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createWriter_result getResult(I iface, createWriter_args args) throws org.apache.thrift.TException {
        createWriter_result result = new createWriter_result();
        try {
          result.success = iface.createWriter(args.login, args.tableName, args.opts);
        } catch (AccumuloException outch1) {
          result.outch1 = outch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class update extends org.apache.thrift.ProcessFunction {
      public update() {
        super("update");
      }

      public update_args getEmptyArgsInstance() {
        return new update_args();
      }

      protected boolean isOneway() {
        return true;
      }

      public org.apache.thrift.TBase getResult(I iface, update_args args) throws org.apache.thrift.TException {
        iface.update(args.writer, args.cells);
        return null;
      }
    }

    public static class flush extends org.apache.thrift.ProcessFunction {
      public flush() {
        super("flush");
      }

      public flush_args getEmptyArgsInstance() {
        return new flush_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public flush_result getResult(I iface, flush_args args) throws org.apache.thrift.TException {
        flush_result result = new flush_result();
        try {
          iface.flush(args.writer);
        } catch (UnknownWriter ouch1) {
          result.ouch1 = ouch1;
        } catch (MutationsRejectedException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class closeWriter extends org.apache.thrift.ProcessFunction {
      public closeWriter() {
        super("closeWriter");
      }

      public closeWriter_args getEmptyArgsInstance() {
        return new closeWriter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public closeWriter_result getResult(I iface, closeWriter_args args) throws org.apache.thrift.TException {
        closeWriter_result result = new closeWriter_result();
        try {
          iface.closeWriter(args.writer);
        } catch (UnknownWriter ouch1) {
          result.ouch1 = ouch1;
        } catch (MutationsRejectedException ouch2) {
          result.ouch2 = ouch2;
        }
        return result;
      }
    }

    public static class updateRowConditionally extends org.apache.thrift.ProcessFunction {
      public updateRowConditionally() {
        super("updateRowConditionally");
      }

      public updateRowConditionally_args getEmptyArgsInstance() {
        return new updateRowConditionally_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public updateRowConditionally_result getResult(I iface, updateRowConditionally_args args) throws org.apache.thrift.TException {
        updateRowConditionally_result result = new updateRowConditionally_result();
        try {
          result.success = iface.updateRowConditionally(args.login, args.tableName, args.row, args.updates);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class createConditionalWriter extends org.apache.thrift.ProcessFunction {
      public createConditionalWriter() {
        super("createConditionalWriter");
      }

      public createConditionalWriter_args getEmptyArgsInstance() {
        return new createConditionalWriter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public createConditionalWriter_result getResult(I iface, createConditionalWriter_args args) throws org.apache.thrift.TException {
        createConditionalWriter_result result = new createConditionalWriter_result();
        try {
          result.success = iface.createConditionalWriter(args.login, args.tableName, args.options);
        } catch (AccumuloException ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloSecurityException ouch2) {
          result.ouch2 = ouch2;
        } catch (TableNotFoundException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class updateRowsConditionally extends org.apache.thrift.ProcessFunction {
      public updateRowsConditionally() {
        super("updateRowsConditionally");
      }

      public updateRowsConditionally_args getEmptyArgsInstance() {
        return new updateRowsConditionally_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public updateRowsConditionally_result getResult(I iface, updateRowsConditionally_args args) throws org.apache.thrift.TException {
        updateRowsConditionally_result result = new updateRowsConditionally_result();
        try {
          result.success = iface.updateRowsConditionally(args.conditionalWriter, args.updates);
        } catch (UnknownWriter ouch1) {
          result.ouch1 = ouch1;
        } catch (AccumuloException ouch2) {
          result.ouch2 = ouch2;
        } catch (AccumuloSecurityException ouch3) {
          result.ouch3 = ouch3;
        }
        return result;
      }
    }

    public static class closeConditionalWriter extends org.apache.thrift.ProcessFunction {
      public closeConditionalWriter() {
        super("closeConditionalWriter");
      }

      public closeConditionalWriter_args getEmptyArgsInstance() {
        return new closeConditionalWriter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public closeConditionalWriter_result getResult(I iface, closeConditionalWriter_args args) throws org.apache.thrift.TException {
        closeConditionalWriter_result result = new closeConditionalWriter_result();
        iface.closeConditionalWriter(args.conditionalWriter);
        return result;
      }
    }

    public static class getRowRange extends org.apache.thrift.ProcessFunction {
      public getRowRange() {
        super("getRowRange");
      }

      public getRowRange_args getEmptyArgsInstance() {
        return new getRowRange_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getRowRange_result getResult(I iface, getRowRange_args args) throws org.apache.thrift.TException {
        getRowRange_result result = new getRowRange_result();
        result.success = iface.getRowRange(args.row);
        return result;
      }
    }

    public static class getFollowing extends org.apache.thrift.ProcessFunction {
      public getFollowing() {
        super("getFollowing");
      }

      public getFollowing_args getEmptyArgsInstance() {
        return new getFollowing_args();
      }

      protected boolean isOneway() {
        return false;
      }

      public getFollowing_result getResult(I iface, getFollowing_args args) throws org.apache.thrift.TException {
        getFollowing_result result = new getFollowing_result();
        result.success = iface.getFollowing(args.key, args.part);
        return result;
      }
    }

  }

  public static class AsyncProcessor extends org.apache.thrift.TBaseAsyncProcessor {
    private static final Logger LOGGER = LoggerFactory.getLogger(AsyncProcessor.class.getName());
    public AsyncProcessor(I iface) {
      super(iface, getProcessMap(new HashMap>()));
    }

    protected AsyncProcessor(I iface, Map> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static  Map> getProcessMap(Map> processMap) {
      processMap.put("login", new login());
      processMap.put("addConstraint", new addConstraint());
      processMap.put("addSplits", new addSplits());
      processMap.put("attachIterator", new attachIterator());
      processMap.put("checkIteratorConflicts", new checkIteratorConflicts());
      processMap.put("clearLocatorCache", new clearLocatorCache());
      processMap.put("cloneTable", new cloneTable());
      processMap.put("compactTable", new compactTable());
      processMap.put("cancelCompaction", new cancelCompaction());
      processMap.put("createTable", new createTable());
      processMap.put("deleteTable", new deleteTable());
      processMap.put("deleteRows", new deleteRows());
      processMap.put("exportTable", new exportTable());
      processMap.put("flushTable", new flushTable());
      processMap.put("getDiskUsage", new getDiskUsage());
      processMap.put("getLocalityGroups", new getLocalityGroups());
      processMap.put("getIteratorSetting", new getIteratorSetting());
      processMap.put("getMaxRow", new getMaxRow());
      processMap.put("getTableProperties", new getTableProperties());
      processMap.put("importDirectory", new importDirectory());
      processMap.put("importTable", new importTable());
      processMap.put("listSplits", new listSplits());
      processMap.put("listTables", new listTables());
      processMap.put("listIterators", new listIterators());
      processMap.put("listConstraints", new listConstraints());
      processMap.put("mergeTablets", new mergeTablets());
      processMap.put("offlineTable", new offlineTable());
      processMap.put("onlineTable", new onlineTable());
      processMap.put("removeConstraint", new removeConstraint());
      processMap.put("removeIterator", new removeIterator());
      processMap.put("removeTableProperty", new removeTableProperty());
      processMap.put("renameTable", new renameTable());
      processMap.put("setLocalityGroups", new setLocalityGroups());
      processMap.put("setTableProperty", new setTableProperty());
      processMap.put("splitRangeByTablets", new splitRangeByTablets());
      processMap.put("tableExists", new tableExists());
      processMap.put("tableIdMap", new tableIdMap());
      processMap.put("testTableClassLoad", new testTableClassLoad());
      processMap.put("pingTabletServer", new pingTabletServer());
      processMap.put("getActiveScans", new getActiveScans());
      processMap.put("getActiveCompactions", new getActiveCompactions());
      processMap.put("getSiteConfiguration", new getSiteConfiguration());
      processMap.put("getSystemConfiguration", new getSystemConfiguration());
      processMap.put("getTabletServers", new getTabletServers());
      processMap.put("removeProperty", new removeProperty());
      processMap.put("setProperty", new setProperty());
      processMap.put("testClassLoad", new testClassLoad());
      processMap.put("authenticateUser", new authenticateUser());
      processMap.put("changeUserAuthorizations", new changeUserAuthorizations());
      processMap.put("changeLocalUserPassword", new changeLocalUserPassword());
      processMap.put("createLocalUser", new createLocalUser());
      processMap.put("dropLocalUser", new dropLocalUser());
      processMap.put("getUserAuthorizations", new getUserAuthorizations());
      processMap.put("grantSystemPermission", new grantSystemPermission());
      processMap.put("grantTablePermission", new grantTablePermission());
      processMap.put("hasSystemPermission", new hasSystemPermission());
      processMap.put("hasTablePermission", new hasTablePermission());
      processMap.put("listLocalUsers", new listLocalUsers());
      processMap.put("revokeSystemPermission", new revokeSystemPermission());
      processMap.put("revokeTablePermission", new revokeTablePermission());
      processMap.put("createBatchScanner", new createBatchScanner());
      processMap.put("createScanner", new createScanner());
      processMap.put("hasNext", new hasNext());
      processMap.put("nextEntry", new nextEntry());
      processMap.put("nextK", new nextK());
      processMap.put("closeScanner", new closeScanner());
      processMap.put("updateAndFlush", new updateAndFlush());
      processMap.put("createWriter", new createWriter());
      processMap.put("update", new update());
      processMap.put("flush", new flush());
      processMap.put("closeWriter", new closeWriter());
      processMap.put("updateRowConditionally", new updateRowConditionally());
      processMap.put("createConditionalWriter", new createConditionalWriter());
      processMap.put("updateRowsConditionally", new updateRowsConditionally());
      processMap.put("closeConditionalWriter", new closeConditionalWriter());
      processMap.put("getRowRange", new getRowRange());
      processMap.put("getFollowing", new getFollowing());
      return processMap;
    }

    public static class login extends org.apache.thrift.AsyncProcessFunction {
      public login() {
        super("login");
      }

      public login_args getEmptyArgsInstance() {
        return new login_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(ByteBuffer o) {
            login_result result = new login_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            login_result result = new login_result();
            if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, login_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.login(args.principal, args.loginProperties,resultHandler);
      }
    }

    public static class addConstraint extends org.apache.thrift.AsyncProcessFunction {
      public addConstraint() {
        super("addConstraint");
      }

      public addConstraint_args getEmptyArgsInstance() {
        return new addConstraint_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Integer o) {
            addConstraint_result result = new addConstraint_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            addConstraint_result result = new addConstraint_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, addConstraint_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.addConstraint(args.login, args.tableName, args.constraintClassName,resultHandler);
      }
    }

    public static class addSplits extends org.apache.thrift.AsyncProcessFunction {
      public addSplits() {
        super("addSplits");
      }

      public addSplits_args getEmptyArgsInstance() {
        return new addSplits_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            addSplits_result result = new addSplits_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            addSplits_result result = new addSplits_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, addSplits_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.addSplits(args.login, args.tableName, args.splits,resultHandler);
      }
    }

    public static class attachIterator extends org.apache.thrift.AsyncProcessFunction {
      public attachIterator() {
        super("attachIterator");
      }

      public attachIterator_args getEmptyArgsInstance() {
        return new attachIterator_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            attachIterator_result result = new attachIterator_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            attachIterator_result result = new attachIterator_result();
            if (e instanceof AccumuloSecurityException) {
                        result.ouch1 = (AccumuloSecurityException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch2 = (AccumuloException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, attachIterator_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.attachIterator(args.login, args.tableName, args.setting, args.scopes,resultHandler);
      }
    }

    public static class checkIteratorConflicts extends org.apache.thrift.AsyncProcessFunction {
      public checkIteratorConflicts() {
        super("checkIteratorConflicts");
      }

      public checkIteratorConflicts_args getEmptyArgsInstance() {
        return new checkIteratorConflicts_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            checkIteratorConflicts_result result = new checkIteratorConflicts_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            checkIteratorConflicts_result result = new checkIteratorConflicts_result();
            if (e instanceof AccumuloSecurityException) {
                        result.ouch1 = (AccumuloSecurityException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch2 = (AccumuloException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, checkIteratorConflicts_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.checkIteratorConflicts(args.login, args.tableName, args.setting, args.scopes,resultHandler);
      }
    }

    public static class clearLocatorCache extends org.apache.thrift.AsyncProcessFunction {
      public clearLocatorCache() {
        super("clearLocatorCache");
      }

      public clearLocatorCache_args getEmptyArgsInstance() {
        return new clearLocatorCache_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            clearLocatorCache_result result = new clearLocatorCache_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            clearLocatorCache_result result = new clearLocatorCache_result();
            if (e instanceof TableNotFoundException) {
                        result.ouch1 = (TableNotFoundException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, clearLocatorCache_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.clearLocatorCache(args.login, args.tableName,resultHandler);
      }
    }

    public static class cloneTable extends org.apache.thrift.AsyncProcessFunction {
      public cloneTable() {
        super("cloneTable");
      }

      public cloneTable_args getEmptyArgsInstance() {
        return new cloneTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            cloneTable_result result = new cloneTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            cloneTable_result result = new cloneTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableExistsException) {
                        result.ouch4 = (TableExistsException) e;
                        result.setOuch4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, cloneTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.cloneTable(args.login, args.tableName, args.newTableName, args.flush, args.propertiesToSet, args.propertiesToExclude,resultHandler);
      }
    }

    public static class compactTable extends org.apache.thrift.AsyncProcessFunction {
      public compactTable() {
        super("compactTable");
      }

      public compactTable_args getEmptyArgsInstance() {
        return new compactTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            compactTable_result result = new compactTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            compactTable_result result = new compactTable_result();
            if (e instanceof AccumuloSecurityException) {
                        result.ouch1 = (AccumuloSecurityException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch2 = (TableNotFoundException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch3 = (AccumuloException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, compactTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.compactTable(args.login, args.tableName, args.startRow, args.endRow, args.iterators, args.flush, args.wait, args.compactionStrategy,resultHandler);
      }
    }

    public static class cancelCompaction extends org.apache.thrift.AsyncProcessFunction {
      public cancelCompaction() {
        super("cancelCompaction");
      }

      public cancelCompaction_args getEmptyArgsInstance() {
        return new cancelCompaction_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            cancelCompaction_result result = new cancelCompaction_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            cancelCompaction_result result = new cancelCompaction_result();
            if (e instanceof AccumuloSecurityException) {
                        result.ouch1 = (AccumuloSecurityException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch2 = (TableNotFoundException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch3 = (AccumuloException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, cancelCompaction_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.cancelCompaction(args.login, args.tableName,resultHandler);
      }
    }

    public static class createTable extends org.apache.thrift.AsyncProcessFunction {
      public createTable() {
        super("createTable");
      }

      public createTable_args getEmptyArgsInstance() {
        return new createTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            createTable_result result = new createTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createTable_result result = new createTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableExistsException) {
                        result.ouch3 = (TableExistsException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createTable(args.login, args.tableName, args.versioningIter, args.type,resultHandler);
      }
    }

    public static class deleteTable extends org.apache.thrift.AsyncProcessFunction {
      public deleteTable() {
        super("deleteTable");
      }

      public deleteTable_args getEmptyArgsInstance() {
        return new deleteTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            deleteTable_result result = new deleteTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            deleteTable_result result = new deleteTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, deleteTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.deleteTable(args.login, args.tableName,resultHandler);
      }
    }

    public static class deleteRows extends org.apache.thrift.AsyncProcessFunction {
      public deleteRows() {
        super("deleteRows");
      }

      public deleteRows_args getEmptyArgsInstance() {
        return new deleteRows_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            deleteRows_result result = new deleteRows_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            deleteRows_result result = new deleteRows_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, deleteRows_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.deleteRows(args.login, args.tableName, args.startRow, args.endRow,resultHandler);
      }
    }

    public static class exportTable extends org.apache.thrift.AsyncProcessFunction {
      public exportTable() {
        super("exportTable");
      }

      public exportTable_args getEmptyArgsInstance() {
        return new exportTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            exportTable_result result = new exportTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            exportTable_result result = new exportTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, exportTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.exportTable(args.login, args.tableName, args.exportDir,resultHandler);
      }
    }

    public static class flushTable extends org.apache.thrift.AsyncProcessFunction {
      public flushTable() {
        super("flushTable");
      }

      public flushTable_args getEmptyArgsInstance() {
        return new flushTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            flushTable_result result = new flushTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            flushTable_result result = new flushTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, flushTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.flushTable(args.login, args.tableName, args.startRow, args.endRow, args.wait,resultHandler);
      }
    }

    public static class getDiskUsage extends org.apache.thrift.AsyncProcessFunction> {
      public getDiskUsage() {
        super("getDiskUsage");
      }

      public getDiskUsage_args getEmptyArgsInstance() {
        return new getDiskUsage_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            getDiskUsage_result result = new getDiskUsage_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getDiskUsage_result result = new getDiskUsage_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getDiskUsage_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getDiskUsage(args.login, args.tables,resultHandler);
      }
    }

    public static class getLocalityGroups extends org.apache.thrift.AsyncProcessFunction>> {
      public getLocalityGroups() {
        super("getLocalityGroups");
      }

      public getLocalityGroups_args getEmptyArgsInstance() {
        return new getLocalityGroups_args();
      }

      public AsyncMethodCallback>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>>() { 
          public void onComplete(Map> o) {
            getLocalityGroups_result result = new getLocalityGroups_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getLocalityGroups_result result = new getLocalityGroups_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getLocalityGroups_args args, org.apache.thrift.async.AsyncMethodCallback>> resultHandler) throws TException {
        iface.getLocalityGroups(args.login, args.tableName,resultHandler);
      }
    }

    public static class getIteratorSetting extends org.apache.thrift.AsyncProcessFunction {
      public getIteratorSetting() {
        super("getIteratorSetting");
      }

      public getIteratorSetting_args getEmptyArgsInstance() {
        return new getIteratorSetting_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(IteratorSetting o) {
            getIteratorSetting_result result = new getIteratorSetting_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getIteratorSetting_result result = new getIteratorSetting_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getIteratorSetting_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getIteratorSetting(args.login, args.tableName, args.iteratorName, args.scope,resultHandler);
      }
    }

    public static class getMaxRow extends org.apache.thrift.AsyncProcessFunction {
      public getMaxRow() {
        super("getMaxRow");
      }

      public getMaxRow_args getEmptyArgsInstance() {
        return new getMaxRow_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(ByteBuffer o) {
            getMaxRow_result result = new getMaxRow_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getMaxRow_result result = new getMaxRow_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getMaxRow_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getMaxRow(args.login, args.tableName, args.auths, args.startRow, args.startInclusive, args.endRow, args.endInclusive,resultHandler);
      }
    }

    public static class getTableProperties extends org.apache.thrift.AsyncProcessFunction> {
      public getTableProperties() {
        super("getTableProperties");
      }

      public getTableProperties_args getEmptyArgsInstance() {
        return new getTableProperties_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            getTableProperties_result result = new getTableProperties_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getTableProperties_result result = new getTableProperties_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getTableProperties_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getTableProperties(args.login, args.tableName,resultHandler);
      }
    }

    public static class importDirectory extends org.apache.thrift.AsyncProcessFunction {
      public importDirectory() {
        super("importDirectory");
      }

      public importDirectory_args getEmptyArgsInstance() {
        return new importDirectory_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            importDirectory_result result = new importDirectory_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            importDirectory_result result = new importDirectory_result();
            if (e instanceof TableNotFoundException) {
                        result.ouch1 = (TableNotFoundException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch3 = (AccumuloException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch4 = (AccumuloSecurityException) e;
                        result.setOuch4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, importDirectory_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.importDirectory(args.login, args.tableName, args.importDir, args.failureDir, args.setTime,resultHandler);
      }
    }

    public static class importTable extends org.apache.thrift.AsyncProcessFunction {
      public importTable() {
        super("importTable");
      }

      public importTable_args getEmptyArgsInstance() {
        return new importTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            importTable_result result = new importTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            importTable_result result = new importTable_result();
            if (e instanceof TableExistsException) {
                        result.ouch1 = (TableExistsException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch2 = (AccumuloException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch3 = (AccumuloSecurityException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, importTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.importTable(args.login, args.tableName, args.importDir,resultHandler);
      }
    }

    public static class listSplits extends org.apache.thrift.AsyncProcessFunction> {
      public listSplits() {
        super("listSplits");
      }

      public listSplits_args getEmptyArgsInstance() {
        return new listSplits_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            listSplits_result result = new listSplits_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            listSplits_result result = new listSplits_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, listSplits_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.listSplits(args.login, args.tableName, args.maxSplits,resultHandler);
      }
    }

    public static class listTables extends org.apache.thrift.AsyncProcessFunction> {
      public listTables() {
        super("listTables");
      }

      public listTables_args getEmptyArgsInstance() {
        return new listTables_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Set o) {
            listTables_result result = new listTables_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            listTables_result result = new listTables_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, listTables_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.listTables(args.login,resultHandler);
      }
    }

    public static class listIterators extends org.apache.thrift.AsyncProcessFunction>> {
      public listIterators() {
        super("listIterators");
      }

      public listIterators_args getEmptyArgsInstance() {
        return new listIterators_args();
      }

      public AsyncMethodCallback>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>>() { 
          public void onComplete(Map> o) {
            listIterators_result result = new listIterators_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            listIterators_result result = new listIterators_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, listIterators_args args, org.apache.thrift.async.AsyncMethodCallback>> resultHandler) throws TException {
        iface.listIterators(args.login, args.tableName,resultHandler);
      }
    }

    public static class listConstraints extends org.apache.thrift.AsyncProcessFunction> {
      public listConstraints() {
        super("listConstraints");
      }

      public listConstraints_args getEmptyArgsInstance() {
        return new listConstraints_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            listConstraints_result result = new listConstraints_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            listConstraints_result result = new listConstraints_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, listConstraints_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.listConstraints(args.login, args.tableName,resultHandler);
      }
    }

    public static class mergeTablets extends org.apache.thrift.AsyncProcessFunction {
      public mergeTablets() {
        super("mergeTablets");
      }

      public mergeTablets_args getEmptyArgsInstance() {
        return new mergeTablets_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            mergeTablets_result result = new mergeTablets_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            mergeTablets_result result = new mergeTablets_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, mergeTablets_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.mergeTablets(args.login, args.tableName, args.startRow, args.endRow,resultHandler);
      }
    }

    public static class offlineTable extends org.apache.thrift.AsyncProcessFunction {
      public offlineTable() {
        super("offlineTable");
      }

      public offlineTable_args getEmptyArgsInstance() {
        return new offlineTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            offlineTable_result result = new offlineTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            offlineTable_result result = new offlineTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, offlineTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.offlineTable(args.login, args.tableName, args.wait,resultHandler);
      }
    }

    public static class onlineTable extends org.apache.thrift.AsyncProcessFunction {
      public onlineTable() {
        super("onlineTable");
      }

      public onlineTable_args getEmptyArgsInstance() {
        return new onlineTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            onlineTable_result result = new onlineTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            onlineTable_result result = new onlineTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, onlineTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.onlineTable(args.login, args.tableName, args.wait,resultHandler);
      }
    }

    public static class removeConstraint extends org.apache.thrift.AsyncProcessFunction {
      public removeConstraint() {
        super("removeConstraint");
      }

      public removeConstraint_args getEmptyArgsInstance() {
        return new removeConstraint_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            removeConstraint_result result = new removeConstraint_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            removeConstraint_result result = new removeConstraint_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, removeConstraint_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.removeConstraint(args.login, args.tableName, args.constraint,resultHandler);
      }
    }

    public static class removeIterator extends org.apache.thrift.AsyncProcessFunction {
      public removeIterator() {
        super("removeIterator");
      }

      public removeIterator_args getEmptyArgsInstance() {
        return new removeIterator_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            removeIterator_result result = new removeIterator_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            removeIterator_result result = new removeIterator_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, removeIterator_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.removeIterator(args.login, args.tableName, args.iterName, args.scopes,resultHandler);
      }
    }

    public static class removeTableProperty extends org.apache.thrift.AsyncProcessFunction {
      public removeTableProperty() {
        super("removeTableProperty");
      }

      public removeTableProperty_args getEmptyArgsInstance() {
        return new removeTableProperty_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            removeTableProperty_result result = new removeTableProperty_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            removeTableProperty_result result = new removeTableProperty_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, removeTableProperty_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.removeTableProperty(args.login, args.tableName, args.property,resultHandler);
      }
    }

    public static class renameTable extends org.apache.thrift.AsyncProcessFunction {
      public renameTable() {
        super("renameTable");
      }

      public renameTable_args getEmptyArgsInstance() {
        return new renameTable_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            renameTable_result result = new renameTable_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            renameTable_result result = new renameTable_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableExistsException) {
                        result.ouch4 = (TableExistsException) e;
                        result.setOuch4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, renameTable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.renameTable(args.login, args.oldTableName, args.newTableName,resultHandler);
      }
    }

    public static class setLocalityGroups extends org.apache.thrift.AsyncProcessFunction {
      public setLocalityGroups() {
        super("setLocalityGroups");
      }

      public setLocalityGroups_args getEmptyArgsInstance() {
        return new setLocalityGroups_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            setLocalityGroups_result result = new setLocalityGroups_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            setLocalityGroups_result result = new setLocalityGroups_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, setLocalityGroups_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.setLocalityGroups(args.login, args.tableName, args.groups,resultHandler);
      }
    }

    public static class setTableProperty extends org.apache.thrift.AsyncProcessFunction {
      public setTableProperty() {
        super("setTableProperty");
      }

      public setTableProperty_args getEmptyArgsInstance() {
        return new setTableProperty_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            setTableProperty_result result = new setTableProperty_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            setTableProperty_result result = new setTableProperty_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, setTableProperty_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.setTableProperty(args.login, args.tableName, args.property, args.value,resultHandler);
      }
    }

    public static class splitRangeByTablets extends org.apache.thrift.AsyncProcessFunction> {
      public splitRangeByTablets() {
        super("splitRangeByTablets");
      }

      public splitRangeByTablets_args getEmptyArgsInstance() {
        return new splitRangeByTablets_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Set o) {
            splitRangeByTablets_result result = new splitRangeByTablets_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            splitRangeByTablets_result result = new splitRangeByTablets_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, splitRangeByTablets_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.splitRangeByTablets(args.login, args.tableName, args.range, args.maxSplits,resultHandler);
      }
    }

    public static class tableExists extends org.apache.thrift.AsyncProcessFunction {
      public tableExists() {
        super("tableExists");
      }

      public tableExists_args getEmptyArgsInstance() {
        return new tableExists_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            tableExists_result result = new tableExists_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            tableExists_result result = new tableExists_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, tableExists_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.tableExists(args.login, args.tableName,resultHandler);
      }
    }

    public static class tableIdMap extends org.apache.thrift.AsyncProcessFunction> {
      public tableIdMap() {
        super("tableIdMap");
      }

      public tableIdMap_args getEmptyArgsInstance() {
        return new tableIdMap_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            tableIdMap_result result = new tableIdMap_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            tableIdMap_result result = new tableIdMap_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, tableIdMap_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.tableIdMap(args.login,resultHandler);
      }
    }

    public static class testTableClassLoad extends org.apache.thrift.AsyncProcessFunction {
      public testTableClassLoad() {
        super("testTableClassLoad");
      }

      public testTableClassLoad_args getEmptyArgsInstance() {
        return new testTableClassLoad_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            testTableClassLoad_result result = new testTableClassLoad_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            testTableClassLoad_result result = new testTableClassLoad_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, testTableClassLoad_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.testTableClassLoad(args.login, args.tableName, args.className, args.asTypeName,resultHandler);
      }
    }

    public static class pingTabletServer extends org.apache.thrift.AsyncProcessFunction {
      public pingTabletServer() {
        super("pingTabletServer");
      }

      public pingTabletServer_args getEmptyArgsInstance() {
        return new pingTabletServer_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            pingTabletServer_result result = new pingTabletServer_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            pingTabletServer_result result = new pingTabletServer_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, pingTabletServer_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.pingTabletServer(args.login, args.tserver,resultHandler);
      }
    }

    public static class getActiveScans extends org.apache.thrift.AsyncProcessFunction> {
      public getActiveScans() {
        super("getActiveScans");
      }

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

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            getActiveScans_result result = new getActiveScans_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getActiveScans_result result = new getActiveScans_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getActiveScans_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getActiveScans(args.login, args.tserver,resultHandler);
      }
    }

    public static class getActiveCompactions extends org.apache.thrift.AsyncProcessFunction> {
      public getActiveCompactions() {
        super("getActiveCompactions");
      }

      public getActiveCompactions_args getEmptyArgsInstance() {
        return new getActiveCompactions_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            getActiveCompactions_result result = new getActiveCompactions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getActiveCompactions_result result = new getActiveCompactions_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getActiveCompactions_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getActiveCompactions(args.login, args.tserver,resultHandler);
      }
    }

    public static class getSiteConfiguration extends org.apache.thrift.AsyncProcessFunction> {
      public getSiteConfiguration() {
        super("getSiteConfiguration");
      }

      public getSiteConfiguration_args getEmptyArgsInstance() {
        return new getSiteConfiguration_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            getSiteConfiguration_result result = new getSiteConfiguration_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getSiteConfiguration_result result = new getSiteConfiguration_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getSiteConfiguration_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getSiteConfiguration(args.login,resultHandler);
      }
    }

    public static class getSystemConfiguration extends org.apache.thrift.AsyncProcessFunction> {
      public getSystemConfiguration() {
        super("getSystemConfiguration");
      }

      public getSystemConfiguration_args getEmptyArgsInstance() {
        return new getSystemConfiguration_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            getSystemConfiguration_result result = new getSystemConfiguration_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getSystemConfiguration_result result = new getSystemConfiguration_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getSystemConfiguration_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getSystemConfiguration(args.login,resultHandler);
      }
    }

    public static class getTabletServers extends org.apache.thrift.AsyncProcessFunction> {
      public getTabletServers() {
        super("getTabletServers");
      }

      public getTabletServers_args getEmptyArgsInstance() {
        return new getTabletServers_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            getTabletServers_result result = new getTabletServers_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getTabletServers_result result = new getTabletServers_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getTabletServers_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getTabletServers(args.login,resultHandler);
      }
    }

    public static class removeProperty extends org.apache.thrift.AsyncProcessFunction {
      public removeProperty() {
        super("removeProperty");
      }

      public removeProperty_args getEmptyArgsInstance() {
        return new removeProperty_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            removeProperty_result result = new removeProperty_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            removeProperty_result result = new removeProperty_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, removeProperty_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.removeProperty(args.login, args.property,resultHandler);
      }
    }

    public static class setProperty extends org.apache.thrift.AsyncProcessFunction {
      public setProperty() {
        super("setProperty");
      }

      public setProperty_args getEmptyArgsInstance() {
        return new setProperty_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            setProperty_result result = new setProperty_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            setProperty_result result = new setProperty_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, setProperty_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.setProperty(args.login, args.property, args.value,resultHandler);
      }
    }

    public static class testClassLoad extends org.apache.thrift.AsyncProcessFunction {
      public testClassLoad() {
        super("testClassLoad");
      }

      public testClassLoad_args getEmptyArgsInstance() {
        return new testClassLoad_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            testClassLoad_result result = new testClassLoad_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            testClassLoad_result result = new testClassLoad_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, testClassLoad_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.testClassLoad(args.login, args.className, args.asTypeName,resultHandler);
      }
    }

    public static class authenticateUser extends org.apache.thrift.AsyncProcessFunction {
      public authenticateUser() {
        super("authenticateUser");
      }

      public authenticateUser_args getEmptyArgsInstance() {
        return new authenticateUser_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            authenticateUser_result result = new authenticateUser_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            authenticateUser_result result = new authenticateUser_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, authenticateUser_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.authenticateUser(args.login, args.user, args.properties,resultHandler);
      }
    }

    public static class changeUserAuthorizations extends org.apache.thrift.AsyncProcessFunction {
      public changeUserAuthorizations() {
        super("changeUserAuthorizations");
      }

      public changeUserAuthorizations_args getEmptyArgsInstance() {
        return new changeUserAuthorizations_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            changeUserAuthorizations_result result = new changeUserAuthorizations_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            changeUserAuthorizations_result result = new changeUserAuthorizations_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, changeUserAuthorizations_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.changeUserAuthorizations(args.login, args.user, args.authorizations,resultHandler);
      }
    }

    public static class changeLocalUserPassword extends org.apache.thrift.AsyncProcessFunction {
      public changeLocalUserPassword() {
        super("changeLocalUserPassword");
      }

      public changeLocalUserPassword_args getEmptyArgsInstance() {
        return new changeLocalUserPassword_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            changeLocalUserPassword_result result = new changeLocalUserPassword_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            changeLocalUserPassword_result result = new changeLocalUserPassword_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, changeLocalUserPassword_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.changeLocalUserPassword(args.login, args.user, args.password,resultHandler);
      }
    }

    public static class createLocalUser extends org.apache.thrift.AsyncProcessFunction {
      public createLocalUser() {
        super("createLocalUser");
      }

      public createLocalUser_args getEmptyArgsInstance() {
        return new createLocalUser_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            createLocalUser_result result = new createLocalUser_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createLocalUser_result result = new createLocalUser_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createLocalUser_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createLocalUser(args.login, args.user, args.password,resultHandler);
      }
    }

    public static class dropLocalUser extends org.apache.thrift.AsyncProcessFunction {
      public dropLocalUser() {
        super("dropLocalUser");
      }

      public dropLocalUser_args getEmptyArgsInstance() {
        return new dropLocalUser_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            dropLocalUser_result result = new dropLocalUser_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            dropLocalUser_result result = new dropLocalUser_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, dropLocalUser_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.dropLocalUser(args.login, args.user,resultHandler);
      }
    }

    public static class getUserAuthorizations extends org.apache.thrift.AsyncProcessFunction> {
      public getUserAuthorizations() {
        super("getUserAuthorizations");
      }

      public getUserAuthorizations_args getEmptyArgsInstance() {
        return new getUserAuthorizations_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(List o) {
            getUserAuthorizations_result result = new getUserAuthorizations_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getUserAuthorizations_result result = new getUserAuthorizations_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getUserAuthorizations_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.getUserAuthorizations(args.login, args.user,resultHandler);
      }
    }

    public static class grantSystemPermission extends org.apache.thrift.AsyncProcessFunction {
      public grantSystemPermission() {
        super("grantSystemPermission");
      }

      public grantSystemPermission_args getEmptyArgsInstance() {
        return new grantSystemPermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            grantSystemPermission_result result = new grantSystemPermission_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            grantSystemPermission_result result = new grantSystemPermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grantSystemPermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.grantSystemPermission(args.login, args.user, args.perm,resultHandler);
      }
    }

    public static class grantTablePermission extends org.apache.thrift.AsyncProcessFunction {
      public grantTablePermission() {
        super("grantTablePermission");
      }

      public grantTablePermission_args getEmptyArgsInstance() {
        return new grantTablePermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            grantTablePermission_result result = new grantTablePermission_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            grantTablePermission_result result = new grantTablePermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grantTablePermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.grantTablePermission(args.login, args.user, args.table, args.perm,resultHandler);
      }
    }

    public static class hasSystemPermission extends org.apache.thrift.AsyncProcessFunction {
      public hasSystemPermission() {
        super("hasSystemPermission");
      }

      public hasSystemPermission_args getEmptyArgsInstance() {
        return new hasSystemPermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            hasSystemPermission_result result = new hasSystemPermission_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            hasSystemPermission_result result = new hasSystemPermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, hasSystemPermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.hasSystemPermission(args.login, args.user, args.perm,resultHandler);
      }
    }

    public static class hasTablePermission extends org.apache.thrift.AsyncProcessFunction {
      public hasTablePermission() {
        super("hasTablePermission");
      }

      public hasTablePermission_args getEmptyArgsInstance() {
        return new hasTablePermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            hasTablePermission_result result = new hasTablePermission_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            hasTablePermission_result result = new hasTablePermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, hasTablePermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.hasTablePermission(args.login, args.user, args.table, args.perm,resultHandler);
      }
    }

    public static class listLocalUsers extends org.apache.thrift.AsyncProcessFunction> {
      public listLocalUsers() {
        super("listLocalUsers");
      }

      public listLocalUsers_args getEmptyArgsInstance() {
        return new listLocalUsers_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Set o) {
            listLocalUsers_result result = new listLocalUsers_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            listLocalUsers_result result = new listLocalUsers_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, listLocalUsers_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.listLocalUsers(args.login,resultHandler);
      }
    }

    public static class revokeSystemPermission extends org.apache.thrift.AsyncProcessFunction {
      public revokeSystemPermission() {
        super("revokeSystemPermission");
      }

      public revokeSystemPermission_args getEmptyArgsInstance() {
        return new revokeSystemPermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            revokeSystemPermission_result result = new revokeSystemPermission_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            revokeSystemPermission_result result = new revokeSystemPermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, revokeSystemPermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.revokeSystemPermission(args.login, args.user, args.perm,resultHandler);
      }
    }

    public static class revokeTablePermission extends org.apache.thrift.AsyncProcessFunction {
      public revokeTablePermission() {
        super("revokeTablePermission");
      }

      public revokeTablePermission_args getEmptyArgsInstance() {
        return new revokeTablePermission_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            revokeTablePermission_result result = new revokeTablePermission_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            revokeTablePermission_result result = new revokeTablePermission_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, revokeTablePermission_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.revokeTablePermission(args.login, args.user, args.table, args.perm,resultHandler);
      }
    }

    public static class createBatchScanner extends org.apache.thrift.AsyncProcessFunction {
      public createBatchScanner() {
        super("createBatchScanner");
      }

      public createBatchScanner_args getEmptyArgsInstance() {
        return new createBatchScanner_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(String o) {
            createBatchScanner_result result = new createBatchScanner_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createBatchScanner_result result = new createBatchScanner_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createBatchScanner_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createBatchScanner(args.login, args.tableName, args.options,resultHandler);
      }
    }

    public static class createScanner extends org.apache.thrift.AsyncProcessFunction {
      public createScanner() {
        super("createScanner");
      }

      public createScanner_args getEmptyArgsInstance() {
        return new createScanner_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(String o) {
            createScanner_result result = new createScanner_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createScanner_result result = new createScanner_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createScanner_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createScanner(args.login, args.tableName, args.options,resultHandler);
      }
    }

    public static class hasNext extends org.apache.thrift.AsyncProcessFunction {
      public hasNext() {
        super("hasNext");
      }

      public hasNext_args getEmptyArgsInstance() {
        return new hasNext_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Boolean o) {
            hasNext_result result = new hasNext_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            hasNext_result result = new hasNext_result();
            if (e instanceof UnknownScanner) {
                        result.ouch1 = (UnknownScanner) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, hasNext_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.hasNext(args.scanner,resultHandler);
      }
    }

    public static class nextEntry extends org.apache.thrift.AsyncProcessFunction {
      public nextEntry() {
        super("nextEntry");
      }

      public nextEntry_args getEmptyArgsInstance() {
        return new nextEntry_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(KeyValueAndPeek o) {
            nextEntry_result result = new nextEntry_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            nextEntry_result result = new nextEntry_result();
            if (e instanceof NoMoreEntriesException) {
                        result.ouch1 = (NoMoreEntriesException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof UnknownScanner) {
                        result.ouch2 = (UnknownScanner) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch3 = (AccumuloSecurityException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, nextEntry_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.nextEntry(args.scanner,resultHandler);
      }
    }

    public static class nextK extends org.apache.thrift.AsyncProcessFunction {
      public nextK() {
        super("nextK");
      }

      public nextK_args getEmptyArgsInstance() {
        return new nextK_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(ScanResult o) {
            nextK_result result = new nextK_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            nextK_result result = new nextK_result();
            if (e instanceof NoMoreEntriesException) {
                        result.ouch1 = (NoMoreEntriesException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof UnknownScanner) {
                        result.ouch2 = (UnknownScanner) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch3 = (AccumuloSecurityException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, nextK_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.nextK(args.scanner, args.k,resultHandler);
      }
    }

    public static class closeScanner extends org.apache.thrift.AsyncProcessFunction {
      public closeScanner() {
        super("closeScanner");
      }

      public closeScanner_args getEmptyArgsInstance() {
        return new closeScanner_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            closeScanner_result result = new closeScanner_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            closeScanner_result result = new closeScanner_result();
            if (e instanceof UnknownScanner) {
                        result.ouch1 = (UnknownScanner) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, closeScanner_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.closeScanner(args.scanner,resultHandler);
      }
    }

    public static class updateAndFlush extends org.apache.thrift.AsyncProcessFunction {
      public updateAndFlush() {
        super("updateAndFlush");
      }

      public updateAndFlush_args getEmptyArgsInstance() {
        return new updateAndFlush_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            updateAndFlush_result result = new updateAndFlush_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            updateAndFlush_result result = new updateAndFlush_result();
            if (e instanceof AccumuloException) {
                        result.outch1 = (AccumuloException) e;
                        result.setOutch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof MutationsRejectedException) {
                        result.ouch4 = (MutationsRejectedException) e;
                        result.setOuch4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, updateAndFlush_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.updateAndFlush(args.login, args.tableName, args.cells,resultHandler);
      }
    }

    public static class createWriter extends org.apache.thrift.AsyncProcessFunction {
      public createWriter() {
        super("createWriter");
      }

      public createWriter_args getEmptyArgsInstance() {
        return new createWriter_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(String o) {
            createWriter_result result = new createWriter_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createWriter_result result = new createWriter_result();
            if (e instanceof AccumuloException) {
                        result.outch1 = (AccumuloException) e;
                        result.setOutch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createWriter_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createWriter(args.login, args.tableName, args.opts,resultHandler);
      }
    }

    public static class update extends org.apache.thrift.AsyncProcessFunction {
      public update() {
        super("update");
      }

      public update_args getEmptyArgsInstance() {
        return new update_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
          }
          public void onError(Exception e) {
          }
        };
      }

      protected boolean isOneway() {
        return true;
      }

      public void start(I iface, update_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.update(args.writer, args.cells,resultHandler);
      }
    }

    public static class flush extends org.apache.thrift.AsyncProcessFunction {
      public flush() {
        super("flush");
      }

      public flush_args getEmptyArgsInstance() {
        return new flush_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            flush_result result = new flush_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            flush_result result = new flush_result();
            if (e instanceof UnknownWriter) {
                        result.ouch1 = (UnknownWriter) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof MutationsRejectedException) {
                        result.ouch2 = (MutationsRejectedException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, flush_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.flush(args.writer,resultHandler);
      }
    }

    public static class closeWriter extends org.apache.thrift.AsyncProcessFunction {
      public closeWriter() {
        super("closeWriter");
      }

      public closeWriter_args getEmptyArgsInstance() {
        return new closeWriter_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            closeWriter_result result = new closeWriter_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            closeWriter_result result = new closeWriter_result();
            if (e instanceof UnknownWriter) {
                        result.ouch1 = (UnknownWriter) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof MutationsRejectedException) {
                        result.ouch2 = (MutationsRejectedException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, closeWriter_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.closeWriter(args.writer,resultHandler);
      }
    }

    public static class updateRowConditionally extends org.apache.thrift.AsyncProcessFunction {
      public updateRowConditionally() {
        super("updateRowConditionally");
      }

      public updateRowConditionally_args getEmptyArgsInstance() {
        return new updateRowConditionally_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(ConditionalStatus o) {
            updateRowConditionally_result result = new updateRowConditionally_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            updateRowConditionally_result result = new updateRowConditionally_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, updateRowConditionally_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.updateRowConditionally(args.login, args.tableName, args.row, args.updates,resultHandler);
      }
    }

    public static class createConditionalWriter extends org.apache.thrift.AsyncProcessFunction {
      public createConditionalWriter() {
        super("createConditionalWriter");
      }

      public createConditionalWriter_args getEmptyArgsInstance() {
        return new createConditionalWriter_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(String o) {
            createConditionalWriter_result result = new createConditionalWriter_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            createConditionalWriter_result result = new createConditionalWriter_result();
            if (e instanceof AccumuloException) {
                        result.ouch1 = (AccumuloException) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch2 = (AccumuloSecurityException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof TableNotFoundException) {
                        result.ouch3 = (TableNotFoundException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, createConditionalWriter_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.createConditionalWriter(args.login, args.tableName, args.options,resultHandler);
      }
    }

    public static class updateRowsConditionally extends org.apache.thrift.AsyncProcessFunction> {
      public updateRowsConditionally() {
        super("updateRowsConditionally");
      }

      public updateRowsConditionally_args getEmptyArgsInstance() {
        return new updateRowsConditionally_args();
      }

      public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback>() { 
          public void onComplete(Map o) {
            updateRowsConditionally_result result = new updateRowsConditionally_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            updateRowsConditionally_result result = new updateRowsConditionally_result();
            if (e instanceof UnknownWriter) {
                        result.ouch1 = (UnknownWriter) e;
                        result.setOuch1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloException) {
                        result.ouch2 = (AccumuloException) e;
                        result.setOuch2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof AccumuloSecurityException) {
                        result.ouch3 = (AccumuloSecurityException) e;
                        result.setOuch3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, updateRowsConditionally_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException {
        iface.updateRowsConditionally(args.conditionalWriter, args.updates,resultHandler);
      }
    }

    public static class closeConditionalWriter extends org.apache.thrift.AsyncProcessFunction {
      public closeConditionalWriter() {
        super("closeConditionalWriter");
      }

      public closeConditionalWriter_args getEmptyArgsInstance() {
        return new closeConditionalWriter_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Void o) {
            closeConditionalWriter_result result = new closeConditionalWriter_result();
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            closeConditionalWriter_result result = new closeConditionalWriter_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, closeConditionalWriter_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.closeConditionalWriter(args.conditionalWriter,resultHandler);
      }
    }

    public static class getRowRange extends org.apache.thrift.AsyncProcessFunction {
      public getRowRange() {
        super("getRowRange");
      }

      public getRowRange_args getEmptyArgsInstance() {
        return new getRowRange_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Range o) {
            getRowRange_result result = new getRowRange_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getRowRange_result result = new getRowRange_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getRowRange_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getRowRange(args.row,resultHandler);
      }
    }

    public static class getFollowing extends org.apache.thrift.AsyncProcessFunction {
      public getFollowing() {
        super("getFollowing");
      }

      public getFollowing_args getEmptyArgsInstance() {
        return new getFollowing_args();
      }

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Key o) {
            getFollowing_result result = new getFollowing_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getFollowing_result result = new getFollowing_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getFollowing_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getFollowing(args.key, args.part,resultHandler);
      }
    }

  }

  public static class login_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("login_args");

    private static final org.apache.thrift.protocol.TField PRINCIPAL_FIELD_DESC = new org.apache.thrift.protocol.TField("principal", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField LOGIN_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("loginProperties", org.apache.thrift.protocol.TType.MAP, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new login_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new login_argsTupleSchemeFactory());
    }

    public String principal; // required
    public Map loginProperties; // 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 {
      PRINCIPAL((short)1, "principal"),
      LOGIN_PROPERTIES((short)2, "loginProperties");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PRINCIPAL
            return PRINCIPAL;
          case 2: // LOGIN_PROPERTIES
            return LOGIN_PROPERTIES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PRINCIPAL, new org.apache.thrift.meta_data.FieldMetaData("principal", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.LOGIN_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("loginProperties", 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))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(login_args.class, metaDataMap);
    }

    public login_args() {
    }

    public login_args(
      String principal,
      Map loginProperties)
    {
      this();
      this.principal = principal;
      this.loginProperties = loginProperties;
    }

    /**
     * Performs a deep copy on other.
     */
    public login_args(login_args other) {
      if (other.isSetPrincipal()) {
        this.principal = other.principal;
      }
      if (other.isSetLoginProperties()) {
        Map __this__loginProperties = new HashMap(other.loginProperties);
        this.loginProperties = __this__loginProperties;
      }
    }

    public login_args deepCopy() {
      return new login_args(this);
    }

    @Override
    public void clear() {
      this.principal = null;
      this.loginProperties = null;
    }

    public String getPrincipal() {
      return this.principal;
    }

    public login_args setPrincipal(String principal) {
      this.principal = principal;
      return this;
    }

    public void unsetPrincipal() {
      this.principal = null;
    }

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

    public void setPrincipalIsSet(boolean value) {
      if (!value) {
        this.principal = null;
      }
    }

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

    public void putToLoginProperties(String key, String val) {
      if (this.loginProperties == null) {
        this.loginProperties = new HashMap();
      }
      this.loginProperties.put(key, val);
    }

    public Map getLoginProperties() {
      return this.loginProperties;
    }

    public login_args setLoginProperties(Map loginProperties) {
      this.loginProperties = loginProperties;
      return this;
    }

    public void unsetLoginProperties() {
      this.loginProperties = null;
    }

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

    public void setLoginPropertiesIsSet(boolean value) {
      if (!value) {
        this.loginProperties = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PRINCIPAL:
        if (value == null) {
          unsetPrincipal();
        } else {
          setPrincipal((String)value);
        }
        break;

      case LOGIN_PROPERTIES:
        if (value == null) {
          unsetLoginProperties();
        } else {
          setLoginProperties((Map)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PRINCIPAL:
        return getPrincipal();

      case LOGIN_PROPERTIES:
        return getLoginProperties();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case PRINCIPAL:
        return isSetPrincipal();
      case LOGIN_PROPERTIES:
        return isSetLoginProperties();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof login_args)
        return this.equals((login_args)that);
      return false;
    }

    public boolean equals(login_args that) {
      if (that == null)
        return false;

      boolean this_present_principal = true && this.isSetPrincipal();
      boolean that_present_principal = true && that.isSetPrincipal();
      if (this_present_principal || that_present_principal) {
        if (!(this_present_principal && that_present_principal))
          return false;
        if (!this.principal.equals(that.principal))
          return false;
      }

      boolean this_present_loginProperties = true && this.isSetLoginProperties();
      boolean that_present_loginProperties = true && that.isSetLoginProperties();
      if (this_present_loginProperties || that_present_loginProperties) {
        if (!(this_present_loginProperties && that_present_loginProperties))
          return false;
        if (!this.loginProperties.equals(that.loginProperties))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetPrincipal()).compareTo(other.isSetPrincipal());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal, other.principal);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetLoginProperties()).compareTo(other.isSetLoginProperties());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLoginProperties()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginProperties, other.loginProperties);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("login_args(");
      boolean first = true;

      sb.append("principal:");
      if (this.principal == null) {
        sb.append("null");
      } else {
        sb.append(this.principal);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("loginProperties:");
      if (this.loginProperties == null) {
        sb.append("null");
      } else {
        sb.append(this.loginProperties);
      }
      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, 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 login_argsStandardSchemeFactory implements SchemeFactory {
      public login_argsStandardScheme getScheme() {
        return new login_argsStandardScheme();
      }
    }

    private static class login_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, login_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 1: // PRINCIPAL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.principal = iprot.readString();
                struct.setPrincipalIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // LOGIN_PROPERTIES
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map164 = iprot.readMapBegin();
                  struct.loginProperties = new HashMap(2*_map164.size);
                  for (int _i165 = 0; _i165 < _map164.size; ++_i165)
                  {
                    String _key166;
                    String _val167;
                    _key166 = iprot.readString();
                    _val167 = iprot.readString();
                    struct.loginProperties.put(_key166, _val167);
                  }
                  iprot.readMapEnd();
                }
                struct.setLoginPropertiesIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.principal != null) {
          oprot.writeFieldBegin(PRINCIPAL_FIELD_DESC);
          oprot.writeString(struct.principal);
          oprot.writeFieldEnd();
        }
        if (struct.loginProperties != null) {
          oprot.writeFieldBegin(LOGIN_PROPERTIES_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.loginProperties.size()));
            for (Map.Entry _iter168 : struct.loginProperties.entrySet())
            {
              oprot.writeString(_iter168.getKey());
              oprot.writeString(_iter168.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class login_argsTupleSchemeFactory implements SchemeFactory {
      public login_argsTupleScheme getScheme() {
        return new login_argsTupleScheme();
      }
    }

    private static class login_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, login_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetPrincipal()) {
          optionals.set(0);
        }
        if (struct.isSetLoginProperties()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetPrincipal()) {
          oprot.writeString(struct.principal);
        }
        if (struct.isSetLoginProperties()) {
          {
            oprot.writeI32(struct.loginProperties.size());
            for (Map.Entry _iter169 : struct.loginProperties.entrySet())
            {
              oprot.writeString(_iter169.getKey());
              oprot.writeString(_iter169.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, login_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.principal = iprot.readString();
          struct.setPrincipalIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TMap _map170 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.loginProperties = new HashMap(2*_map170.size);
            for (int _i171 = 0; _i171 < _map170.size; ++_i171)
            {
              String _key172;
              String _val173;
              _key172 = iprot.readString();
              _val173 = iprot.readString();
              struct.loginProperties.put(_key172, _val173);
            }
          }
          struct.setLoginPropertiesIsSet(true);
        }
      }
    }

  }

  public static class login_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("login_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new login_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new login_resultTupleSchemeFactory());
    }

    public ByteBuffer success; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH2((short)1, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(login_result.class, metaDataMap);
    }

    public login_result() {
    }

    public login_result(
      ByteBuffer success,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public login_result(login_result other) {
      if (other.isSetSuccess()) {
        this.success = org.apache.thrift.TBaseHelper.copyBinary(other.success);
;
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public login_result deepCopy() {
      return new login_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch2 = null;
    }

    public byte[] getSuccess() {
      setSuccess(org.apache.thrift.TBaseHelper.rightSize(success));
      return success == null ? null : success.array();
    }

    public ByteBuffer bufferForSuccess() {
      return success;
    }

    public login_result setSuccess(byte[] success) {
      setSuccess(success == null ? (ByteBuffer)null : ByteBuffer.wrap(success));
      return this;
    }

    public login_result setSuccess(ByteBuffer 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;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public login_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ByteBuffer)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof login_result)
        return this.equals((login_result)that);
      return false;
    }

    public boolean equals(login_result that) {
      if (that == null)
        return false;

      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_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("login_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.success, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 login_resultStandardSchemeFactory implements SchemeFactory {
      public login_resultStandardScheme getScheme() {
        return new login_resultStandardScheme();
      }
    }

    private static class login_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, login_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.STRING) {
                struct.success = iprot.readBinary();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBinary(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class login_resultTupleSchemeFactory implements SchemeFactory {
      public login_resultTupleScheme getScheme() {
        return new login_resultTupleScheme();
      }
    }

    private static class login_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, login_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBinary(struct.success);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, login_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBinary();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class addConstraint_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addConstraint_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField CONSTRAINT_CLASS_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("constraintClassName", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new addConstraint_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new addConstraint_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String constraintClassName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      CONSTRAINT_CLASS_NAME((short)3, "constraintClassName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // CONSTRAINT_CLASS_NAME
            return CONSTRAINT_CLASS_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CONSTRAINT_CLASS_NAME, new org.apache.thrift.meta_data.FieldMetaData("constraintClassName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addConstraint_args.class, metaDataMap);
    }

    public addConstraint_args() {
    }

    public addConstraint_args(
      ByteBuffer login,
      String tableName,
      String constraintClassName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.constraintClassName = constraintClassName;
    }

    /**
     * Performs a deep copy on other.
     */
    public addConstraint_args(addConstraint_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetConstraintClassName()) {
        this.constraintClassName = other.constraintClassName;
      }
    }

    public addConstraint_args deepCopy() {
      return new addConstraint_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.constraintClassName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public addConstraint_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public addConstraint_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public addConstraint_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getConstraintClassName() {
      return this.constraintClassName;
    }

    public addConstraint_args setConstraintClassName(String constraintClassName) {
      this.constraintClassName = constraintClassName;
      return this;
    }

    public void unsetConstraintClassName() {
      this.constraintClassName = null;
    }

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

    public void setConstraintClassNameIsSet(boolean value) {
      if (!value) {
        this.constraintClassName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case CONSTRAINT_CLASS_NAME:
        if (value == null) {
          unsetConstraintClassName();
        } else {
          setConstraintClassName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case CONSTRAINT_CLASS_NAME:
        return getConstraintClassName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case CONSTRAINT_CLASS_NAME:
        return isSetConstraintClassName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addConstraint_args)
        return this.equals((addConstraint_args)that);
      return false;
    }

    public boolean equals(addConstraint_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_constraintClassName = true && this.isSetConstraintClassName();
      boolean that_present_constraintClassName = true && that.isSetConstraintClassName();
      if (this_present_constraintClassName || that_present_constraintClassName) {
        if (!(this_present_constraintClassName && that_present_constraintClassName))
          return false;
        if (!this.constraintClassName.equals(that.constraintClassName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConstraintClassName()).compareTo(other.isSetConstraintClassName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConstraintClassName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.constraintClassName, other.constraintClassName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addConstraint_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("constraintClassName:");
      if (this.constraintClassName == null) {
        sb.append("null");
      } else {
        sb.append(this.constraintClassName);
      }
      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, 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 addConstraint_argsStandardSchemeFactory implements SchemeFactory {
      public addConstraint_argsStandardScheme getScheme() {
        return new addConstraint_argsStandardScheme();
      }
    }

    private static class addConstraint_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, addConstraint_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // CONSTRAINT_CLASS_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.constraintClassName = iprot.readString();
                struct.setConstraintClassNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.constraintClassName != null) {
          oprot.writeFieldBegin(CONSTRAINT_CLASS_NAME_FIELD_DESC);
          oprot.writeString(struct.constraintClassName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class addConstraint_argsTupleSchemeFactory implements SchemeFactory {
      public addConstraint_argsTupleScheme getScheme() {
        return new addConstraint_argsTupleScheme();
      }
    }

    private static class addConstraint_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, addConstraint_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetConstraintClassName()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetConstraintClassName()) {
          oprot.writeString(struct.constraintClassName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, addConstraint_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.constraintClassName = iprot.readString();
          struct.setConstraintClassNameIsSet(true);
        }
      }
    }

  }

  public static class addConstraint_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addConstraint_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new addConstraint_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new addConstraint_resultTupleSchemeFactory());
    }

    public int success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addConstraint_result.class, metaDataMap);
    }

    public addConstraint_result() {
    }

    public addConstraint_result(
      int success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public addConstraint_result(addConstraint_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public addConstraint_result deepCopy() {
      return new addConstraint_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public int getSuccess() {
      return this.success;
    }

    public addConstraint_result setSuccess(int success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public addConstraint_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public addConstraint_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public addConstraint_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Integer)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Integer.valueOf(getSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addConstraint_result)
        return this.equals((addConstraint_result)that);
      return false;
    }

    public boolean equals(addConstraint_result that) {
      if (that == null)
        return false;

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

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addConstraint_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 addConstraint_resultStandardSchemeFactory implements SchemeFactory {
      public addConstraint_resultStandardScheme getScheme() {
        return new addConstraint_resultStandardScheme();
      }
    }

    private static class addConstraint_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, addConstraint_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.I32) {
                struct.success = iprot.readI32();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class addConstraint_resultTupleSchemeFactory implements SchemeFactory {
      public addConstraint_resultTupleScheme getScheme() {
        return new addConstraint_resultTupleScheme();
      }
    }

    private static class addConstraint_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, addConstraint_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, addConstraint_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readI32();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class addSplits_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addSplits_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField SPLITS_FIELD_DESC = new org.apache.thrift.protocol.TField("splits", org.apache.thrift.protocol.TType.SET, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new addSplits_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new addSplits_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public Set splits; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      SPLITS((short)3, "splits");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // SPLITS
            return SPLITS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SPLITS, new org.apache.thrift.meta_data.FieldMetaData("splits", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addSplits_args.class, metaDataMap);
    }

    public addSplits_args() {
    }

    public addSplits_args(
      ByteBuffer login,
      String tableName,
      Set splits)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.splits = splits;
    }

    /**
     * Performs a deep copy on other.
     */
    public addSplits_args(addSplits_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetSplits()) {
        Set __this__splits = new HashSet(other.splits);
        this.splits = __this__splits;
      }
    }

    public addSplits_args deepCopy() {
      return new addSplits_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.splits = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public addSplits_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public addSplits_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public addSplits_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

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

    public java.util.Iterator getSplitsIterator() {
      return (this.splits == null) ? null : this.splits.iterator();
    }

    public void addToSplits(ByteBuffer elem) {
      if (this.splits == null) {
        this.splits = new HashSet();
      }
      this.splits.add(elem);
    }

    public Set getSplits() {
      return this.splits;
    }

    public addSplits_args setSplits(Set splits) {
      this.splits = splits;
      return this;
    }

    public void unsetSplits() {
      this.splits = null;
    }

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

    public void setSplitsIsSet(boolean value) {
      if (!value) {
        this.splits = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case SPLITS:
        if (value == null) {
          unsetSplits();
        } else {
          setSplits((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case SPLITS:
        return getSplits();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case SPLITS:
        return isSetSplits();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addSplits_args)
        return this.equals((addSplits_args)that);
      return false;
    }

    public boolean equals(addSplits_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_splits = true && this.isSetSplits();
      boolean that_present_splits = true && that.isSetSplits();
      if (this_present_splits || that_present_splits) {
        if (!(this_present_splits && that_present_splits))
          return false;
        if (!this.splits.equals(that.splits))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSplits()).compareTo(other.isSetSplits());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSplits()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.splits, other.splits);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addSplits_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("splits:");
      if (this.splits == null) {
        sb.append("null");
      } else {
        sb.append(this.splits);
      }
      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, 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 addSplits_argsStandardSchemeFactory implements SchemeFactory {
      public addSplits_argsStandardScheme getScheme() {
        return new addSplits_argsStandardScheme();
      }
    }

    private static class addSplits_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, addSplits_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SPLITS
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set174 = iprot.readSetBegin();
                  struct.splits = new HashSet(2*_set174.size);
                  for (int _i175 = 0; _i175 < _set174.size; ++_i175)
                  {
                    ByteBuffer _elem176;
                    _elem176 = iprot.readBinary();
                    struct.splits.add(_elem176);
                  }
                  iprot.readSetEnd();
                }
                struct.setSplitsIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.splits != null) {
          oprot.writeFieldBegin(SPLITS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.splits.size()));
            for (ByteBuffer _iter177 : struct.splits)
            {
              oprot.writeBinary(_iter177);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class addSplits_argsTupleSchemeFactory implements SchemeFactory {
      public addSplits_argsTupleScheme getScheme() {
        return new addSplits_argsTupleScheme();
      }
    }

    private static class addSplits_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, addSplits_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetSplits()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetSplits()) {
          {
            oprot.writeI32(struct.splits.size());
            for (ByteBuffer _iter178 : struct.splits)
            {
              oprot.writeBinary(_iter178);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, addSplits_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TSet _set179 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.splits = new HashSet(2*_set179.size);
            for (int _i180 = 0; _i180 < _set179.size; ++_i180)
            {
              ByteBuffer _elem181;
              _elem181 = iprot.readBinary();
              struct.splits.add(_elem181);
            }
          }
          struct.setSplitsIsSet(true);
        }
      }
    }

  }

  public static class addSplits_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addSplits_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new addSplits_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new addSplits_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addSplits_result.class, metaDataMap);
    }

    public addSplits_result() {
    }

    public addSplits_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public addSplits_result(addSplits_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public addSplits_result deepCopy() {
      return new addSplits_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public addSplits_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public addSplits_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public addSplits_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addSplits_result)
        return this.equals((addSplits_result)that);
      return false;
    }

    public boolean equals(addSplits_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addSplits_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 addSplits_resultStandardSchemeFactory implements SchemeFactory {
      public addSplits_resultStandardScheme getScheme() {
        return new addSplits_resultStandardScheme();
      }
    }

    private static class addSplits_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, addSplits_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class addSplits_resultTupleSchemeFactory implements SchemeFactory {
      public addSplits_resultTupleScheme getScheme() {
        return new addSplits_resultTupleScheme();
      }
    }

    private static class addSplits_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, addSplits_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, addSplits_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class attachIterator_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("attachIterator_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField SETTING_FIELD_DESC = new org.apache.thrift.protocol.TField("setting", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField SCOPES_FIELD_DESC = new org.apache.thrift.protocol.TField("scopes", org.apache.thrift.protocol.TType.SET, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new attachIterator_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new attachIterator_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public IteratorSetting setting; // required
    public Set scopes; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      SETTING((short)3, "setting"),
      SCOPES((short)4, "scopes");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // SETTING
            return SETTING;
          case 4: // SCOPES
            return SCOPES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SETTING, new org.apache.thrift.meta_data.FieldMetaData("setting", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, IteratorSetting.class)));
      tmpMap.put(_Fields.SCOPES, new org.apache.thrift.meta_data.FieldMetaData("scopes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, IteratorScope.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(attachIterator_args.class, metaDataMap);
    }

    public attachIterator_args() {
    }

    public attachIterator_args(
      ByteBuffer login,
      String tableName,
      IteratorSetting setting,
      Set scopes)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.setting = setting;
      this.scopes = scopes;
    }

    /**
     * Performs a deep copy on other.
     */
    public attachIterator_args(attachIterator_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetSetting()) {
        this.setting = new IteratorSetting(other.setting);
      }
      if (other.isSetScopes()) {
        Set __this__scopes = new HashSet(other.scopes.size());
        for (IteratorScope other_element : other.scopes) {
          __this__scopes.add(other_element);
        }
        this.scopes = __this__scopes;
      }
    }

    public attachIterator_args deepCopy() {
      return new attachIterator_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.setting = null;
      this.scopes = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public attachIterator_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public attachIterator_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public attachIterator_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public IteratorSetting getSetting() {
      return this.setting;
    }

    public attachIterator_args setSetting(IteratorSetting setting) {
      this.setting = setting;
      return this;
    }

    public void unsetSetting() {
      this.setting = null;
    }

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

    public void setSettingIsSet(boolean value) {
      if (!value) {
        this.setting = null;
      }
    }

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

    public java.util.Iterator getScopesIterator() {
      return (this.scopes == null) ? null : this.scopes.iterator();
    }

    public void addToScopes(IteratorScope elem) {
      if (this.scopes == null) {
        this.scopes = new HashSet();
      }
      this.scopes.add(elem);
    }

    public Set getScopes() {
      return this.scopes;
    }

    public attachIterator_args setScopes(Set scopes) {
      this.scopes = scopes;
      return this;
    }

    public void unsetScopes() {
      this.scopes = null;
    }

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

    public void setScopesIsSet(boolean value) {
      if (!value) {
        this.scopes = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case SETTING:
        if (value == null) {
          unsetSetting();
        } else {
          setSetting((IteratorSetting)value);
        }
        break;

      case SCOPES:
        if (value == null) {
          unsetScopes();
        } else {
          setScopes((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case SETTING:
        return getSetting();

      case SCOPES:
        return getScopes();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case SETTING:
        return isSetSetting();
      case SCOPES:
        return isSetScopes();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof attachIterator_args)
        return this.equals((attachIterator_args)that);
      return false;
    }

    public boolean equals(attachIterator_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_setting = true && this.isSetSetting();
      boolean that_present_setting = true && that.isSetSetting();
      if (this_present_setting || that_present_setting) {
        if (!(this_present_setting && that_present_setting))
          return false;
        if (!this.setting.equals(that.setting))
          return false;
      }

      boolean this_present_scopes = true && this.isSetScopes();
      boolean that_present_scopes = true && that.isSetScopes();
      if (this_present_scopes || that_present_scopes) {
        if (!(this_present_scopes && that_present_scopes))
          return false;
        if (!this.scopes.equals(that.scopes))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSetting()).compareTo(other.isSetSetting());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSetting()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.setting, other.setting);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetScopes()).compareTo(other.isSetScopes());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScopes()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scopes, other.scopes);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("attachIterator_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("setting:");
      if (this.setting == null) {
        sb.append("null");
      } else {
        sb.append(this.setting);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scopes:");
      if (this.scopes == null) {
        sb.append("null");
      } else {
        sb.append(this.scopes);
      }
      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 (setting != null) {
        setting.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, 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 attachIterator_argsStandardSchemeFactory implements SchemeFactory {
      public attachIterator_argsStandardScheme getScheme() {
        return new attachIterator_argsStandardScheme();
      }
    }

    private static class attachIterator_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, attachIterator_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SETTING
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.setting = new IteratorSetting();
                struct.setting.read(iprot);
                struct.setSettingIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // SCOPES
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set182 = iprot.readSetBegin();
                  struct.scopes = new HashSet(2*_set182.size);
                  for (int _i183 = 0; _i183 < _set182.size; ++_i183)
                  {
                    IteratorScope _elem184;
                    _elem184 = IteratorScope.findByValue(iprot.readI32());
                    struct.scopes.add(_elem184);
                  }
                  iprot.readSetEnd();
                }
                struct.setScopesIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.setting != null) {
          oprot.writeFieldBegin(SETTING_FIELD_DESC);
          struct.setting.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.scopes != null) {
          oprot.writeFieldBegin(SCOPES_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, struct.scopes.size()));
            for (IteratorScope _iter185 : struct.scopes)
            {
              oprot.writeI32(_iter185.getValue());
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class attachIterator_argsTupleSchemeFactory implements SchemeFactory {
      public attachIterator_argsTupleScheme getScheme() {
        return new attachIterator_argsTupleScheme();
      }
    }

    private static class attachIterator_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, attachIterator_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetSetting()) {
          optionals.set(2);
        }
        if (struct.isSetScopes()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetSetting()) {
          struct.setting.write(oprot);
        }
        if (struct.isSetScopes()) {
          {
            oprot.writeI32(struct.scopes.size());
            for (IteratorScope _iter186 : struct.scopes)
            {
              oprot.writeI32(_iter186.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, attachIterator_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.setting = new IteratorSetting();
          struct.setting.read(iprot);
          struct.setSettingIsSet(true);
        }
        if (incoming.get(3)) {
          {
            org.apache.thrift.protocol.TSet _set187 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
            struct.scopes = new HashSet(2*_set187.size);
            for (int _i188 = 0; _i188 < _set187.size; ++_i188)
            {
              IteratorScope _elem189;
              _elem189 = IteratorScope.findByValue(iprot.readI32());
              struct.scopes.add(_elem189);
            }
          }
          struct.setScopesIsSet(true);
        }
      }
    }

  }

  public static class attachIterator_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("attachIterator_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new attachIterator_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new attachIterator_resultTupleSchemeFactory());
    }

    public AccumuloSecurityException ouch1; // required
    public AccumuloException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(attachIterator_result.class, metaDataMap);
    }

    public attachIterator_result() {
    }

    public attachIterator_result(
      AccumuloSecurityException ouch1,
      AccumuloException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public attachIterator_result(attachIterator_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloSecurityException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public attachIterator_result deepCopy() {
      return new attachIterator_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloSecurityException getOuch1() {
      return this.ouch1;
    }

    public attachIterator_result setOuch1(AccumuloSecurityException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloException getOuch2() {
      return this.ouch2;
    }

    public attachIterator_result setOuch2(AccumuloException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public attachIterator_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloSecurityException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof attachIterator_result)
        return this.equals((attachIterator_result)that);
      return false;
    }

    public boolean equals(attachIterator_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("attachIterator_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 attachIterator_resultStandardSchemeFactory implements SchemeFactory {
      public attachIterator_resultStandardScheme getScheme() {
        return new attachIterator_resultStandardScheme();
      }
    }

    private static class attachIterator_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, attachIterator_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloSecurityException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class attachIterator_resultTupleSchemeFactory implements SchemeFactory {
      public attachIterator_resultTupleScheme getScheme() {
        return new attachIterator_resultTupleScheme();
      }
    }

    private static class attachIterator_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, attachIterator_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, attachIterator_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloSecurityException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class checkIteratorConflicts_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("checkIteratorConflicts_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField SETTING_FIELD_DESC = new org.apache.thrift.protocol.TField("setting", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField SCOPES_FIELD_DESC = new org.apache.thrift.protocol.TField("scopes", org.apache.thrift.protocol.TType.SET, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new checkIteratorConflicts_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new checkIteratorConflicts_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public IteratorSetting setting; // required
    public Set scopes; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      SETTING((short)3, "setting"),
      SCOPES((short)4, "scopes");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // SETTING
            return SETTING;
          case 4: // SCOPES
            return SCOPES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SETTING, new org.apache.thrift.meta_data.FieldMetaData("setting", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, IteratorSetting.class)));
      tmpMap.put(_Fields.SCOPES, new org.apache.thrift.meta_data.FieldMetaData("scopes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, IteratorScope.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(checkIteratorConflicts_args.class, metaDataMap);
    }

    public checkIteratorConflicts_args() {
    }

    public checkIteratorConflicts_args(
      ByteBuffer login,
      String tableName,
      IteratorSetting setting,
      Set scopes)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.setting = setting;
      this.scopes = scopes;
    }

    /**
     * Performs a deep copy on other.
     */
    public checkIteratorConflicts_args(checkIteratorConflicts_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetSetting()) {
        this.setting = new IteratorSetting(other.setting);
      }
      if (other.isSetScopes()) {
        Set __this__scopes = new HashSet(other.scopes.size());
        for (IteratorScope other_element : other.scopes) {
          __this__scopes.add(other_element);
        }
        this.scopes = __this__scopes;
      }
    }

    public checkIteratorConflicts_args deepCopy() {
      return new checkIteratorConflicts_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.setting = null;
      this.scopes = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public checkIteratorConflicts_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public checkIteratorConflicts_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public checkIteratorConflicts_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public IteratorSetting getSetting() {
      return this.setting;
    }

    public checkIteratorConflicts_args setSetting(IteratorSetting setting) {
      this.setting = setting;
      return this;
    }

    public void unsetSetting() {
      this.setting = null;
    }

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

    public void setSettingIsSet(boolean value) {
      if (!value) {
        this.setting = null;
      }
    }

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

    public java.util.Iterator getScopesIterator() {
      return (this.scopes == null) ? null : this.scopes.iterator();
    }

    public void addToScopes(IteratorScope elem) {
      if (this.scopes == null) {
        this.scopes = new HashSet();
      }
      this.scopes.add(elem);
    }

    public Set getScopes() {
      return this.scopes;
    }

    public checkIteratorConflicts_args setScopes(Set scopes) {
      this.scopes = scopes;
      return this;
    }

    public void unsetScopes() {
      this.scopes = null;
    }

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

    public void setScopesIsSet(boolean value) {
      if (!value) {
        this.scopes = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case SETTING:
        if (value == null) {
          unsetSetting();
        } else {
          setSetting((IteratorSetting)value);
        }
        break;

      case SCOPES:
        if (value == null) {
          unsetScopes();
        } else {
          setScopes((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case SETTING:
        return getSetting();

      case SCOPES:
        return getScopes();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case SETTING:
        return isSetSetting();
      case SCOPES:
        return isSetScopes();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof checkIteratorConflicts_args)
        return this.equals((checkIteratorConflicts_args)that);
      return false;
    }

    public boolean equals(checkIteratorConflicts_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_setting = true && this.isSetSetting();
      boolean that_present_setting = true && that.isSetSetting();
      if (this_present_setting || that_present_setting) {
        if (!(this_present_setting && that_present_setting))
          return false;
        if (!this.setting.equals(that.setting))
          return false;
      }

      boolean this_present_scopes = true && this.isSetScopes();
      boolean that_present_scopes = true && that.isSetScopes();
      if (this_present_scopes || that_present_scopes) {
        if (!(this_present_scopes && that_present_scopes))
          return false;
        if (!this.scopes.equals(that.scopes))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSetting()).compareTo(other.isSetSetting());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSetting()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.setting, other.setting);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetScopes()).compareTo(other.isSetScopes());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScopes()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scopes, other.scopes);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("checkIteratorConflicts_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("setting:");
      if (this.setting == null) {
        sb.append("null");
      } else {
        sb.append(this.setting);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scopes:");
      if (this.scopes == null) {
        sb.append("null");
      } else {
        sb.append(this.scopes);
      }
      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 (setting != null) {
        setting.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, 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 checkIteratorConflicts_argsStandardSchemeFactory implements SchemeFactory {
      public checkIteratorConflicts_argsStandardScheme getScheme() {
        return new checkIteratorConflicts_argsStandardScheme();
      }
    }

    private static class checkIteratorConflicts_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, checkIteratorConflicts_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SETTING
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.setting = new IteratorSetting();
                struct.setting.read(iprot);
                struct.setSettingIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // SCOPES
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set190 = iprot.readSetBegin();
                  struct.scopes = new HashSet(2*_set190.size);
                  for (int _i191 = 0; _i191 < _set190.size; ++_i191)
                  {
                    IteratorScope _elem192;
                    _elem192 = IteratorScope.findByValue(iprot.readI32());
                    struct.scopes.add(_elem192);
                  }
                  iprot.readSetEnd();
                }
                struct.setScopesIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.setting != null) {
          oprot.writeFieldBegin(SETTING_FIELD_DESC);
          struct.setting.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.scopes != null) {
          oprot.writeFieldBegin(SCOPES_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, struct.scopes.size()));
            for (IteratorScope _iter193 : struct.scopes)
            {
              oprot.writeI32(_iter193.getValue());
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class checkIteratorConflicts_argsTupleSchemeFactory implements SchemeFactory {
      public checkIteratorConflicts_argsTupleScheme getScheme() {
        return new checkIteratorConflicts_argsTupleScheme();
      }
    }

    private static class checkIteratorConflicts_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, checkIteratorConflicts_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetSetting()) {
          optionals.set(2);
        }
        if (struct.isSetScopes()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetSetting()) {
          struct.setting.write(oprot);
        }
        if (struct.isSetScopes()) {
          {
            oprot.writeI32(struct.scopes.size());
            for (IteratorScope _iter194 : struct.scopes)
            {
              oprot.writeI32(_iter194.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, checkIteratorConflicts_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.setting = new IteratorSetting();
          struct.setting.read(iprot);
          struct.setSettingIsSet(true);
        }
        if (incoming.get(3)) {
          {
            org.apache.thrift.protocol.TSet _set195 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
            struct.scopes = new HashSet(2*_set195.size);
            for (int _i196 = 0; _i196 < _set195.size; ++_i196)
            {
              IteratorScope _elem197;
              _elem197 = IteratorScope.findByValue(iprot.readI32());
              struct.scopes.add(_elem197);
            }
          }
          struct.setScopesIsSet(true);
        }
      }
    }

  }

  public static class checkIteratorConflicts_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("checkIteratorConflicts_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new checkIteratorConflicts_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new checkIteratorConflicts_resultTupleSchemeFactory());
    }

    public AccumuloSecurityException ouch1; // required
    public AccumuloException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(checkIteratorConflicts_result.class, metaDataMap);
    }

    public checkIteratorConflicts_result() {
    }

    public checkIteratorConflicts_result(
      AccumuloSecurityException ouch1,
      AccumuloException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public checkIteratorConflicts_result(checkIteratorConflicts_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloSecurityException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public checkIteratorConflicts_result deepCopy() {
      return new checkIteratorConflicts_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloSecurityException getOuch1() {
      return this.ouch1;
    }

    public checkIteratorConflicts_result setOuch1(AccumuloSecurityException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloException getOuch2() {
      return this.ouch2;
    }

    public checkIteratorConflicts_result setOuch2(AccumuloException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public checkIteratorConflicts_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloSecurityException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof checkIteratorConflicts_result)
        return this.equals((checkIteratorConflicts_result)that);
      return false;
    }

    public boolean equals(checkIteratorConflicts_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("checkIteratorConflicts_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 checkIteratorConflicts_resultStandardSchemeFactory implements SchemeFactory {
      public checkIteratorConflicts_resultStandardScheme getScheme() {
        return new checkIteratorConflicts_resultStandardScheme();
      }
    }

    private static class checkIteratorConflicts_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, checkIteratorConflicts_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloSecurityException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class checkIteratorConflicts_resultTupleSchemeFactory implements SchemeFactory {
      public checkIteratorConflicts_resultTupleScheme getScheme() {
        return new checkIteratorConflicts_resultTupleScheme();
      }
    }

    private static class checkIteratorConflicts_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, checkIteratorConflicts_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, checkIteratorConflicts_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloSecurityException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class clearLocatorCache_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clearLocatorCache_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new clearLocatorCache_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new clearLocatorCache_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(clearLocatorCache_args.class, metaDataMap);
    }

    public clearLocatorCache_args() {
    }

    public clearLocatorCache_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public clearLocatorCache_args(clearLocatorCache_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public clearLocatorCache_args deepCopy() {
      return new clearLocatorCache_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public clearLocatorCache_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public clearLocatorCache_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public clearLocatorCache_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof clearLocatorCache_args)
        return this.equals((clearLocatorCache_args)that);
      return false;
    }

    public boolean equals(clearLocatorCache_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("clearLocatorCache_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 clearLocatorCache_argsStandardSchemeFactory implements SchemeFactory {
      public clearLocatorCache_argsStandardScheme getScheme() {
        return new clearLocatorCache_argsStandardScheme();
      }
    }

    private static class clearLocatorCache_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, clearLocatorCache_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class clearLocatorCache_argsTupleSchemeFactory implements SchemeFactory {
      public clearLocatorCache_argsTupleScheme getScheme() {
        return new clearLocatorCache_argsTupleScheme();
      }
    }

    private static class clearLocatorCache_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, clearLocatorCache_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, clearLocatorCache_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class clearLocatorCache_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clearLocatorCache_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new clearLocatorCache_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new clearLocatorCache_resultTupleSchemeFactory());
    }

    public TableNotFoundException ouch1; // 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 {
      OUCH1((short)1, "ouch1");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(clearLocatorCache_result.class, metaDataMap);
    }

    public clearLocatorCache_result() {
    }

    public clearLocatorCache_result(
      TableNotFoundException ouch1)
    {
      this();
      this.ouch1 = ouch1;
    }

    /**
     * Performs a deep copy on other.
     */
    public clearLocatorCache_result(clearLocatorCache_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new TableNotFoundException(other.ouch1);
      }
    }

    public clearLocatorCache_result deepCopy() {
      return new clearLocatorCache_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
    }

    public TableNotFoundException getOuch1() {
      return this.ouch1;
    }

    public clearLocatorCache_result setOuch1(TableNotFoundException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof clearLocatorCache_result)
        return this.equals((clearLocatorCache_result)that);
      return false;
    }

    public boolean equals(clearLocatorCache_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("clearLocatorCache_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      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, 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 clearLocatorCache_resultStandardSchemeFactory implements SchemeFactory {
      public clearLocatorCache_resultStandardScheme getScheme() {
        return new clearLocatorCache_resultStandardScheme();
      }
    }

    private static class clearLocatorCache_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, clearLocatorCache_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new TableNotFoundException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class clearLocatorCache_resultTupleSchemeFactory implements SchemeFactory {
      public clearLocatorCache_resultTupleScheme getScheme() {
        return new clearLocatorCache_resultTupleScheme();
      }
    }

    private static class clearLocatorCache_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, clearLocatorCache_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, clearLocatorCache_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.ouch1 = new TableNotFoundException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
      }
    }

  }

  public static class cloneTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newTableName", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField FLUSH_FIELD_DESC = new org.apache.thrift.protocol.TField("flush", org.apache.thrift.protocol.TType.BOOL, (short)4);
    private static final org.apache.thrift.protocol.TField PROPERTIES_TO_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("propertiesToSet", org.apache.thrift.protocol.TType.MAP, (short)5);
    private static final org.apache.thrift.protocol.TField PROPERTIES_TO_EXCLUDE_FIELD_DESC = new org.apache.thrift.protocol.TField("propertiesToExclude", org.apache.thrift.protocol.TType.SET, (short)6);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new cloneTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new cloneTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String newTableName; // required
    public boolean flush; // required
    public Map propertiesToSet; // required
    public Set propertiesToExclude; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      NEW_TABLE_NAME((short)3, "newTableName"),
      FLUSH((short)4, "flush"),
      PROPERTIES_TO_SET((short)5, "propertiesToSet"),
      PROPERTIES_TO_EXCLUDE((short)6, "propertiesToExclude");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // NEW_TABLE_NAME
            return NEW_TABLE_NAME;
          case 4: // FLUSH
            return FLUSH;
          case 5: // PROPERTIES_TO_SET
            return PROPERTIES_TO_SET;
          case 6: // PROPERTIES_TO_EXCLUDE
            return PROPERTIES_TO_EXCLUDE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __FLUSH_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("newTableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FLUSH, new org.apache.thrift.meta_data.FieldMetaData("flush", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.PROPERTIES_TO_SET, new org.apache.thrift.meta_data.FieldMetaData("propertiesToSet", 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.PROPERTIES_TO_EXCLUDE, new org.apache.thrift.meta_data.FieldMetaData("propertiesToExclude", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneTable_args.class, metaDataMap);
    }

    public cloneTable_args() {
    }

    public cloneTable_args(
      ByteBuffer login,
      String tableName,
      String newTableName,
      boolean flush,
      Map propertiesToSet,
      Set propertiesToExclude)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.newTableName = newTableName;
      this.flush = flush;
      setFlushIsSet(true);
      this.propertiesToSet = propertiesToSet;
      this.propertiesToExclude = propertiesToExclude;
    }

    /**
     * Performs a deep copy on other.
     */
    public cloneTable_args(cloneTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetNewTableName()) {
        this.newTableName = other.newTableName;
      }
      this.flush = other.flush;
      if (other.isSetPropertiesToSet()) {
        Map __this__propertiesToSet = new HashMap(other.propertiesToSet);
        this.propertiesToSet = __this__propertiesToSet;
      }
      if (other.isSetPropertiesToExclude()) {
        Set __this__propertiesToExclude = new HashSet(other.propertiesToExclude);
        this.propertiesToExclude = __this__propertiesToExclude;
      }
    }

    public cloneTable_args deepCopy() {
      return new cloneTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.newTableName = null;
      setFlushIsSet(false);
      this.flush = false;
      this.propertiesToSet = null;
      this.propertiesToExclude = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public cloneTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public cloneTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public cloneTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getNewTableName() {
      return this.newTableName;
    }

    public cloneTable_args setNewTableName(String newTableName) {
      this.newTableName = newTableName;
      return this;
    }

    public void unsetNewTableName() {
      this.newTableName = null;
    }

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

    public void setNewTableNameIsSet(boolean value) {
      if (!value) {
        this.newTableName = null;
      }
    }

    public boolean isFlush() {
      return this.flush;
    }

    public cloneTable_args setFlush(boolean flush) {
      this.flush = flush;
      setFlushIsSet(true);
      return this;
    }

    public void unsetFlush() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FLUSH_ISSET_ID);
    }

    /** Returns true if field flush is set (has been assigned a value) and false otherwise */
    public boolean isSetFlush() {
      return EncodingUtils.testBit(__isset_bitfield, __FLUSH_ISSET_ID);
    }

    public void setFlushIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FLUSH_ISSET_ID, value);
    }

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

    public void putToPropertiesToSet(String key, String val) {
      if (this.propertiesToSet == null) {
        this.propertiesToSet = new HashMap();
      }
      this.propertiesToSet.put(key, val);
    }

    public Map getPropertiesToSet() {
      return this.propertiesToSet;
    }

    public cloneTable_args setPropertiesToSet(Map propertiesToSet) {
      this.propertiesToSet = propertiesToSet;
      return this;
    }

    public void unsetPropertiesToSet() {
      this.propertiesToSet = null;
    }

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

    public void setPropertiesToSetIsSet(boolean value) {
      if (!value) {
        this.propertiesToSet = null;
      }
    }

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

    public java.util.Iterator getPropertiesToExcludeIterator() {
      return (this.propertiesToExclude == null) ? null : this.propertiesToExclude.iterator();
    }

    public void addToPropertiesToExclude(String elem) {
      if (this.propertiesToExclude == null) {
        this.propertiesToExclude = new HashSet();
      }
      this.propertiesToExclude.add(elem);
    }

    public Set getPropertiesToExclude() {
      return this.propertiesToExclude;
    }

    public cloneTable_args setPropertiesToExclude(Set propertiesToExclude) {
      this.propertiesToExclude = propertiesToExclude;
      return this;
    }

    public void unsetPropertiesToExclude() {
      this.propertiesToExclude = null;
    }

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

    public void setPropertiesToExcludeIsSet(boolean value) {
      if (!value) {
        this.propertiesToExclude = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case NEW_TABLE_NAME:
        if (value == null) {
          unsetNewTableName();
        } else {
          setNewTableName((String)value);
        }
        break;

      case FLUSH:
        if (value == null) {
          unsetFlush();
        } else {
          setFlush((Boolean)value);
        }
        break;

      case PROPERTIES_TO_SET:
        if (value == null) {
          unsetPropertiesToSet();
        } else {
          setPropertiesToSet((Map)value);
        }
        break;

      case PROPERTIES_TO_EXCLUDE:
        if (value == null) {
          unsetPropertiesToExclude();
        } else {
          setPropertiesToExclude((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case NEW_TABLE_NAME:
        return getNewTableName();

      case FLUSH:
        return Boolean.valueOf(isFlush());

      case PROPERTIES_TO_SET:
        return getPropertiesToSet();

      case PROPERTIES_TO_EXCLUDE:
        return getPropertiesToExclude();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case NEW_TABLE_NAME:
        return isSetNewTableName();
      case FLUSH:
        return isSetFlush();
      case PROPERTIES_TO_SET:
        return isSetPropertiesToSet();
      case PROPERTIES_TO_EXCLUDE:
        return isSetPropertiesToExclude();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof cloneTable_args)
        return this.equals((cloneTable_args)that);
      return false;
    }

    public boolean equals(cloneTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_newTableName = true && this.isSetNewTableName();
      boolean that_present_newTableName = true && that.isSetNewTableName();
      if (this_present_newTableName || that_present_newTableName) {
        if (!(this_present_newTableName && that_present_newTableName))
          return false;
        if (!this.newTableName.equals(that.newTableName))
          return false;
      }

      boolean this_present_flush = true;
      boolean that_present_flush = true;
      if (this_present_flush || that_present_flush) {
        if (!(this_present_flush && that_present_flush))
          return false;
        if (this.flush != that.flush)
          return false;
      }

      boolean this_present_propertiesToSet = true && this.isSetPropertiesToSet();
      boolean that_present_propertiesToSet = true && that.isSetPropertiesToSet();
      if (this_present_propertiesToSet || that_present_propertiesToSet) {
        if (!(this_present_propertiesToSet && that_present_propertiesToSet))
          return false;
        if (!this.propertiesToSet.equals(that.propertiesToSet))
          return false;
      }

      boolean this_present_propertiesToExclude = true && this.isSetPropertiesToExclude();
      boolean that_present_propertiesToExclude = true && that.isSetPropertiesToExclude();
      if (this_present_propertiesToExclude || that_present_propertiesToExclude) {
        if (!(this_present_propertiesToExclude && that_present_propertiesToExclude))
          return false;
        if (!this.propertiesToExclude.equals(that.propertiesToExclude))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetNewTableName()).compareTo(other.isSetNewTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNewTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newTableName, other.newTableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetFlush()).compareTo(other.isSetFlush());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFlush()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.flush, other.flush);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPropertiesToSet()).compareTo(other.isSetPropertiesToSet());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPropertiesToSet()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.propertiesToSet, other.propertiesToSet);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPropertiesToExclude()).compareTo(other.isSetPropertiesToExclude());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPropertiesToExclude()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.propertiesToExclude, other.propertiesToExclude);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("cloneTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("newTableName:");
      if (this.newTableName == null) {
        sb.append("null");
      } else {
        sb.append(this.newTableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("flush:");
      sb.append(this.flush);
      first = false;
      if (!first) sb.append(", ");
      sb.append("propertiesToSet:");
      if (this.propertiesToSet == null) {
        sb.append("null");
      } else {
        sb.append(this.propertiesToSet);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("propertiesToExclude:");
      if (this.propertiesToExclude == null) {
        sb.append("null");
      } else {
        sb.append(this.propertiesToExclude);
      }
      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, 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 cloneTable_argsStandardSchemeFactory implements SchemeFactory {
      public cloneTable_argsStandardScheme getScheme() {
        return new cloneTable_argsStandardScheme();
      }
    }

    private static class cloneTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.newTableName = iprot.readString();
                struct.setNewTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // FLUSH
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.flush = iprot.readBool();
                struct.setFlushIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // PROPERTIES_TO_SET
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map198 = iprot.readMapBegin();
                  struct.propertiesToSet = new HashMap(2*_map198.size);
                  for (int _i199 = 0; _i199 < _map198.size; ++_i199)
                  {
                    String _key200;
                    String _val201;
                    _key200 = iprot.readString();
                    _val201 = iprot.readString();
                    struct.propertiesToSet.put(_key200, _val201);
                  }
                  iprot.readMapEnd();
                }
                struct.setPropertiesToSetIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // PROPERTIES_TO_EXCLUDE
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set202 = iprot.readSetBegin();
                  struct.propertiesToExclude = new HashSet(2*_set202.size);
                  for (int _i203 = 0; _i203 < _set202.size; ++_i203)
                  {
                    String _elem204;
                    _elem204 = iprot.readString();
                    struct.propertiesToExclude.add(_elem204);
                  }
                  iprot.readSetEnd();
                }
                struct.setPropertiesToExcludeIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.newTableName != null) {
          oprot.writeFieldBegin(NEW_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.newTableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(FLUSH_FIELD_DESC);
        oprot.writeBool(struct.flush);
        oprot.writeFieldEnd();
        if (struct.propertiesToSet != null) {
          oprot.writeFieldBegin(PROPERTIES_TO_SET_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.propertiesToSet.size()));
            for (Map.Entry _iter205 : struct.propertiesToSet.entrySet())
            {
              oprot.writeString(_iter205.getKey());
              oprot.writeString(_iter205.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.propertiesToExclude != null) {
          oprot.writeFieldBegin(PROPERTIES_TO_EXCLUDE_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.propertiesToExclude.size()));
            for (String _iter206 : struct.propertiesToExclude)
            {
              oprot.writeString(_iter206);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cloneTable_argsTupleSchemeFactory implements SchemeFactory {
      public cloneTable_argsTupleScheme getScheme() {
        return new cloneTable_argsTupleScheme();
      }
    }

    private static class cloneTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cloneTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetNewTableName()) {
          optionals.set(2);
        }
        if (struct.isSetFlush()) {
          optionals.set(3);
        }
        if (struct.isSetPropertiesToSet()) {
          optionals.set(4);
        }
        if (struct.isSetPropertiesToExclude()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetNewTableName()) {
          oprot.writeString(struct.newTableName);
        }
        if (struct.isSetFlush()) {
          oprot.writeBool(struct.flush);
        }
        if (struct.isSetPropertiesToSet()) {
          {
            oprot.writeI32(struct.propertiesToSet.size());
            for (Map.Entry _iter207 : struct.propertiesToSet.entrySet())
            {
              oprot.writeString(_iter207.getKey());
              oprot.writeString(_iter207.getValue());
            }
          }
        }
        if (struct.isSetPropertiesToExclude()) {
          {
            oprot.writeI32(struct.propertiesToExclude.size());
            for (String _iter208 : struct.propertiesToExclude)
            {
              oprot.writeString(_iter208);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cloneTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.newTableName = iprot.readString();
          struct.setNewTableNameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.flush = iprot.readBool();
          struct.setFlushIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TMap _map209 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.propertiesToSet = new HashMap(2*_map209.size);
            for (int _i210 = 0; _i210 < _map209.size; ++_i210)
            {
              String _key211;
              String _val212;
              _key211 = iprot.readString();
              _val212 = iprot.readString();
              struct.propertiesToSet.put(_key211, _val212);
            }
          }
          struct.setPropertiesToSetIsSet(true);
        }
        if (incoming.get(5)) {
          {
            org.apache.thrift.protocol.TSet _set213 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.propertiesToExclude = new HashSet(2*_set213.size);
            for (int _i214 = 0; _i214 < _set213.size; ++_i214)
            {
              String _elem215;
              _elem215 = iprot.readString();
              struct.propertiesToExclude.add(_elem215);
            }
          }
          struct.setPropertiesToExcludeIsSet(true);
        }
      }
    }

  }

  public static class cloneTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField OUCH4_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new cloneTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new cloneTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // required
    public TableExistsException ouch4; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3"),
      OUCH4((short)4, "ouch4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          case 4: // OUCH4
            return OUCH4;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH4, new org.apache.thrift.meta_data.FieldMetaData("ouch4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneTable_result.class, metaDataMap);
    }

    public cloneTable_result() {
    }

    public cloneTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3,
      TableExistsException ouch4)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
      this.ouch4 = ouch4;
    }

    /**
     * Performs a deep copy on other.
     */
    public cloneTable_result(cloneTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
      if (other.isSetOuch4()) {
        this.ouch4 = new TableExistsException(other.ouch4);
      }
    }

    public cloneTable_result deepCopy() {
      return new cloneTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
      this.ouch4 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public cloneTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public cloneTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public cloneTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public TableExistsException getOuch4() {
      return this.ouch4;
    }

    public cloneTable_result setOuch4(TableExistsException ouch4) {
      this.ouch4 = ouch4;
      return this;
    }

    public void unsetOuch4() {
      this.ouch4 = null;
    }

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

    public void setOuch4IsSet(boolean value) {
      if (!value) {
        this.ouch4 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      case OUCH4:
        if (value == null) {
          unsetOuch4();
        } else {
          setOuch4((TableExistsException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      case OUCH4:
        return getOuch4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      case OUCH4:
        return isSetOuch4();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof cloneTable_result)
        return this.equals((cloneTable_result)that);
      return false;
    }

    public boolean equals(cloneTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      boolean this_present_ouch4 = true && this.isSetOuch4();
      boolean that_present_ouch4 = true && that.isSetOuch4();
      if (this_present_ouch4 || that_present_ouch4) {
        if (!(this_present_ouch4 && that_present_ouch4))
          return false;
        if (!this.ouch4.equals(that.ouch4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch4()).compareTo(other.isSetOuch4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch4, other.ouch4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("cloneTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch4:");
      if (this.ouch4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch4);
      }
      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, 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 cloneTable_resultStandardSchemeFactory implements SchemeFactory {
      public cloneTable_resultStandardScheme getScheme() {
        return new cloneTable_resultStandardScheme();
      }
    }

    private static class cloneTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // OUCH4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch4 = new TableExistsException();
                struct.ouch4.read(iprot);
                struct.setOuch4IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch4 != null) {
          oprot.writeFieldBegin(OUCH4_FIELD_DESC);
          struct.ouch4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cloneTable_resultTupleSchemeFactory implements SchemeFactory {
      public cloneTable_resultTupleScheme getScheme() {
        return new cloneTable_resultTupleScheme();
      }
    }

    private static class cloneTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cloneTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        if (struct.isSetOuch4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
        if (struct.isSetOuch4()) {
          struct.ouch4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cloneTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch4 = new TableExistsException();
          struct.ouch4.read(iprot);
          struct.setOuch4IsSet(true);
        }
      }
    }

  }

  public static class compactTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compactTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("endRow", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField ITERATORS_FIELD_DESC = new org.apache.thrift.protocol.TField("iterators", org.apache.thrift.protocol.TType.LIST, (short)5);
    private static final org.apache.thrift.protocol.TField FLUSH_FIELD_DESC = new org.apache.thrift.protocol.TField("flush", org.apache.thrift.protocol.TType.BOOL, (short)6);
    private static final org.apache.thrift.protocol.TField WAIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wait", org.apache.thrift.protocol.TType.BOOL, (short)7);
    private static final org.apache.thrift.protocol.TField COMPACTION_STRATEGY_FIELD_DESC = new org.apache.thrift.protocol.TField("compactionStrategy", org.apache.thrift.protocol.TType.STRUCT, (short)8);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new compactTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new compactTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ByteBuffer startRow; // required
    public ByteBuffer endRow; // required
    public List iterators; // required
    public boolean flush; // required
    public boolean wait; // required
    public CompactionStrategyConfig compactionStrategy; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      START_ROW((short)3, "startRow"),
      END_ROW((short)4, "endRow"),
      ITERATORS((short)5, "iterators"),
      FLUSH((short)6, "flush"),
      WAIT((short)7, "wait"),
      COMPACTION_STRATEGY((short)8, "compactionStrategy");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // START_ROW
            return START_ROW;
          case 4: // END_ROW
            return END_ROW;
          case 5: // ITERATORS
            return ITERATORS;
          case 6: // FLUSH
            return FLUSH;
          case 7: // WAIT
            return WAIT;
          case 8: // COMPACTION_STRATEGY
            return COMPACTION_STRATEGY;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __FLUSH_ISSET_ID = 0;
    private static final int __WAIT_ISSET_ID = 1;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.START_ROW, new org.apache.thrift.meta_data.FieldMetaData("startRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.END_ROW, new org.apache.thrift.meta_data.FieldMetaData("endRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.ITERATORS, new org.apache.thrift.meta_data.FieldMetaData("iterators", 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, IteratorSetting.class))));
      tmpMap.put(_Fields.FLUSH, new org.apache.thrift.meta_data.FieldMetaData("flush", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.WAIT, new org.apache.thrift.meta_data.FieldMetaData("wait", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.COMPACTION_STRATEGY, new org.apache.thrift.meta_data.FieldMetaData("compactionStrategy", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CompactionStrategyConfig.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compactTable_args.class, metaDataMap);
    }

    public compactTable_args() {
    }

    public compactTable_args(
      ByteBuffer login,
      String tableName,
      ByteBuffer startRow,
      ByteBuffer endRow,
      List iterators,
      boolean flush,
      boolean wait,
      CompactionStrategyConfig compactionStrategy)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.startRow = startRow;
      this.endRow = endRow;
      this.iterators = iterators;
      this.flush = flush;
      setFlushIsSet(true);
      this.wait = wait;
      setWaitIsSet(true);
      this.compactionStrategy = compactionStrategy;
    }

    /**
     * Performs a deep copy on other.
     */
    public compactTable_args(compactTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetStartRow()) {
        this.startRow = org.apache.thrift.TBaseHelper.copyBinary(other.startRow);
;
      }
      if (other.isSetEndRow()) {
        this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
;
      }
      if (other.isSetIterators()) {
        List __this__iterators = new ArrayList(other.iterators.size());
        for (IteratorSetting other_element : other.iterators) {
          __this__iterators.add(new IteratorSetting(other_element));
        }
        this.iterators = __this__iterators;
      }
      this.flush = other.flush;
      this.wait = other.wait;
      if (other.isSetCompactionStrategy()) {
        this.compactionStrategy = new CompactionStrategyConfig(other.compactionStrategy);
      }
    }

    public compactTable_args deepCopy() {
      return new compactTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.startRow = null;
      this.endRow = null;
      this.iterators = null;
      setFlushIsSet(false);
      this.flush = false;
      setWaitIsSet(false);
      this.wait = false;
      this.compactionStrategy = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public compactTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public compactTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public compactTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public byte[] getStartRow() {
      setStartRow(org.apache.thrift.TBaseHelper.rightSize(startRow));
      return startRow == null ? null : startRow.array();
    }

    public ByteBuffer bufferForStartRow() {
      return startRow;
    }

    public compactTable_args setStartRow(byte[] startRow) {
      setStartRow(startRow == null ? (ByteBuffer)null : ByteBuffer.wrap(startRow));
      return this;
    }

    public compactTable_args setStartRow(ByteBuffer startRow) {
      this.startRow = startRow;
      return this;
    }

    public void unsetStartRow() {
      this.startRow = null;
    }

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

    public void setStartRowIsSet(boolean value) {
      if (!value) {
        this.startRow = null;
      }
    }

    public byte[] getEndRow() {
      setEndRow(org.apache.thrift.TBaseHelper.rightSize(endRow));
      return endRow == null ? null : endRow.array();
    }

    public ByteBuffer bufferForEndRow() {
      return endRow;
    }

    public compactTable_args setEndRow(byte[] endRow) {
      setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
      return this;
    }

    public compactTable_args setEndRow(ByteBuffer endRow) {
      this.endRow = endRow;
      return this;
    }

    public void unsetEndRow() {
      this.endRow = null;
    }

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

    public void setEndRowIsSet(boolean value) {
      if (!value) {
        this.endRow = null;
      }
    }

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

    public java.util.Iterator getIteratorsIterator() {
      return (this.iterators == null) ? null : this.iterators.iterator();
    }

    public void addToIterators(IteratorSetting elem) {
      if (this.iterators == null) {
        this.iterators = new ArrayList();
      }
      this.iterators.add(elem);
    }

    public List getIterators() {
      return this.iterators;
    }

    public compactTable_args setIterators(List iterators) {
      this.iterators = iterators;
      return this;
    }

    public void unsetIterators() {
      this.iterators = null;
    }

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

    public void setIteratorsIsSet(boolean value) {
      if (!value) {
        this.iterators = null;
      }
    }

    public boolean isFlush() {
      return this.flush;
    }

    public compactTable_args setFlush(boolean flush) {
      this.flush = flush;
      setFlushIsSet(true);
      return this;
    }

    public void unsetFlush() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FLUSH_ISSET_ID);
    }

    /** Returns true if field flush is set (has been assigned a value) and false otherwise */
    public boolean isSetFlush() {
      return EncodingUtils.testBit(__isset_bitfield, __FLUSH_ISSET_ID);
    }

    public void setFlushIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FLUSH_ISSET_ID, value);
    }

    public boolean isWait() {
      return this.wait;
    }

    public compactTable_args setWait(boolean wait) {
      this.wait = wait;
      setWaitIsSet(true);
      return this;
    }

    public void unsetWait() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    /** Returns true if field wait is set (has been assigned a value) and false otherwise */
    public boolean isSetWait() {
      return EncodingUtils.testBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    public void setWaitIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_ISSET_ID, value);
    }

    public CompactionStrategyConfig getCompactionStrategy() {
      return this.compactionStrategy;
    }

    public compactTable_args setCompactionStrategy(CompactionStrategyConfig compactionStrategy) {
      this.compactionStrategy = compactionStrategy;
      return this;
    }

    public void unsetCompactionStrategy() {
      this.compactionStrategy = null;
    }

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

    public void setCompactionStrategyIsSet(boolean value) {
      if (!value) {
        this.compactionStrategy = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case START_ROW:
        if (value == null) {
          unsetStartRow();
        } else {
          setStartRow((ByteBuffer)value);
        }
        break;

      case END_ROW:
        if (value == null) {
          unsetEndRow();
        } else {
          setEndRow((ByteBuffer)value);
        }
        break;

      case ITERATORS:
        if (value == null) {
          unsetIterators();
        } else {
          setIterators((List)value);
        }
        break;

      case FLUSH:
        if (value == null) {
          unsetFlush();
        } else {
          setFlush((Boolean)value);
        }
        break;

      case WAIT:
        if (value == null) {
          unsetWait();
        } else {
          setWait((Boolean)value);
        }
        break;

      case COMPACTION_STRATEGY:
        if (value == null) {
          unsetCompactionStrategy();
        } else {
          setCompactionStrategy((CompactionStrategyConfig)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case START_ROW:
        return getStartRow();

      case END_ROW:
        return getEndRow();

      case ITERATORS:
        return getIterators();

      case FLUSH:
        return Boolean.valueOf(isFlush());

      case WAIT:
        return Boolean.valueOf(isWait());

      case COMPACTION_STRATEGY:
        return getCompactionStrategy();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case START_ROW:
        return isSetStartRow();
      case END_ROW:
        return isSetEndRow();
      case ITERATORS:
        return isSetIterators();
      case FLUSH:
        return isSetFlush();
      case WAIT:
        return isSetWait();
      case COMPACTION_STRATEGY:
        return isSetCompactionStrategy();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof compactTable_args)
        return this.equals((compactTable_args)that);
      return false;
    }

    public boolean equals(compactTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_startRow = true && this.isSetStartRow();
      boolean that_present_startRow = true && that.isSetStartRow();
      if (this_present_startRow || that_present_startRow) {
        if (!(this_present_startRow && that_present_startRow))
          return false;
        if (!this.startRow.equals(that.startRow))
          return false;
      }

      boolean this_present_endRow = true && this.isSetEndRow();
      boolean that_present_endRow = true && that.isSetEndRow();
      if (this_present_endRow || that_present_endRow) {
        if (!(this_present_endRow && that_present_endRow))
          return false;
        if (!this.endRow.equals(that.endRow))
          return false;
      }

      boolean this_present_iterators = true && this.isSetIterators();
      boolean that_present_iterators = true && that.isSetIterators();
      if (this_present_iterators || that_present_iterators) {
        if (!(this_present_iterators && that_present_iterators))
          return false;
        if (!this.iterators.equals(that.iterators))
          return false;
      }

      boolean this_present_flush = true;
      boolean that_present_flush = true;
      if (this_present_flush || that_present_flush) {
        if (!(this_present_flush && that_present_flush))
          return false;
        if (this.flush != that.flush)
          return false;
      }

      boolean this_present_wait = true;
      boolean that_present_wait = true;
      if (this_present_wait || that_present_wait) {
        if (!(this_present_wait && that_present_wait))
          return false;
        if (this.wait != that.wait)
          return false;
      }

      boolean this_present_compactionStrategy = true && this.isSetCompactionStrategy();
      boolean that_present_compactionStrategy = true && that.isSetCompactionStrategy();
      if (this_present_compactionStrategy || that_present_compactionStrategy) {
        if (!(this_present_compactionStrategy && that_present_compactionStrategy))
          return false;
        if (!this.compactionStrategy.equals(that.compactionStrategy))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(other.isSetStartRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startRow, other.startRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndRow()).compareTo(other.isSetEndRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endRow, other.endRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetIterators()).compareTo(other.isSetIterators());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIterators()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iterators, other.iterators);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetFlush()).compareTo(other.isSetFlush());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFlush()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.flush, other.flush);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWait()).compareTo(other.isSetWait());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWait()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait, other.wait);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCompactionStrategy()).compareTo(other.isSetCompactionStrategy());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCompactionStrategy()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.compactionStrategy, other.compactionStrategy);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("compactTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startRow:");
      if (this.startRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.startRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("endRow:");
      if (this.endRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.endRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("iterators:");
      if (this.iterators == null) {
        sb.append("null");
      } else {
        sb.append(this.iterators);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("flush:");
      sb.append(this.flush);
      first = false;
      if (!first) sb.append(", ");
      sb.append("wait:");
      sb.append(this.wait);
      first = false;
      if (!first) sb.append(", ");
      sb.append("compactionStrategy:");
      if (this.compactionStrategy == null) {
        sb.append("null");
      } else {
        sb.append(this.compactionStrategy);
      }
      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 (compactionStrategy != null) {
        compactionStrategy.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, 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 compactTable_argsStandardSchemeFactory implements SchemeFactory {
      public compactTable_argsStandardScheme getScheme() {
        return new compactTable_argsStandardScheme();
      }
    }

    private static class compactTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compactTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // START_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.startRow = iprot.readBinary();
                struct.setStartRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // END_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.endRow = iprot.readBinary();
                struct.setEndRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // ITERATORS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list216 = iprot.readListBegin();
                  struct.iterators = new ArrayList(_list216.size);
                  for (int _i217 = 0; _i217 < _list216.size; ++_i217)
                  {
                    IteratorSetting _elem218;
                    _elem218 = new IteratorSetting();
                    _elem218.read(iprot);
                    struct.iterators.add(_elem218);
                  }
                  iprot.readListEnd();
                }
                struct.setIteratorsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // FLUSH
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.flush = iprot.readBool();
                struct.setFlushIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 7: // WAIT
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.wait = iprot.readBool();
                struct.setWaitIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 8: // COMPACTION_STRATEGY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.compactionStrategy = new CompactionStrategyConfig();
                struct.compactionStrategy.read(iprot);
                struct.setCompactionStrategyIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.startRow != null) {
          oprot.writeFieldBegin(START_ROW_FIELD_DESC);
          oprot.writeBinary(struct.startRow);
          oprot.writeFieldEnd();
        }
        if (struct.endRow != null) {
          oprot.writeFieldBegin(END_ROW_FIELD_DESC);
          oprot.writeBinary(struct.endRow);
          oprot.writeFieldEnd();
        }
        if (struct.iterators != null) {
          oprot.writeFieldBegin(ITERATORS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.iterators.size()));
            for (IteratorSetting _iter219 : struct.iterators)
            {
              _iter219.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(FLUSH_FIELD_DESC);
        oprot.writeBool(struct.flush);
        oprot.writeFieldEnd();
        oprot.writeFieldBegin(WAIT_FIELD_DESC);
        oprot.writeBool(struct.wait);
        oprot.writeFieldEnd();
        if (struct.compactionStrategy != null) {
          oprot.writeFieldBegin(COMPACTION_STRATEGY_FIELD_DESC);
          struct.compactionStrategy.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compactTable_argsTupleSchemeFactory implements SchemeFactory {
      public compactTable_argsTupleScheme getScheme() {
        return new compactTable_argsTupleScheme();
      }
    }

    private static class compactTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compactTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetStartRow()) {
          optionals.set(2);
        }
        if (struct.isSetEndRow()) {
          optionals.set(3);
        }
        if (struct.isSetIterators()) {
          optionals.set(4);
        }
        if (struct.isSetFlush()) {
          optionals.set(5);
        }
        if (struct.isSetWait()) {
          optionals.set(6);
        }
        if (struct.isSetCompactionStrategy()) {
          optionals.set(7);
        }
        oprot.writeBitSet(optionals, 8);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetStartRow()) {
          oprot.writeBinary(struct.startRow);
        }
        if (struct.isSetEndRow()) {
          oprot.writeBinary(struct.endRow);
        }
        if (struct.isSetIterators()) {
          {
            oprot.writeI32(struct.iterators.size());
            for (IteratorSetting _iter220 : struct.iterators)
            {
              _iter220.write(oprot);
            }
          }
        }
        if (struct.isSetFlush()) {
          oprot.writeBool(struct.flush);
        }
        if (struct.isSetWait()) {
          oprot.writeBool(struct.wait);
        }
        if (struct.isSetCompactionStrategy()) {
          struct.compactionStrategy.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compactTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(8);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.startRow = iprot.readBinary();
          struct.setStartRowIsSet(true);
        }
        if (incoming.get(3)) {
          struct.endRow = iprot.readBinary();
          struct.setEndRowIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list221 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.iterators = new ArrayList(_list221.size);
            for (int _i222 = 0; _i222 < _list221.size; ++_i222)
            {
              IteratorSetting _elem223;
              _elem223 = new IteratorSetting();
              _elem223.read(iprot);
              struct.iterators.add(_elem223);
            }
          }
          struct.setIteratorsIsSet(true);
        }
        if (incoming.get(5)) {
          struct.flush = iprot.readBool();
          struct.setFlushIsSet(true);
        }
        if (incoming.get(6)) {
          struct.wait = iprot.readBool();
          struct.setWaitIsSet(true);
        }
        if (incoming.get(7)) {
          struct.compactionStrategy = new CompactionStrategyConfig();
          struct.compactionStrategy.read(iprot);
          struct.setCompactionStrategyIsSet(true);
        }
      }
    }

  }

  public static class compactTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compactTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new compactTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new compactTable_resultTupleSchemeFactory());
    }

    public AccumuloSecurityException ouch1; // required
    public TableNotFoundException ouch2; // required
    public AccumuloException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compactTable_result.class, metaDataMap);
    }

    public compactTable_result() {
    }

    public compactTable_result(
      AccumuloSecurityException ouch1,
      TableNotFoundException ouch2,
      AccumuloException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public compactTable_result(compactTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloSecurityException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new TableNotFoundException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloException(other.ouch3);
      }
    }

    public compactTable_result deepCopy() {
      return new compactTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloSecurityException getOuch1() {
      return this.ouch1;
    }

    public compactTable_result setOuch1(AccumuloSecurityException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public TableNotFoundException getOuch2() {
      return this.ouch2;
    }

    public compactTable_result setOuch2(TableNotFoundException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloException getOuch3() {
      return this.ouch3;
    }

    public compactTable_result setOuch3(AccumuloException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloSecurityException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((TableNotFoundException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof compactTable_result)
        return this.equals((compactTable_result)that);
      return false;
    }

    public boolean equals(compactTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("compactTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 compactTable_resultStandardSchemeFactory implements SchemeFactory {
      public compactTable_resultStandardScheme getScheme() {
        return new compactTable_resultStandardScheme();
      }
    }

    private static class compactTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compactTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloSecurityException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new TableNotFoundException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compactTable_resultTupleSchemeFactory implements SchemeFactory {
      public compactTable_resultTupleScheme getScheme() {
        return new compactTable_resultTupleScheme();
      }
    }

    private static class compactTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compactTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compactTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloSecurityException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new TableNotFoundException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new AccumuloException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class cancelCompaction_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cancelCompaction_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new cancelCompaction_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new cancelCompaction_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cancelCompaction_args.class, metaDataMap);
    }

    public cancelCompaction_args() {
    }

    public cancelCompaction_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public cancelCompaction_args(cancelCompaction_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public cancelCompaction_args deepCopy() {
      return new cancelCompaction_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public cancelCompaction_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public cancelCompaction_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public cancelCompaction_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof cancelCompaction_args)
        return this.equals((cancelCompaction_args)that);
      return false;
    }

    public boolean equals(cancelCompaction_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("cancelCompaction_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 cancelCompaction_argsStandardSchemeFactory implements SchemeFactory {
      public cancelCompaction_argsStandardScheme getScheme() {
        return new cancelCompaction_argsStandardScheme();
      }
    }

    private static class cancelCompaction_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cancelCompaction_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cancelCompaction_argsTupleSchemeFactory implements SchemeFactory {
      public cancelCompaction_argsTupleScheme getScheme() {
        return new cancelCompaction_argsTupleScheme();
      }
    }

    private static class cancelCompaction_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cancelCompaction_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cancelCompaction_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class cancelCompaction_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cancelCompaction_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new cancelCompaction_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new cancelCompaction_resultTupleSchemeFactory());
    }

    public AccumuloSecurityException ouch1; // required
    public TableNotFoundException ouch2; // required
    public AccumuloException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cancelCompaction_result.class, metaDataMap);
    }

    public cancelCompaction_result() {
    }

    public cancelCompaction_result(
      AccumuloSecurityException ouch1,
      TableNotFoundException ouch2,
      AccumuloException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public cancelCompaction_result(cancelCompaction_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloSecurityException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new TableNotFoundException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloException(other.ouch3);
      }
    }

    public cancelCompaction_result deepCopy() {
      return new cancelCompaction_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloSecurityException getOuch1() {
      return this.ouch1;
    }

    public cancelCompaction_result setOuch1(AccumuloSecurityException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public TableNotFoundException getOuch2() {
      return this.ouch2;
    }

    public cancelCompaction_result setOuch2(TableNotFoundException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloException getOuch3() {
      return this.ouch3;
    }

    public cancelCompaction_result setOuch3(AccumuloException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloSecurityException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((TableNotFoundException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof cancelCompaction_result)
        return this.equals((cancelCompaction_result)that);
      return false;
    }

    public boolean equals(cancelCompaction_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("cancelCompaction_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 cancelCompaction_resultStandardSchemeFactory implements SchemeFactory {
      public cancelCompaction_resultStandardScheme getScheme() {
        return new cancelCompaction_resultStandardScheme();
      }
    }

    private static class cancelCompaction_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cancelCompaction_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloSecurityException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new TableNotFoundException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cancelCompaction_resultTupleSchemeFactory implements SchemeFactory {
      public cancelCompaction_resultTupleScheme getScheme() {
        return new cancelCompaction_resultTupleScheme();
      }
    }

    private static class cancelCompaction_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cancelCompaction_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cancelCompaction_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloSecurityException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new TableNotFoundException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new AccumuloException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class createTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField VERSIONING_ITER_FIELD_DESC = new org.apache.thrift.protocol.TField("versioningIter", org.apache.thrift.protocol.TType.BOOL, (short)3);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public boolean versioningIter; // required
    /**
     * 
     * @see TimeType
     */
    public TimeType type; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      VERSIONING_ITER((short)3, "versioningIter"),
      /**
       * 
       * @see TimeType
       */
      TYPE((short)4, "type");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // VERSIONING_ITER
            return VERSIONING_ITER;
          case 4: // TYPE
            return TYPE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __VERSIONINGITER_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.VERSIONING_ITER, new org.apache.thrift.meta_data.FieldMetaData("versioningIter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TimeType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createTable_args.class, metaDataMap);
    }

    public createTable_args() {
    }

    public createTable_args(
      ByteBuffer login,
      String tableName,
      boolean versioningIter,
      TimeType type)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.versioningIter = versioningIter;
      setVersioningIterIsSet(true);
      this.type = type;
    }

    /**
     * Performs a deep copy on other.
     */
    public createTable_args(createTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.versioningIter = other.versioningIter;
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

    public createTable_args deepCopy() {
      return new createTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      setVersioningIterIsSet(false);
      this.versioningIter = false;
      this.type = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public createTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public boolean isVersioningIter() {
      return this.versioningIter;
    }

    public createTable_args setVersioningIter(boolean versioningIter) {
      this.versioningIter = versioningIter;
      setVersioningIterIsSet(true);
      return this;
    }

    public void unsetVersioningIter() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VERSIONINGITER_ISSET_ID);
    }

    /** Returns true if field versioningIter is set (has been assigned a value) and false otherwise */
    public boolean isSetVersioningIter() {
      return EncodingUtils.testBit(__isset_bitfield, __VERSIONINGITER_ISSET_ID);
    }

    public void setVersioningIterIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VERSIONINGITER_ISSET_ID, value);
    }

    /**
     * 
     * @see TimeType
     */
    public TimeType getType() {
      return this.type;
    }

    /**
     * 
     * @see TimeType
     */
    public createTable_args setType(TimeType type) {
      this.type = type;
      return this;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case VERSIONING_ITER:
        if (value == null) {
          unsetVersioningIter();
        } else {
          setVersioningIter((Boolean)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((TimeType)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case VERSIONING_ITER:
        return Boolean.valueOf(isVersioningIter());

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case VERSIONING_ITER:
        return isSetVersioningIter();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createTable_args)
        return this.equals((createTable_args)that);
      return false;
    }

    public boolean equals(createTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_versioningIter = true;
      boolean that_present_versioningIter = true;
      if (this_present_versioningIter || that_present_versioningIter) {
        if (!(this_present_versioningIter && that_present_versioningIter))
          return false;
        if (this.versioningIter != that.versioningIter)
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetVersioningIter()).compareTo(other.isSetVersioningIter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetVersioningIter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.versioningIter, other.versioningIter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(other.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("versioningIter:");
      sb.append(this.versioningIter);
      first = false;
      if (!first) sb.append(", ");
      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      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, 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 createTable_argsStandardSchemeFactory implements SchemeFactory {
      public createTable_argsStandardScheme getScheme() {
        return new createTable_argsStandardScheme();
      }
    }

    private static class createTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // VERSIONING_ITER
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.versioningIter = iprot.readBool();
                struct.setVersioningIterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.type = TimeType.findByValue(iprot.readI32());
                struct.setTypeIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(VERSIONING_ITER_FIELD_DESC);
        oprot.writeBool(struct.versioningIter);
        oprot.writeFieldEnd();
        if (struct.type != null) {
          oprot.writeFieldBegin(TYPE_FIELD_DESC);
          oprot.writeI32(struct.type.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createTable_argsTupleSchemeFactory implements SchemeFactory {
      public createTable_argsTupleScheme getScheme() {
        return new createTable_argsTupleScheme();
      }
    }

    private static class createTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetVersioningIter()) {
          optionals.set(2);
        }
        if (struct.isSetType()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetVersioningIter()) {
          oprot.writeBool(struct.versioningIter);
        }
        if (struct.isSetType()) {
          oprot.writeI32(struct.type.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.versioningIter = iprot.readBool();
          struct.setVersioningIterIsSet(true);
        }
        if (incoming.get(3)) {
          struct.type = TimeType.findByValue(iprot.readI32());
          struct.setTypeIsSet(true);
        }
      }
    }

  }

  public static class createTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableExistsException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createTable_result.class, metaDataMap);
    }

    public createTable_result() {
    }

    public createTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableExistsException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public createTable_result(createTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableExistsException(other.ouch3);
      }
    }

    public createTable_result deepCopy() {
      return new createTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public createTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableExistsException getOuch3() {
      return this.ouch3;
    }

    public createTable_result setOuch3(TableExistsException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableExistsException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createTable_result)
        return this.equals((createTable_result)that);
      return false;
    }

    public boolean equals(createTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 createTable_resultStandardSchemeFactory implements SchemeFactory {
      public createTable_resultStandardScheme getScheme() {
        return new createTable_resultStandardScheme();
      }
    }

    private static class createTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableExistsException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createTable_resultTupleSchemeFactory implements SchemeFactory {
      public createTable_resultTupleScheme getScheme() {
        return new createTable_resultTupleScheme();
      }
    }

    private static class createTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableExistsException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class deleteTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteTable_args.class, metaDataMap);
    }

    public deleteTable_args() {
    }

    public deleteTable_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteTable_args(deleteTable_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public deleteTable_args deepCopy() {
      return new deleteTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public deleteTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public deleteTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public deleteTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteTable_args)
        return this.equals((deleteTable_args)that);
      return false;
    }

    public boolean equals(deleteTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 deleteTable_argsStandardSchemeFactory implements SchemeFactory {
      public deleteTable_argsStandardScheme getScheme() {
        return new deleteTable_argsStandardScheme();
      }
    }

    private static class deleteTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteTable_argsTupleSchemeFactory implements SchemeFactory {
      public deleteTable_argsTupleScheme getScheme() {
        return new deleteTable_argsTupleScheme();
      }
    }

    private static class deleteTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class deleteTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteTable_result.class, metaDataMap);
    }

    public deleteTable_result() {
    }

    public deleteTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteTable_result(deleteTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public deleteTable_result deepCopy() {
      return new deleteTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public deleteTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public deleteTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public deleteTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteTable_result)
        return this.equals((deleteTable_result)that);
      return false;
    }

    public boolean equals(deleteTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 deleteTable_resultStandardSchemeFactory implements SchemeFactory {
      public deleteTable_resultStandardScheme getScheme() {
        return new deleteTable_resultStandardScheme();
      }
    }

    private static class deleteTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteTable_resultTupleSchemeFactory implements SchemeFactory {
      public deleteTable_resultTupleScheme getScheme() {
        return new deleteTable_resultTupleScheme();
      }
    }

    private static class deleteTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class deleteRows_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteRows_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("endRow", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteRows_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteRows_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ByteBuffer startRow; // required
    public ByteBuffer endRow; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      START_ROW((short)3, "startRow"),
      END_ROW((short)4, "endRow");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // START_ROW
            return START_ROW;
          case 4: // END_ROW
            return END_ROW;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.START_ROW, new org.apache.thrift.meta_data.FieldMetaData("startRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.END_ROW, new org.apache.thrift.meta_data.FieldMetaData("endRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteRows_args.class, metaDataMap);
    }

    public deleteRows_args() {
    }

    public deleteRows_args(
      ByteBuffer login,
      String tableName,
      ByteBuffer startRow,
      ByteBuffer endRow)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.startRow = startRow;
      this.endRow = endRow;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteRows_args(deleteRows_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetStartRow()) {
        this.startRow = org.apache.thrift.TBaseHelper.copyBinary(other.startRow);
;
      }
      if (other.isSetEndRow()) {
        this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
;
      }
    }

    public deleteRows_args deepCopy() {
      return new deleteRows_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.startRow = null;
      this.endRow = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public deleteRows_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public deleteRows_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public deleteRows_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public byte[] getStartRow() {
      setStartRow(org.apache.thrift.TBaseHelper.rightSize(startRow));
      return startRow == null ? null : startRow.array();
    }

    public ByteBuffer bufferForStartRow() {
      return startRow;
    }

    public deleteRows_args setStartRow(byte[] startRow) {
      setStartRow(startRow == null ? (ByteBuffer)null : ByteBuffer.wrap(startRow));
      return this;
    }

    public deleteRows_args setStartRow(ByteBuffer startRow) {
      this.startRow = startRow;
      return this;
    }

    public void unsetStartRow() {
      this.startRow = null;
    }

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

    public void setStartRowIsSet(boolean value) {
      if (!value) {
        this.startRow = null;
      }
    }

    public byte[] getEndRow() {
      setEndRow(org.apache.thrift.TBaseHelper.rightSize(endRow));
      return endRow == null ? null : endRow.array();
    }

    public ByteBuffer bufferForEndRow() {
      return endRow;
    }

    public deleteRows_args setEndRow(byte[] endRow) {
      setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
      return this;
    }

    public deleteRows_args setEndRow(ByteBuffer endRow) {
      this.endRow = endRow;
      return this;
    }

    public void unsetEndRow() {
      this.endRow = null;
    }

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

    public void setEndRowIsSet(boolean value) {
      if (!value) {
        this.endRow = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case START_ROW:
        if (value == null) {
          unsetStartRow();
        } else {
          setStartRow((ByteBuffer)value);
        }
        break;

      case END_ROW:
        if (value == null) {
          unsetEndRow();
        } else {
          setEndRow((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case START_ROW:
        return getStartRow();

      case END_ROW:
        return getEndRow();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case START_ROW:
        return isSetStartRow();
      case END_ROW:
        return isSetEndRow();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteRows_args)
        return this.equals((deleteRows_args)that);
      return false;
    }

    public boolean equals(deleteRows_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_startRow = true && this.isSetStartRow();
      boolean that_present_startRow = true && that.isSetStartRow();
      if (this_present_startRow || that_present_startRow) {
        if (!(this_present_startRow && that_present_startRow))
          return false;
        if (!this.startRow.equals(that.startRow))
          return false;
      }

      boolean this_present_endRow = true && this.isSetEndRow();
      boolean that_present_endRow = true && that.isSetEndRow();
      if (this_present_endRow || that_present_endRow) {
        if (!(this_present_endRow && that_present_endRow))
          return false;
        if (!this.endRow.equals(that.endRow))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(other.isSetStartRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startRow, other.startRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndRow()).compareTo(other.isSetEndRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endRow, other.endRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteRows_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startRow:");
      if (this.startRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.startRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("endRow:");
      if (this.endRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.endRow, sb);
      }
      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, 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 deleteRows_argsStandardSchemeFactory implements SchemeFactory {
      public deleteRows_argsStandardScheme getScheme() {
        return new deleteRows_argsStandardScheme();
      }
    }

    private static class deleteRows_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteRows_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // START_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.startRow = iprot.readBinary();
                struct.setStartRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // END_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.endRow = iprot.readBinary();
                struct.setEndRowIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.startRow != null) {
          oprot.writeFieldBegin(START_ROW_FIELD_DESC);
          oprot.writeBinary(struct.startRow);
          oprot.writeFieldEnd();
        }
        if (struct.endRow != null) {
          oprot.writeFieldBegin(END_ROW_FIELD_DESC);
          oprot.writeBinary(struct.endRow);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteRows_argsTupleSchemeFactory implements SchemeFactory {
      public deleteRows_argsTupleScheme getScheme() {
        return new deleteRows_argsTupleScheme();
      }
    }

    private static class deleteRows_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteRows_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetStartRow()) {
          optionals.set(2);
        }
        if (struct.isSetEndRow()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetStartRow()) {
          oprot.writeBinary(struct.startRow);
        }
        if (struct.isSetEndRow()) {
          oprot.writeBinary(struct.endRow);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteRows_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.startRow = iprot.readBinary();
          struct.setStartRowIsSet(true);
        }
        if (incoming.get(3)) {
          struct.endRow = iprot.readBinary();
          struct.setEndRowIsSet(true);
        }
      }
    }

  }

  public static class deleteRows_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteRows_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteRows_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteRows_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteRows_result.class, metaDataMap);
    }

    public deleteRows_result() {
    }

    public deleteRows_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteRows_result(deleteRows_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public deleteRows_result deepCopy() {
      return new deleteRows_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public deleteRows_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public deleteRows_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public deleteRows_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteRows_result)
        return this.equals((deleteRows_result)that);
      return false;
    }

    public boolean equals(deleteRows_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteRows_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 deleteRows_resultStandardSchemeFactory implements SchemeFactory {
      public deleteRows_resultStandardScheme getScheme() {
        return new deleteRows_resultStandardScheme();
      }
    }

    private static class deleteRows_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteRows_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteRows_resultTupleSchemeFactory implements SchemeFactory {
      public deleteRows_resultTupleScheme getScheme() {
        return new deleteRows_resultTupleScheme();
      }
    }

    private static class deleteRows_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteRows_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteRows_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class exportTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exportTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField EXPORT_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("exportDir", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new exportTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new exportTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String exportDir; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      EXPORT_DIR((short)3, "exportDir");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // EXPORT_DIR
            return EXPORT_DIR;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.EXPORT_DIR, new org.apache.thrift.meta_data.FieldMetaData("exportDir", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exportTable_args.class, metaDataMap);
    }

    public exportTable_args() {
    }

    public exportTable_args(
      ByteBuffer login,
      String tableName,
      String exportDir)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.exportDir = exportDir;
    }

    /**
     * Performs a deep copy on other.
     */
    public exportTable_args(exportTable_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetExportDir()) {
        this.exportDir = other.exportDir;
      }
    }

    public exportTable_args deepCopy() {
      return new exportTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.exportDir = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public exportTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public exportTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public exportTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getExportDir() {
      return this.exportDir;
    }

    public exportTable_args setExportDir(String exportDir) {
      this.exportDir = exportDir;
      return this;
    }

    public void unsetExportDir() {
      this.exportDir = null;
    }

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

    public void setExportDirIsSet(boolean value) {
      if (!value) {
        this.exportDir = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case EXPORT_DIR:
        if (value == null) {
          unsetExportDir();
        } else {
          setExportDir((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case EXPORT_DIR:
        return getExportDir();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case EXPORT_DIR:
        return isSetExportDir();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof exportTable_args)
        return this.equals((exportTable_args)that);
      return false;
    }

    public boolean equals(exportTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_exportDir = true && this.isSetExportDir();
      boolean that_present_exportDir = true && that.isSetExportDir();
      if (this_present_exportDir || that_present_exportDir) {
        if (!(this_present_exportDir && that_present_exportDir))
          return false;
        if (!this.exportDir.equals(that.exportDir))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExportDir()).compareTo(other.isSetExportDir());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExportDir()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exportDir, other.exportDir);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("exportTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("exportDir:");
      if (this.exportDir == null) {
        sb.append("null");
      } else {
        sb.append(this.exportDir);
      }
      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, 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 exportTable_argsStandardSchemeFactory implements SchemeFactory {
      public exportTable_argsStandardScheme getScheme() {
        return new exportTable_argsStandardScheme();
      }
    }

    private static class exportTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exportTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EXPORT_DIR
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.exportDir = iprot.readString();
                struct.setExportDirIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.exportDir != null) {
          oprot.writeFieldBegin(EXPORT_DIR_FIELD_DESC);
          oprot.writeString(struct.exportDir);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exportTable_argsTupleSchemeFactory implements SchemeFactory {
      public exportTable_argsTupleScheme getScheme() {
        return new exportTable_argsTupleScheme();
      }
    }

    private static class exportTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exportTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetExportDir()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetExportDir()) {
          oprot.writeString(struct.exportDir);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exportTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.exportDir = iprot.readString();
          struct.setExportDirIsSet(true);
        }
      }
    }

  }

  public static class exportTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exportTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new exportTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new exportTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exportTable_result.class, metaDataMap);
    }

    public exportTable_result() {
    }

    public exportTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public exportTable_result(exportTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public exportTable_result deepCopy() {
      return new exportTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public exportTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public exportTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public exportTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof exportTable_result)
        return this.equals((exportTable_result)that);
      return false;
    }

    public boolean equals(exportTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("exportTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 exportTable_resultStandardSchemeFactory implements SchemeFactory {
      public exportTable_resultStandardScheme getScheme() {
        return new exportTable_resultStandardScheme();
      }
    }

    private static class exportTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exportTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exportTable_resultTupleSchemeFactory implements SchemeFactory {
      public exportTable_resultTupleScheme getScheme() {
        return new exportTable_resultTupleScheme();
      }
    }

    private static class exportTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exportTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exportTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class flushTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flushTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("endRow", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField WAIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wait", org.apache.thrift.protocol.TType.BOOL, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new flushTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new flushTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ByteBuffer startRow; // required
    public ByteBuffer endRow; // required
    public boolean wait; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      START_ROW((short)3, "startRow"),
      END_ROW((short)4, "endRow"),
      WAIT((short)5, "wait");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // START_ROW
            return START_ROW;
          case 4: // END_ROW
            return END_ROW;
          case 5: // WAIT
            return WAIT;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __WAIT_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.START_ROW, new org.apache.thrift.meta_data.FieldMetaData("startRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.END_ROW, new org.apache.thrift.meta_data.FieldMetaData("endRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.WAIT, new org.apache.thrift.meta_data.FieldMetaData("wait", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushTable_args.class, metaDataMap);
    }

    public flushTable_args() {
    }

    public flushTable_args(
      ByteBuffer login,
      String tableName,
      ByteBuffer startRow,
      ByteBuffer endRow,
      boolean wait)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.startRow = startRow;
      this.endRow = endRow;
      this.wait = wait;
      setWaitIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public flushTable_args(flushTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetStartRow()) {
        this.startRow = org.apache.thrift.TBaseHelper.copyBinary(other.startRow);
;
      }
      if (other.isSetEndRow()) {
        this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
;
      }
      this.wait = other.wait;
    }

    public flushTable_args deepCopy() {
      return new flushTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.startRow = null;
      this.endRow = null;
      setWaitIsSet(false);
      this.wait = false;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public flushTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public flushTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public flushTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public byte[] getStartRow() {
      setStartRow(org.apache.thrift.TBaseHelper.rightSize(startRow));
      return startRow == null ? null : startRow.array();
    }

    public ByteBuffer bufferForStartRow() {
      return startRow;
    }

    public flushTable_args setStartRow(byte[] startRow) {
      setStartRow(startRow == null ? (ByteBuffer)null : ByteBuffer.wrap(startRow));
      return this;
    }

    public flushTable_args setStartRow(ByteBuffer startRow) {
      this.startRow = startRow;
      return this;
    }

    public void unsetStartRow() {
      this.startRow = null;
    }

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

    public void setStartRowIsSet(boolean value) {
      if (!value) {
        this.startRow = null;
      }
    }

    public byte[] getEndRow() {
      setEndRow(org.apache.thrift.TBaseHelper.rightSize(endRow));
      return endRow == null ? null : endRow.array();
    }

    public ByteBuffer bufferForEndRow() {
      return endRow;
    }

    public flushTable_args setEndRow(byte[] endRow) {
      setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
      return this;
    }

    public flushTable_args setEndRow(ByteBuffer endRow) {
      this.endRow = endRow;
      return this;
    }

    public void unsetEndRow() {
      this.endRow = null;
    }

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

    public void setEndRowIsSet(boolean value) {
      if (!value) {
        this.endRow = null;
      }
    }

    public boolean isWait() {
      return this.wait;
    }

    public flushTable_args setWait(boolean wait) {
      this.wait = wait;
      setWaitIsSet(true);
      return this;
    }

    public void unsetWait() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    /** Returns true if field wait is set (has been assigned a value) and false otherwise */
    public boolean isSetWait() {
      return EncodingUtils.testBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    public void setWaitIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case START_ROW:
        if (value == null) {
          unsetStartRow();
        } else {
          setStartRow((ByteBuffer)value);
        }
        break;

      case END_ROW:
        if (value == null) {
          unsetEndRow();
        } else {
          setEndRow((ByteBuffer)value);
        }
        break;

      case WAIT:
        if (value == null) {
          unsetWait();
        } else {
          setWait((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case START_ROW:
        return getStartRow();

      case END_ROW:
        return getEndRow();

      case WAIT:
        return Boolean.valueOf(isWait());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case START_ROW:
        return isSetStartRow();
      case END_ROW:
        return isSetEndRow();
      case WAIT:
        return isSetWait();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof flushTable_args)
        return this.equals((flushTable_args)that);
      return false;
    }

    public boolean equals(flushTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_startRow = true && this.isSetStartRow();
      boolean that_present_startRow = true && that.isSetStartRow();
      if (this_present_startRow || that_present_startRow) {
        if (!(this_present_startRow && that_present_startRow))
          return false;
        if (!this.startRow.equals(that.startRow))
          return false;
      }

      boolean this_present_endRow = true && this.isSetEndRow();
      boolean that_present_endRow = true && that.isSetEndRow();
      if (this_present_endRow || that_present_endRow) {
        if (!(this_present_endRow && that_present_endRow))
          return false;
        if (!this.endRow.equals(that.endRow))
          return false;
      }

      boolean this_present_wait = true;
      boolean that_present_wait = true;
      if (this_present_wait || that_present_wait) {
        if (!(this_present_wait && that_present_wait))
          return false;
        if (this.wait != that.wait)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(other.isSetStartRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startRow, other.startRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndRow()).compareTo(other.isSetEndRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endRow, other.endRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWait()).compareTo(other.isSetWait());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWait()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait, other.wait);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("flushTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startRow:");
      if (this.startRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.startRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("endRow:");
      if (this.endRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.endRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("wait:");
      sb.append(this.wait);
      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, 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 flushTable_argsStandardSchemeFactory implements SchemeFactory {
      public flushTable_argsStandardScheme getScheme() {
        return new flushTable_argsStandardScheme();
      }
    }

    private static class flushTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flushTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // START_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.startRow = iprot.readBinary();
                struct.setStartRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // END_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.endRow = iprot.readBinary();
                struct.setEndRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // WAIT
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.wait = iprot.readBool();
                struct.setWaitIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.startRow != null) {
          oprot.writeFieldBegin(START_ROW_FIELD_DESC);
          oprot.writeBinary(struct.startRow);
          oprot.writeFieldEnd();
        }
        if (struct.endRow != null) {
          oprot.writeFieldBegin(END_ROW_FIELD_DESC);
          oprot.writeBinary(struct.endRow);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(WAIT_FIELD_DESC);
        oprot.writeBool(struct.wait);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flushTable_argsTupleSchemeFactory implements SchemeFactory {
      public flushTable_argsTupleScheme getScheme() {
        return new flushTable_argsTupleScheme();
      }
    }

    private static class flushTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flushTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetStartRow()) {
          optionals.set(2);
        }
        if (struct.isSetEndRow()) {
          optionals.set(3);
        }
        if (struct.isSetWait()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetStartRow()) {
          oprot.writeBinary(struct.startRow);
        }
        if (struct.isSetEndRow()) {
          oprot.writeBinary(struct.endRow);
        }
        if (struct.isSetWait()) {
          oprot.writeBool(struct.wait);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flushTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.startRow = iprot.readBinary();
          struct.setStartRowIsSet(true);
        }
        if (incoming.get(3)) {
          struct.endRow = iprot.readBinary();
          struct.setEndRowIsSet(true);
        }
        if (incoming.get(4)) {
          struct.wait = iprot.readBool();
          struct.setWaitIsSet(true);
        }
      }
    }

  }

  public static class flushTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flushTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new flushTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new flushTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushTable_result.class, metaDataMap);
    }

    public flushTable_result() {
    }

    public flushTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public flushTable_result(flushTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public flushTable_result deepCopy() {
      return new flushTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public flushTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public flushTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public flushTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof flushTable_result)
        return this.equals((flushTable_result)that);
      return false;
    }

    public boolean equals(flushTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("flushTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 flushTable_resultStandardSchemeFactory implements SchemeFactory {
      public flushTable_resultStandardScheme getScheme() {
        return new flushTable_resultStandardScheme();
      }
    }

    private static class flushTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flushTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flushTable_resultTupleSchemeFactory implements SchemeFactory {
      public flushTable_resultTupleScheme getScheme() {
        return new flushTable_resultTupleScheme();
      }
    }

    private static class flushTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flushTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flushTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class getDiskUsage_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getDiskUsage_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLES_FIELD_DESC = new org.apache.thrift.protocol.TField("tables", org.apache.thrift.protocol.TType.SET, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getDiskUsage_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getDiskUsage_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public Set tables; // 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 {
      LOGIN((short)1, "login"),
      TABLES((short)2, "tables");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLES
            return TABLES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLES, new org.apache.thrift.meta_data.FieldMetaData("tables", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDiskUsage_args.class, metaDataMap);
    }

    public getDiskUsage_args() {
    }

    public getDiskUsage_args(
      ByteBuffer login,
      Set tables)
    {
      this();
      this.login = login;
      this.tables = tables;
    }

    /**
     * Performs a deep copy on other.
     */
    public getDiskUsage_args(getDiskUsage_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTables()) {
        Set __this__tables = new HashSet(other.tables);
        this.tables = __this__tables;
      }
    }

    public getDiskUsage_args deepCopy() {
      return new getDiskUsage_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tables = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getDiskUsage_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getDiskUsage_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

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

    public java.util.Iterator getTablesIterator() {
      return (this.tables == null) ? null : this.tables.iterator();
    }

    public void addToTables(String elem) {
      if (this.tables == null) {
        this.tables = new HashSet();
      }
      this.tables.add(elem);
    }

    public Set getTables() {
      return this.tables;
    }

    public getDiskUsage_args setTables(Set tables) {
      this.tables = tables;
      return this;
    }

    public void unsetTables() {
      this.tables = null;
    }

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

    public void setTablesIsSet(boolean value) {
      if (!value) {
        this.tables = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLES:
        if (value == null) {
          unsetTables();
        } else {
          setTables((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLES:
        return getTables();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLES:
        return isSetTables();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getDiskUsage_args)
        return this.equals((getDiskUsage_args)that);
      return false;
    }

    public boolean equals(getDiskUsage_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tables = true && this.isSetTables();
      boolean that_present_tables = true && that.isSetTables();
      if (this_present_tables || that_present_tables) {
        if (!(this_present_tables && that_present_tables))
          return false;
        if (!this.tables.equals(that.tables))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTables()).compareTo(other.isSetTables());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTables()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tables, other.tables);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getDiskUsage_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tables:");
      if (this.tables == null) {
        sb.append("null");
      } else {
        sb.append(this.tables);
      }
      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, 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 getDiskUsage_argsStandardSchemeFactory implements SchemeFactory {
      public getDiskUsage_argsStandardScheme getScheme() {
        return new getDiskUsage_argsStandardScheme();
      }
    }

    private static class getDiskUsage_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getDiskUsage_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLES
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set224 = iprot.readSetBegin();
                  struct.tables = new HashSet(2*_set224.size);
                  for (int _i225 = 0; _i225 < _set224.size; ++_i225)
                  {
                    String _elem226;
                    _elem226 = iprot.readString();
                    struct.tables.add(_elem226);
                  }
                  iprot.readSetEnd();
                }
                struct.setTablesIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tables != null) {
          oprot.writeFieldBegin(TABLES_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.tables.size()));
            for (String _iter227 : struct.tables)
            {
              oprot.writeString(_iter227);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getDiskUsage_argsTupleSchemeFactory implements SchemeFactory {
      public getDiskUsage_argsTupleScheme getScheme() {
        return new getDiskUsage_argsTupleScheme();
      }
    }

    private static class getDiskUsage_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getDiskUsage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTables()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTables()) {
          {
            oprot.writeI32(struct.tables.size());
            for (String _iter228 : struct.tables)
            {
              oprot.writeString(_iter228);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getDiskUsage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TSet _set229 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.tables = new HashSet(2*_set229.size);
            for (int _i230 = 0; _i230 < _set229.size; ++_i230)
            {
              String _elem231;
              _elem231 = iprot.readString();
              struct.tables.add(_elem231);
            }
          }
          struct.setTablesIsSet(true);
        }
      }
    }

  }

  public static class getDiskUsage_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getDiskUsage_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getDiskUsage_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getDiskUsage_resultTupleSchemeFactory());
    }

    public List success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, DiskUsage.class))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDiskUsage_result.class, metaDataMap);
    }

    public getDiskUsage_result() {
    }

    public getDiskUsage_result(
      List success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getDiskUsage_result(getDiskUsage_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success.size());
        for (DiskUsage other_element : other.success) {
          __this__success.add(new DiskUsage(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public getDiskUsage_result deepCopy() {
      return new getDiskUsage_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(DiskUsage elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public getDiskUsage_result setSuccess(List 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getDiskUsage_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getDiskUsage_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public getDiskUsage_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getDiskUsage_result)
        return this.equals((getDiskUsage_result)that);
      return false;
    }

    public boolean equals(getDiskUsage_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getDiskUsage_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 getDiskUsage_resultStandardSchemeFactory implements SchemeFactory {
      public getDiskUsage_resultStandardScheme getScheme() {
        return new getDiskUsage_resultStandardScheme();
      }
    }

    private static class getDiskUsage_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getDiskUsage_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 _list232 = iprot.readListBegin();
                  struct.success = new ArrayList(_list232.size);
                  for (int _i233 = 0; _i233 < _list232.size; ++_i233)
                  {
                    DiskUsage _elem234;
                    _elem234 = new DiskUsage();
                    _elem234.read(iprot);
                    struct.success.add(_elem234);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getDiskUsage_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 (DiskUsage _iter235 : struct.success)
            {
              _iter235.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getDiskUsage_resultTupleSchemeFactory implements SchemeFactory {
      public getDiskUsage_resultTupleScheme getScheme() {
        return new getDiskUsage_resultTupleScheme();
      }
    }

    private static class getDiskUsage_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getDiskUsage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (DiskUsage _iter236 : struct.success)
            {
              _iter236.write(oprot);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getDiskUsage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list237 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.success = new ArrayList(_list237.size);
            for (int _i238 = 0; _i238 < _list237.size; ++_i238)
            {
              DiskUsage _elem239;
              _elem239 = new DiskUsage();
              _elem239.read(iprot);
              struct.success.add(_elem239);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class getLocalityGroups_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLocalityGroups_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getLocalityGroups_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getLocalityGroups_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLocalityGroups_args.class, metaDataMap);
    }

    public getLocalityGroups_args() {
    }

    public getLocalityGroups_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public getLocalityGroups_args(getLocalityGroups_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public getLocalityGroups_args deepCopy() {
      return new getLocalityGroups_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getLocalityGroups_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getLocalityGroups_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public getLocalityGroups_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getLocalityGroups_args)
        return this.equals((getLocalityGroups_args)that);
      return false;
    }

    public boolean equals(getLocalityGroups_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getLocalityGroups_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 getLocalityGroups_argsStandardSchemeFactory implements SchemeFactory {
      public getLocalityGroups_argsStandardScheme getScheme() {
        return new getLocalityGroups_argsStandardScheme();
      }
    }

    private static class getLocalityGroups_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getLocalityGroups_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getLocalityGroups_argsTupleSchemeFactory implements SchemeFactory {
      public getLocalityGroups_argsTupleScheme getScheme() {
        return new getLocalityGroups_argsTupleScheme();
      }
    }

    private static class getLocalityGroups_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getLocalityGroups_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getLocalityGroups_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class getLocalityGroups_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLocalityGroups_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getLocalityGroups_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getLocalityGroups_resultTupleSchemeFactory());
    }

    public Map> success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLocalityGroups_result.class, metaDataMap);
    }

    public getLocalityGroups_result() {
    }

    public getLocalityGroups_result(
      Map> success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getLocalityGroups_result(getLocalityGroups_result other) {
      if (other.isSetSuccess()) {
        Map> __this__success = new HashMap>(other.success.size());
        for (Map.Entry> other_element : other.success.entrySet()) {

          String other_element_key = other_element.getKey();
          Set other_element_value = other_element.getValue();

          String __this__success_copy_key = other_element_key;

          Set __this__success_copy_value = new HashSet(other_element_value);

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public getLocalityGroups_result deepCopy() {
      return new getLocalityGroups_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public void putToSuccess(String key, Set val) {
      if (this.success == null) {
        this.success = new HashMap>();
      }
      this.success.put(key, val);
    }

    public Map> getSuccess() {
      return this.success;
    }

    public getLocalityGroups_result setSuccess(Map> 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getLocalityGroups_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getLocalityGroups_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public getLocalityGroups_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map>)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getLocalityGroups_result)
        return this.equals((getLocalityGroups_result)that);
      return false;
    }

    public boolean equals(getLocalityGroups_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getLocalityGroups_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 getLocalityGroups_resultStandardSchemeFactory implements SchemeFactory {
      public getLocalityGroups_resultStandardScheme getScheme() {
        return new getLocalityGroups_resultStandardScheme();
      }
    }

    private static class getLocalityGroups_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getLocalityGroups_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map240 = iprot.readMapBegin();
                  struct.success = new HashMap>(2*_map240.size);
                  for (int _i241 = 0; _i241 < _map240.size; ++_i241)
                  {
                    String _key242;
                    Set _val243;
                    _key242 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TSet _set244 = iprot.readSetBegin();
                      _val243 = new HashSet(2*_set244.size);
                      for (int _i245 = 0; _i245 < _set244.size; ++_i245)
                      {
                        String _elem246;
                        _elem246 = iprot.readString();
                        _val243.add(_elem246);
                      }
                      iprot.readSetEnd();
                    }
                    struct.success.put(_key242, _val243);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, struct.success.size()));
            for (Map.Entry> _iter247 : struct.success.entrySet())
            {
              oprot.writeString(_iter247.getKey());
              {
                oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, _iter247.getValue().size()));
                for (String _iter248 : _iter247.getValue())
                {
                  oprot.writeString(_iter248);
                }
                oprot.writeSetEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getLocalityGroups_resultTupleSchemeFactory implements SchemeFactory {
      public getLocalityGroups_resultTupleScheme getScheme() {
        return new getLocalityGroups_resultTupleScheme();
      }
    }

    private static class getLocalityGroups_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getLocalityGroups_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry> _iter249 : struct.success.entrySet())
            {
              oprot.writeString(_iter249.getKey());
              {
                oprot.writeI32(_iter249.getValue().size());
                for (String _iter250 : _iter249.getValue())
                {
                  oprot.writeString(_iter250);
                }
              }
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getLocalityGroups_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map251 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, iprot.readI32());
            struct.success = new HashMap>(2*_map251.size);
            for (int _i252 = 0; _i252 < _map251.size; ++_i252)
            {
              String _key253;
              Set _val254;
              _key253 = iprot.readString();
              {
                org.apache.thrift.protocol.TSet _set255 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
                _val254 = new HashSet(2*_set255.size);
                for (int _i256 = 0; _i256 < _set255.size; ++_i256)
                {
                  String _elem257;
                  _elem257 = iprot.readString();
                  _val254.add(_elem257);
                }
              }
              struct.success.put(_key253, _val254);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class getIteratorSetting_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIteratorSetting_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField ITERATOR_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("iteratorName", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField SCOPE_FIELD_DESC = new org.apache.thrift.protocol.TField("scope", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getIteratorSetting_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getIteratorSetting_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String iteratorName; // required
    /**
     * 
     * @see IteratorScope
     */
    public IteratorScope scope; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      ITERATOR_NAME((short)3, "iteratorName"),
      /**
       * 
       * @see IteratorScope
       */
      SCOPE((short)4, "scope");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // ITERATOR_NAME
            return ITERATOR_NAME;
          case 4: // SCOPE
            return SCOPE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ITERATOR_NAME, new org.apache.thrift.meta_data.FieldMetaData("iteratorName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SCOPE, new org.apache.thrift.meta_data.FieldMetaData("scope", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, IteratorScope.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getIteratorSetting_args.class, metaDataMap);
    }

    public getIteratorSetting_args() {
    }

    public getIteratorSetting_args(
      ByteBuffer login,
      String tableName,
      String iteratorName,
      IteratorScope scope)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.iteratorName = iteratorName;
      this.scope = scope;
    }

    /**
     * Performs a deep copy on other.
     */
    public getIteratorSetting_args(getIteratorSetting_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetIteratorName()) {
        this.iteratorName = other.iteratorName;
      }
      if (other.isSetScope()) {
        this.scope = other.scope;
      }
    }

    public getIteratorSetting_args deepCopy() {
      return new getIteratorSetting_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.iteratorName = null;
      this.scope = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getIteratorSetting_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getIteratorSetting_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public getIteratorSetting_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getIteratorName() {
      return this.iteratorName;
    }

    public getIteratorSetting_args setIteratorName(String iteratorName) {
      this.iteratorName = iteratorName;
      return this;
    }

    public void unsetIteratorName() {
      this.iteratorName = null;
    }

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

    public void setIteratorNameIsSet(boolean value) {
      if (!value) {
        this.iteratorName = null;
      }
    }

    /**
     * 
     * @see IteratorScope
     */
    public IteratorScope getScope() {
      return this.scope;
    }

    /**
     * 
     * @see IteratorScope
     */
    public getIteratorSetting_args setScope(IteratorScope scope) {
      this.scope = scope;
      return this;
    }

    public void unsetScope() {
      this.scope = null;
    }

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

    public void setScopeIsSet(boolean value) {
      if (!value) {
        this.scope = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case ITERATOR_NAME:
        if (value == null) {
          unsetIteratorName();
        } else {
          setIteratorName((String)value);
        }
        break;

      case SCOPE:
        if (value == null) {
          unsetScope();
        } else {
          setScope((IteratorScope)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case ITERATOR_NAME:
        return getIteratorName();

      case SCOPE:
        return getScope();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case ITERATOR_NAME:
        return isSetIteratorName();
      case SCOPE:
        return isSetScope();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getIteratorSetting_args)
        return this.equals((getIteratorSetting_args)that);
      return false;
    }

    public boolean equals(getIteratorSetting_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_iteratorName = true && this.isSetIteratorName();
      boolean that_present_iteratorName = true && that.isSetIteratorName();
      if (this_present_iteratorName || that_present_iteratorName) {
        if (!(this_present_iteratorName && that_present_iteratorName))
          return false;
        if (!this.iteratorName.equals(that.iteratorName))
          return false;
      }

      boolean this_present_scope = true && this.isSetScope();
      boolean that_present_scope = true && that.isSetScope();
      if (this_present_scope || that_present_scope) {
        if (!(this_present_scope && that_present_scope))
          return false;
        if (!this.scope.equals(that.scope))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetIteratorName()).compareTo(other.isSetIteratorName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIteratorName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iteratorName, other.iteratorName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetScope()).compareTo(other.isSetScope());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScope()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scope, other.scope);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getIteratorSetting_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("iteratorName:");
      if (this.iteratorName == null) {
        sb.append("null");
      } else {
        sb.append(this.iteratorName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scope:");
      if (this.scope == null) {
        sb.append("null");
      } else {
        sb.append(this.scope);
      }
      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, 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 getIteratorSetting_argsStandardSchemeFactory implements SchemeFactory {
      public getIteratorSetting_argsStandardScheme getScheme() {
        return new getIteratorSetting_argsStandardScheme();
      }
    }

    private static class getIteratorSetting_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getIteratorSetting_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // ITERATOR_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.iteratorName = iprot.readString();
                struct.setIteratorNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // SCOPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.scope = IteratorScope.findByValue(iprot.readI32());
                struct.setScopeIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.iteratorName != null) {
          oprot.writeFieldBegin(ITERATOR_NAME_FIELD_DESC);
          oprot.writeString(struct.iteratorName);
          oprot.writeFieldEnd();
        }
        if (struct.scope != null) {
          oprot.writeFieldBegin(SCOPE_FIELD_DESC);
          oprot.writeI32(struct.scope.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getIteratorSetting_argsTupleSchemeFactory implements SchemeFactory {
      public getIteratorSetting_argsTupleScheme getScheme() {
        return new getIteratorSetting_argsTupleScheme();
      }
    }

    private static class getIteratorSetting_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getIteratorSetting_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetIteratorName()) {
          optionals.set(2);
        }
        if (struct.isSetScope()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetIteratorName()) {
          oprot.writeString(struct.iteratorName);
        }
        if (struct.isSetScope()) {
          oprot.writeI32(struct.scope.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getIteratorSetting_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.iteratorName = iprot.readString();
          struct.setIteratorNameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.scope = IteratorScope.findByValue(iprot.readI32());
          struct.setScopeIsSet(true);
        }
      }
    }

  }

  public static class getIteratorSetting_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIteratorSetting_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getIteratorSetting_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getIteratorSetting_resultTupleSchemeFactory());
    }

    public IteratorSetting success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, IteratorSetting.class)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getIteratorSetting_result.class, metaDataMap);
    }

    public getIteratorSetting_result() {
    }

    public getIteratorSetting_result(
      IteratorSetting success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getIteratorSetting_result(getIteratorSetting_result other) {
      if (other.isSetSuccess()) {
        this.success = new IteratorSetting(other.success);
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public getIteratorSetting_result deepCopy() {
      return new getIteratorSetting_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public IteratorSetting getSuccess() {
      return this.success;
    }

    public getIteratorSetting_result setSuccess(IteratorSetting 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getIteratorSetting_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getIteratorSetting_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public getIteratorSetting_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((IteratorSetting)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getIteratorSetting_result)
        return this.equals((getIteratorSetting_result)that);
      return false;
    }

    public boolean equals(getIteratorSetting_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getIteratorSetting_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 getIteratorSetting_resultStandardSchemeFactory implements SchemeFactory {
      public getIteratorSetting_resultStandardScheme getScheme() {
        return new getIteratorSetting_resultStandardScheme();
      }
    }

    private static class getIteratorSetting_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getIteratorSetting_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 IteratorSetting();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getIteratorSetting_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.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getIteratorSetting_resultTupleSchemeFactory implements SchemeFactory {
      public getIteratorSetting_resultTupleScheme getScheme() {
        return new getIteratorSetting_resultTupleScheme();
      }
    }

    private static class getIteratorSetting_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getIteratorSetting_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getIteratorSetting_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new IteratorSetting();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class getMaxRow_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMaxRow_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField AUTHS_FIELD_DESC = new org.apache.thrift.protocol.TField("auths", org.apache.thrift.protocol.TType.SET, (short)3);
    private static final org.apache.thrift.protocol.TField START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField START_INCLUSIVE_FIELD_DESC = new org.apache.thrift.protocol.TField("startInclusive", org.apache.thrift.protocol.TType.BOOL, (short)5);
    private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("endRow", org.apache.thrift.protocol.TType.STRING, (short)6);
    private static final org.apache.thrift.protocol.TField END_INCLUSIVE_FIELD_DESC = new org.apache.thrift.protocol.TField("endInclusive", org.apache.thrift.protocol.TType.BOOL, (short)7);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMaxRow_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMaxRow_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public Set auths; // required
    public ByteBuffer startRow; // required
    public boolean startInclusive; // required
    public ByteBuffer endRow; // required
    public boolean endInclusive; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      AUTHS((short)3, "auths"),
      START_ROW((short)4, "startRow"),
      START_INCLUSIVE((short)5, "startInclusive"),
      END_ROW((short)6, "endRow"),
      END_INCLUSIVE((short)7, "endInclusive");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // AUTHS
            return AUTHS;
          case 4: // START_ROW
            return START_ROW;
          case 5: // START_INCLUSIVE
            return START_INCLUSIVE;
          case 6: // END_ROW
            return END_ROW;
          case 7: // END_INCLUSIVE
            return END_INCLUSIVE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __STARTINCLUSIVE_ISSET_ID = 0;
    private static final int __ENDINCLUSIVE_ISSET_ID = 1;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.AUTHS, new org.apache.thrift.meta_data.FieldMetaData("auths", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      tmpMap.put(_Fields.START_ROW, new org.apache.thrift.meta_data.FieldMetaData("startRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.START_INCLUSIVE, new org.apache.thrift.meta_data.FieldMetaData("startInclusive", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.END_ROW, new org.apache.thrift.meta_data.FieldMetaData("endRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.END_INCLUSIVE, new org.apache.thrift.meta_data.FieldMetaData("endInclusive", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMaxRow_args.class, metaDataMap);
    }

    public getMaxRow_args() {
    }

    public getMaxRow_args(
      ByteBuffer login,
      String tableName,
      Set auths,
      ByteBuffer startRow,
      boolean startInclusive,
      ByteBuffer endRow,
      boolean endInclusive)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.auths = auths;
      this.startRow = startRow;
      this.startInclusive = startInclusive;
      setStartInclusiveIsSet(true);
      this.endRow = endRow;
      this.endInclusive = endInclusive;
      setEndInclusiveIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public getMaxRow_args(getMaxRow_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetAuths()) {
        Set __this__auths = new HashSet(other.auths);
        this.auths = __this__auths;
      }
      if (other.isSetStartRow()) {
        this.startRow = org.apache.thrift.TBaseHelper.copyBinary(other.startRow);
;
      }
      this.startInclusive = other.startInclusive;
      if (other.isSetEndRow()) {
        this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
;
      }
      this.endInclusive = other.endInclusive;
    }

    public getMaxRow_args deepCopy() {
      return new getMaxRow_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.auths = null;
      this.startRow = null;
      setStartInclusiveIsSet(false);
      this.startInclusive = false;
      this.endRow = null;
      setEndInclusiveIsSet(false);
      this.endInclusive = false;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getMaxRow_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getMaxRow_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public getMaxRow_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

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

    public java.util.Iterator getAuthsIterator() {
      return (this.auths == null) ? null : this.auths.iterator();
    }

    public void addToAuths(ByteBuffer elem) {
      if (this.auths == null) {
        this.auths = new HashSet();
      }
      this.auths.add(elem);
    }

    public Set getAuths() {
      return this.auths;
    }

    public getMaxRow_args setAuths(Set auths) {
      this.auths = auths;
      return this;
    }

    public void unsetAuths() {
      this.auths = null;
    }

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

    public void setAuthsIsSet(boolean value) {
      if (!value) {
        this.auths = null;
      }
    }

    public byte[] getStartRow() {
      setStartRow(org.apache.thrift.TBaseHelper.rightSize(startRow));
      return startRow == null ? null : startRow.array();
    }

    public ByteBuffer bufferForStartRow() {
      return startRow;
    }

    public getMaxRow_args setStartRow(byte[] startRow) {
      setStartRow(startRow == null ? (ByteBuffer)null : ByteBuffer.wrap(startRow));
      return this;
    }

    public getMaxRow_args setStartRow(ByteBuffer startRow) {
      this.startRow = startRow;
      return this;
    }

    public void unsetStartRow() {
      this.startRow = null;
    }

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

    public void setStartRowIsSet(boolean value) {
      if (!value) {
        this.startRow = null;
      }
    }

    public boolean isStartInclusive() {
      return this.startInclusive;
    }

    public getMaxRow_args setStartInclusive(boolean startInclusive) {
      this.startInclusive = startInclusive;
      setStartInclusiveIsSet(true);
      return this;
    }

    public void unsetStartInclusive() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __STARTINCLUSIVE_ISSET_ID);
    }

    /** Returns true if field startInclusive is set (has been assigned a value) and false otherwise */
    public boolean isSetStartInclusive() {
      return EncodingUtils.testBit(__isset_bitfield, __STARTINCLUSIVE_ISSET_ID);
    }

    public void setStartInclusiveIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __STARTINCLUSIVE_ISSET_ID, value);
    }

    public byte[] getEndRow() {
      setEndRow(org.apache.thrift.TBaseHelper.rightSize(endRow));
      return endRow == null ? null : endRow.array();
    }

    public ByteBuffer bufferForEndRow() {
      return endRow;
    }

    public getMaxRow_args setEndRow(byte[] endRow) {
      setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
      return this;
    }

    public getMaxRow_args setEndRow(ByteBuffer endRow) {
      this.endRow = endRow;
      return this;
    }

    public void unsetEndRow() {
      this.endRow = null;
    }

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

    public void setEndRowIsSet(boolean value) {
      if (!value) {
        this.endRow = null;
      }
    }

    public boolean isEndInclusive() {
      return this.endInclusive;
    }

    public getMaxRow_args setEndInclusive(boolean endInclusive) {
      this.endInclusive = endInclusive;
      setEndInclusiveIsSet(true);
      return this;
    }

    public void unsetEndInclusive() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENDINCLUSIVE_ISSET_ID);
    }

    /** Returns true if field endInclusive is set (has been assigned a value) and false otherwise */
    public boolean isSetEndInclusive() {
      return EncodingUtils.testBit(__isset_bitfield, __ENDINCLUSIVE_ISSET_ID);
    }

    public void setEndInclusiveIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENDINCLUSIVE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case AUTHS:
        if (value == null) {
          unsetAuths();
        } else {
          setAuths((Set)value);
        }
        break;

      case START_ROW:
        if (value == null) {
          unsetStartRow();
        } else {
          setStartRow((ByteBuffer)value);
        }
        break;

      case START_INCLUSIVE:
        if (value == null) {
          unsetStartInclusive();
        } else {
          setStartInclusive((Boolean)value);
        }
        break;

      case END_ROW:
        if (value == null) {
          unsetEndRow();
        } else {
          setEndRow((ByteBuffer)value);
        }
        break;

      case END_INCLUSIVE:
        if (value == null) {
          unsetEndInclusive();
        } else {
          setEndInclusive((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case AUTHS:
        return getAuths();

      case START_ROW:
        return getStartRow();

      case START_INCLUSIVE:
        return Boolean.valueOf(isStartInclusive());

      case END_ROW:
        return getEndRow();

      case END_INCLUSIVE:
        return Boolean.valueOf(isEndInclusive());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case AUTHS:
        return isSetAuths();
      case START_ROW:
        return isSetStartRow();
      case START_INCLUSIVE:
        return isSetStartInclusive();
      case END_ROW:
        return isSetEndRow();
      case END_INCLUSIVE:
        return isSetEndInclusive();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMaxRow_args)
        return this.equals((getMaxRow_args)that);
      return false;
    }

    public boolean equals(getMaxRow_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_auths = true && this.isSetAuths();
      boolean that_present_auths = true && that.isSetAuths();
      if (this_present_auths || that_present_auths) {
        if (!(this_present_auths && that_present_auths))
          return false;
        if (!this.auths.equals(that.auths))
          return false;
      }

      boolean this_present_startRow = true && this.isSetStartRow();
      boolean that_present_startRow = true && that.isSetStartRow();
      if (this_present_startRow || that_present_startRow) {
        if (!(this_present_startRow && that_present_startRow))
          return false;
        if (!this.startRow.equals(that.startRow))
          return false;
      }

      boolean this_present_startInclusive = true;
      boolean that_present_startInclusive = true;
      if (this_present_startInclusive || that_present_startInclusive) {
        if (!(this_present_startInclusive && that_present_startInclusive))
          return false;
        if (this.startInclusive != that.startInclusive)
          return false;
      }

      boolean this_present_endRow = true && this.isSetEndRow();
      boolean that_present_endRow = true && that.isSetEndRow();
      if (this_present_endRow || that_present_endRow) {
        if (!(this_present_endRow && that_present_endRow))
          return false;
        if (!this.endRow.equals(that.endRow))
          return false;
      }

      boolean this_present_endInclusive = true;
      boolean that_present_endInclusive = true;
      if (this_present_endInclusive || that_present_endInclusive) {
        if (!(this_present_endInclusive && that_present_endInclusive))
          return false;
        if (this.endInclusive != that.endInclusive)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAuths()).compareTo(other.isSetAuths());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuths()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.auths, other.auths);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(other.isSetStartRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startRow, other.startRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartInclusive()).compareTo(other.isSetStartInclusive());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartInclusive()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startInclusive, other.startInclusive);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndRow()).compareTo(other.isSetEndRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endRow, other.endRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndInclusive()).compareTo(other.isSetEndInclusive());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndInclusive()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endInclusive, other.endInclusive);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMaxRow_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("auths:");
      if (this.auths == null) {
        sb.append("null");
      } else {
        sb.append(this.auths);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startRow:");
      if (this.startRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.startRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startInclusive:");
      sb.append(this.startInclusive);
      first = false;
      if (!first) sb.append(", ");
      sb.append("endRow:");
      if (this.endRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.endRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("endInclusive:");
      sb.append(this.endInclusive);
      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, 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 getMaxRow_argsStandardSchemeFactory implements SchemeFactory {
      public getMaxRow_argsStandardScheme getScheme() {
        return new getMaxRow_argsStandardScheme();
      }
    }

    private static class getMaxRow_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMaxRow_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // AUTHS
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set258 = iprot.readSetBegin();
                  struct.auths = new HashSet(2*_set258.size);
                  for (int _i259 = 0; _i259 < _set258.size; ++_i259)
                  {
                    ByteBuffer _elem260;
                    _elem260 = iprot.readBinary();
                    struct.auths.add(_elem260);
                  }
                  iprot.readSetEnd();
                }
                struct.setAuthsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // START_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.startRow = iprot.readBinary();
                struct.setStartRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // START_INCLUSIVE
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.startInclusive = iprot.readBool();
                struct.setStartInclusiveIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // END_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.endRow = iprot.readBinary();
                struct.setEndRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 7: // END_INCLUSIVE
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.endInclusive = iprot.readBool();
                struct.setEndInclusiveIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.auths != null) {
          oprot.writeFieldBegin(AUTHS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.auths.size()));
            for (ByteBuffer _iter261 : struct.auths)
            {
              oprot.writeBinary(_iter261);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.startRow != null) {
          oprot.writeFieldBegin(START_ROW_FIELD_DESC);
          oprot.writeBinary(struct.startRow);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(START_INCLUSIVE_FIELD_DESC);
        oprot.writeBool(struct.startInclusive);
        oprot.writeFieldEnd();
        if (struct.endRow != null) {
          oprot.writeFieldBegin(END_ROW_FIELD_DESC);
          oprot.writeBinary(struct.endRow);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(END_INCLUSIVE_FIELD_DESC);
        oprot.writeBool(struct.endInclusive);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMaxRow_argsTupleSchemeFactory implements SchemeFactory {
      public getMaxRow_argsTupleScheme getScheme() {
        return new getMaxRow_argsTupleScheme();
      }
    }

    private static class getMaxRow_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMaxRow_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetAuths()) {
          optionals.set(2);
        }
        if (struct.isSetStartRow()) {
          optionals.set(3);
        }
        if (struct.isSetStartInclusive()) {
          optionals.set(4);
        }
        if (struct.isSetEndRow()) {
          optionals.set(5);
        }
        if (struct.isSetEndInclusive()) {
          optionals.set(6);
        }
        oprot.writeBitSet(optionals, 7);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetAuths()) {
          {
            oprot.writeI32(struct.auths.size());
            for (ByteBuffer _iter262 : struct.auths)
            {
              oprot.writeBinary(_iter262);
            }
          }
        }
        if (struct.isSetStartRow()) {
          oprot.writeBinary(struct.startRow);
        }
        if (struct.isSetStartInclusive()) {
          oprot.writeBool(struct.startInclusive);
        }
        if (struct.isSetEndRow()) {
          oprot.writeBinary(struct.endRow);
        }
        if (struct.isSetEndInclusive()) {
          oprot.writeBool(struct.endInclusive);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMaxRow_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(7);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TSet _set263 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.auths = new HashSet(2*_set263.size);
            for (int _i264 = 0; _i264 < _set263.size; ++_i264)
            {
              ByteBuffer _elem265;
              _elem265 = iprot.readBinary();
              struct.auths.add(_elem265);
            }
          }
          struct.setAuthsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.startRow = iprot.readBinary();
          struct.setStartRowIsSet(true);
        }
        if (incoming.get(4)) {
          struct.startInclusive = iprot.readBool();
          struct.setStartInclusiveIsSet(true);
        }
        if (incoming.get(5)) {
          struct.endRow = iprot.readBinary();
          struct.setEndRowIsSet(true);
        }
        if (incoming.get(6)) {
          struct.endInclusive = iprot.readBool();
          struct.setEndInclusiveIsSet(true);
        }
      }
    }

  }

  public static class getMaxRow_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMaxRow_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMaxRow_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMaxRow_resultTupleSchemeFactory());
    }

    public ByteBuffer success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMaxRow_result.class, metaDataMap);
    }

    public getMaxRow_result() {
    }

    public getMaxRow_result(
      ByteBuffer success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getMaxRow_result(getMaxRow_result other) {
      if (other.isSetSuccess()) {
        this.success = org.apache.thrift.TBaseHelper.copyBinary(other.success);
;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public getMaxRow_result deepCopy() {
      return new getMaxRow_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public byte[] getSuccess() {
      setSuccess(org.apache.thrift.TBaseHelper.rightSize(success));
      return success == null ? null : success.array();
    }

    public ByteBuffer bufferForSuccess() {
      return success;
    }

    public getMaxRow_result setSuccess(byte[] success) {
      setSuccess(success == null ? (ByteBuffer)null : ByteBuffer.wrap(success));
      return this;
    }

    public getMaxRow_result setSuccess(ByteBuffer 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getMaxRow_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getMaxRow_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public getMaxRow_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ByteBuffer)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMaxRow_result)
        return this.equals((getMaxRow_result)that);
      return false;
    }

    public boolean equals(getMaxRow_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMaxRow_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.success, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 getMaxRow_resultStandardSchemeFactory implements SchemeFactory {
      public getMaxRow_resultStandardScheme getScheme() {
        return new getMaxRow_resultStandardScheme();
      }
    }

    private static class getMaxRow_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMaxRow_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.STRING) {
                struct.success = iprot.readBinary();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBinary(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMaxRow_resultTupleSchemeFactory implements SchemeFactory {
      public getMaxRow_resultTupleScheme getScheme() {
        return new getMaxRow_resultTupleScheme();
      }
    }

    private static class getMaxRow_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMaxRow_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeBinary(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMaxRow_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readBinary();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class getTableProperties_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTableProperties_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getTableProperties_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getTableProperties_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTableProperties_args.class, metaDataMap);
    }

    public getTableProperties_args() {
    }

    public getTableProperties_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public getTableProperties_args(getTableProperties_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public getTableProperties_args deepCopy() {
      return new getTableProperties_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getTableProperties_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getTableProperties_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public getTableProperties_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getTableProperties_args)
        return this.equals((getTableProperties_args)that);
      return false;
    }

    public boolean equals(getTableProperties_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getTableProperties_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 getTableProperties_argsStandardSchemeFactory implements SchemeFactory {
      public getTableProperties_argsStandardScheme getScheme() {
        return new getTableProperties_argsStandardScheme();
      }
    }

    private static class getTableProperties_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getTableProperties_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getTableProperties_argsTupleSchemeFactory implements SchemeFactory {
      public getTableProperties_argsTupleScheme getScheme() {
        return new getTableProperties_argsTupleScheme();
      }
    }

    private static class getTableProperties_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getTableProperties_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getTableProperties_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class getTableProperties_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTableProperties_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getTableProperties_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getTableProperties_resultTupleSchemeFactory());
    }

    public Map success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTableProperties_result.class, metaDataMap);
    }

    public getTableProperties_result() {
    }

    public getTableProperties_result(
      Map success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getTableProperties_result(getTableProperties_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public getTableProperties_result deepCopy() {
      return new getTableProperties_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public void putToSuccess(String key, String val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public getTableProperties_result setSuccess(Map 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getTableProperties_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getTableProperties_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public getTableProperties_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getTableProperties_result)
        return this.equals((getTableProperties_result)that);
      return false;
    }

    public boolean equals(getTableProperties_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getTableProperties_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 getTableProperties_resultStandardSchemeFactory implements SchemeFactory {
      public getTableProperties_resultStandardScheme getScheme() {
        return new getTableProperties_resultStandardScheme();
      }
    }

    private static class getTableProperties_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getTableProperties_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map266 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map266.size);
                  for (int _i267 = 0; _i267 < _map266.size; ++_i267)
                  {
                    String _key268;
                    String _val269;
                    _key268 = iprot.readString();
                    _val269 = iprot.readString();
                    struct.success.put(_key268, _val269);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (Map.Entry _iter270 : struct.success.entrySet())
            {
              oprot.writeString(_iter270.getKey());
              oprot.writeString(_iter270.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getTableProperties_resultTupleSchemeFactory implements SchemeFactory {
      public getTableProperties_resultTupleScheme getScheme() {
        return new getTableProperties_resultTupleScheme();
      }
    }

    private static class getTableProperties_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getTableProperties_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter271 : struct.success.entrySet())
            {
              oprot.writeString(_iter271.getKey());
              oprot.writeString(_iter271.getValue());
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getTableProperties_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map272 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashMap(2*_map272.size);
            for (int _i273 = 0; _i273 < _map272.size; ++_i273)
            {
              String _key274;
              String _val275;
              _key274 = iprot.readString();
              _val275 = iprot.readString();
              struct.success.put(_key274, _val275);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class importDirectory_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("importDirectory_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField IMPORT_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("importDir", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField FAILURE_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("failureDir", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField SET_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("setTime", org.apache.thrift.protocol.TType.BOOL, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new importDirectory_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new importDirectory_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String importDir; // required
    public String failureDir; // required
    public boolean setTime; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      IMPORT_DIR((short)3, "importDir"),
      FAILURE_DIR((short)4, "failureDir"),
      SET_TIME((short)5, "setTime");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // IMPORT_DIR
            return IMPORT_DIR;
          case 4: // FAILURE_DIR
            return FAILURE_DIR;
          case 5: // SET_TIME
            return SET_TIME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SETTIME_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.IMPORT_DIR, new org.apache.thrift.meta_data.FieldMetaData("importDir", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FAILURE_DIR, new org.apache.thrift.meta_data.FieldMetaData("failureDir", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SET_TIME, new org.apache.thrift.meta_data.FieldMetaData("setTime", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(importDirectory_args.class, metaDataMap);
    }

    public importDirectory_args() {
    }

    public importDirectory_args(
      ByteBuffer login,
      String tableName,
      String importDir,
      String failureDir,
      boolean setTime)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.importDir = importDir;
      this.failureDir = failureDir;
      this.setTime = setTime;
      setSetTimeIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public importDirectory_args(importDirectory_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetImportDir()) {
        this.importDir = other.importDir;
      }
      if (other.isSetFailureDir()) {
        this.failureDir = other.failureDir;
      }
      this.setTime = other.setTime;
    }

    public importDirectory_args deepCopy() {
      return new importDirectory_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.importDir = null;
      this.failureDir = null;
      setSetTimeIsSet(false);
      this.setTime = false;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public importDirectory_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public importDirectory_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public importDirectory_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getImportDir() {
      return this.importDir;
    }

    public importDirectory_args setImportDir(String importDir) {
      this.importDir = importDir;
      return this;
    }

    public void unsetImportDir() {
      this.importDir = null;
    }

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

    public void setImportDirIsSet(boolean value) {
      if (!value) {
        this.importDir = null;
      }
    }

    public String getFailureDir() {
      return this.failureDir;
    }

    public importDirectory_args setFailureDir(String failureDir) {
      this.failureDir = failureDir;
      return this;
    }

    public void unsetFailureDir() {
      this.failureDir = null;
    }

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

    public void setFailureDirIsSet(boolean value) {
      if (!value) {
        this.failureDir = null;
      }
    }

    public boolean isSetTime() {
      return this.setTime;
    }

    public importDirectory_args setSetTime(boolean setTime) {
      this.setTime = setTime;
      setSetTimeIsSet(true);
      return this;
    }

    public void unsetSetTime() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SETTIME_ISSET_ID);
    }

    /** Returns true if field setTime is set (has been assigned a value) and false otherwise */
    public boolean isSetSetTime() {
      return EncodingUtils.testBit(__isset_bitfield, __SETTIME_ISSET_ID);
    }

    public void setSetTimeIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SETTIME_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case IMPORT_DIR:
        if (value == null) {
          unsetImportDir();
        } else {
          setImportDir((String)value);
        }
        break;

      case FAILURE_DIR:
        if (value == null) {
          unsetFailureDir();
        } else {
          setFailureDir((String)value);
        }
        break;

      case SET_TIME:
        if (value == null) {
          unsetSetTime();
        } else {
          setSetTime((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case IMPORT_DIR:
        return getImportDir();

      case FAILURE_DIR:
        return getFailureDir();

      case SET_TIME:
        return Boolean.valueOf(isSetTime());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case IMPORT_DIR:
        return isSetImportDir();
      case FAILURE_DIR:
        return isSetFailureDir();
      case SET_TIME:
        return isSetSetTime();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof importDirectory_args)
        return this.equals((importDirectory_args)that);
      return false;
    }

    public boolean equals(importDirectory_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_importDir = true && this.isSetImportDir();
      boolean that_present_importDir = true && that.isSetImportDir();
      if (this_present_importDir || that_present_importDir) {
        if (!(this_present_importDir && that_present_importDir))
          return false;
        if (!this.importDir.equals(that.importDir))
          return false;
      }

      boolean this_present_failureDir = true && this.isSetFailureDir();
      boolean that_present_failureDir = true && that.isSetFailureDir();
      if (this_present_failureDir || that_present_failureDir) {
        if (!(this_present_failureDir && that_present_failureDir))
          return false;
        if (!this.failureDir.equals(that.failureDir))
          return false;
      }

      boolean this_present_setTime = true;
      boolean that_present_setTime = true;
      if (this_present_setTime || that_present_setTime) {
        if (!(this_present_setTime && that_present_setTime))
          return false;
        if (this.setTime != that.setTime)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetImportDir()).compareTo(other.isSetImportDir());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetImportDir()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.importDir, other.importDir);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetFailureDir()).compareTo(other.isSetFailureDir());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFailureDir()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failureDir, other.failureDir);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSetTime()).compareTo(other.isSetSetTime());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSetTime()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.setTime, other.setTime);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("importDirectory_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("importDir:");
      if (this.importDir == null) {
        sb.append("null");
      } else {
        sb.append(this.importDir);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("failureDir:");
      if (this.failureDir == null) {
        sb.append("null");
      } else {
        sb.append(this.failureDir);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("setTime:");
      sb.append(this.setTime);
      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, 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 importDirectory_argsStandardSchemeFactory implements SchemeFactory {
      public importDirectory_argsStandardScheme getScheme() {
        return new importDirectory_argsStandardScheme();
      }
    }

    private static class importDirectory_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, importDirectory_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // IMPORT_DIR
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.importDir = iprot.readString();
                struct.setImportDirIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // FAILURE_DIR
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.failureDir = iprot.readString();
                struct.setFailureDirIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // SET_TIME
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.setTime = iprot.readBool();
                struct.setSetTimeIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.importDir != null) {
          oprot.writeFieldBegin(IMPORT_DIR_FIELD_DESC);
          oprot.writeString(struct.importDir);
          oprot.writeFieldEnd();
        }
        if (struct.failureDir != null) {
          oprot.writeFieldBegin(FAILURE_DIR_FIELD_DESC);
          oprot.writeString(struct.failureDir);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(SET_TIME_FIELD_DESC);
        oprot.writeBool(struct.setTime);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class importDirectory_argsTupleSchemeFactory implements SchemeFactory {
      public importDirectory_argsTupleScheme getScheme() {
        return new importDirectory_argsTupleScheme();
      }
    }

    private static class importDirectory_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, importDirectory_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetImportDir()) {
          optionals.set(2);
        }
        if (struct.isSetFailureDir()) {
          optionals.set(3);
        }
        if (struct.isSetSetTime()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetImportDir()) {
          oprot.writeString(struct.importDir);
        }
        if (struct.isSetFailureDir()) {
          oprot.writeString(struct.failureDir);
        }
        if (struct.isSetSetTime()) {
          oprot.writeBool(struct.setTime);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, importDirectory_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.importDir = iprot.readString();
          struct.setImportDirIsSet(true);
        }
        if (incoming.get(3)) {
          struct.failureDir = iprot.readString();
          struct.setFailureDirIsSet(true);
        }
        if (incoming.get(4)) {
          struct.setTime = iprot.readBool();
          struct.setSetTimeIsSet(true);
        }
      }
    }

  }

  public static class importDirectory_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("importDirectory_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH4_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch4", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new importDirectory_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new importDirectory_resultTupleSchemeFactory());
    }

    public TableNotFoundException ouch1; // required
    public AccumuloException ouch3; // required
    public AccumuloSecurityException ouch4; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH3((short)2, "ouch3"),
      OUCH4((short)3, "ouch4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH3
            return OUCH3;
          case 3: // OUCH4
            return OUCH4;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH4, new org.apache.thrift.meta_data.FieldMetaData("ouch4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(importDirectory_result.class, metaDataMap);
    }

    public importDirectory_result() {
    }

    public importDirectory_result(
      TableNotFoundException ouch1,
      AccumuloException ouch3,
      AccumuloSecurityException ouch4)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch3 = ouch3;
      this.ouch4 = ouch4;
    }

    /**
     * Performs a deep copy on other.
     */
    public importDirectory_result(importDirectory_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new TableNotFoundException(other.ouch1);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloException(other.ouch3);
      }
      if (other.isSetOuch4()) {
        this.ouch4 = new AccumuloSecurityException(other.ouch4);
      }
    }

    public importDirectory_result deepCopy() {
      return new importDirectory_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch3 = null;
      this.ouch4 = null;
    }

    public TableNotFoundException getOuch1() {
      return this.ouch1;
    }

    public importDirectory_result setOuch1(TableNotFoundException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloException getOuch3() {
      return this.ouch3;
    }

    public importDirectory_result setOuch3(AccumuloException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public AccumuloSecurityException getOuch4() {
      return this.ouch4;
    }

    public importDirectory_result setOuch4(AccumuloSecurityException ouch4) {
      this.ouch4 = ouch4;
      return this;
    }

    public void unsetOuch4() {
      this.ouch4 = null;
    }

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

    public void setOuch4IsSet(boolean value) {
      if (!value) {
        this.ouch4 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((TableNotFoundException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloException)value);
        }
        break;

      case OUCH4:
        if (value == null) {
          unsetOuch4();
        } else {
          setOuch4((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH3:
        return getOuch3();

      case OUCH4:
        return getOuch4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH3:
        return isSetOuch3();
      case OUCH4:
        return isSetOuch4();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof importDirectory_result)
        return this.equals((importDirectory_result)that);
      return false;
    }

    public boolean equals(importDirectory_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      boolean this_present_ouch4 = true && this.isSetOuch4();
      boolean that_present_ouch4 = true && that.isSetOuch4();
      if (this_present_ouch4 || that_present_ouch4) {
        if (!(this_present_ouch4 && that_present_ouch4))
          return false;
        if (!this.ouch4.equals(that.ouch4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch4()).compareTo(other.isSetOuch4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch4, other.ouch4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("importDirectory_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch4:");
      if (this.ouch4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch4);
      }
      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, 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 importDirectory_resultStandardSchemeFactory implements SchemeFactory {
      public importDirectory_resultStandardScheme getScheme() {
        return new importDirectory_resultStandardScheme();
      }
    }

    private static class importDirectory_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, importDirectory_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new TableNotFoundException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch4 = new AccumuloSecurityException();
                struct.ouch4.read(iprot);
                struct.setOuch4IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch4 != null) {
          oprot.writeFieldBegin(OUCH4_FIELD_DESC);
          struct.ouch4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class importDirectory_resultTupleSchemeFactory implements SchemeFactory {
      public importDirectory_resultTupleScheme getScheme() {
        return new importDirectory_resultTupleScheme();
      }
    }

    private static class importDirectory_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, importDirectory_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch3()) {
          optionals.set(1);
        }
        if (struct.isSetOuch4()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
        if (struct.isSetOuch4()) {
          struct.ouch4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, importDirectory_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new TableNotFoundException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch3 = new AccumuloException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch4 = new AccumuloSecurityException();
          struct.ouch4.read(iprot);
          struct.setOuch4IsSet(true);
        }
      }
    }

  }

  public static class importTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("importTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField IMPORT_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("importDir", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new importTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new importTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String importDir; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      IMPORT_DIR((short)3, "importDir");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // IMPORT_DIR
            return IMPORT_DIR;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.IMPORT_DIR, new org.apache.thrift.meta_data.FieldMetaData("importDir", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(importTable_args.class, metaDataMap);
    }

    public importTable_args() {
    }

    public importTable_args(
      ByteBuffer login,
      String tableName,
      String importDir)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.importDir = importDir;
    }

    /**
     * Performs a deep copy on other.
     */
    public importTable_args(importTable_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetImportDir()) {
        this.importDir = other.importDir;
      }
    }

    public importTable_args deepCopy() {
      return new importTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.importDir = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public importTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public importTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public importTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getImportDir() {
      return this.importDir;
    }

    public importTable_args setImportDir(String importDir) {
      this.importDir = importDir;
      return this;
    }

    public void unsetImportDir() {
      this.importDir = null;
    }

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

    public void setImportDirIsSet(boolean value) {
      if (!value) {
        this.importDir = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case IMPORT_DIR:
        if (value == null) {
          unsetImportDir();
        } else {
          setImportDir((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case IMPORT_DIR:
        return getImportDir();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case IMPORT_DIR:
        return isSetImportDir();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof importTable_args)
        return this.equals((importTable_args)that);
      return false;
    }

    public boolean equals(importTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_importDir = true && this.isSetImportDir();
      boolean that_present_importDir = true && that.isSetImportDir();
      if (this_present_importDir || that_present_importDir) {
        if (!(this_present_importDir && that_present_importDir))
          return false;
        if (!this.importDir.equals(that.importDir))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetImportDir()).compareTo(other.isSetImportDir());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetImportDir()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.importDir, other.importDir);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("importTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("importDir:");
      if (this.importDir == null) {
        sb.append("null");
      } else {
        sb.append(this.importDir);
      }
      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, 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 importTable_argsStandardSchemeFactory implements SchemeFactory {
      public importTable_argsStandardScheme getScheme() {
        return new importTable_argsStandardScheme();
      }
    }

    private static class importTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, importTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // IMPORT_DIR
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.importDir = iprot.readString();
                struct.setImportDirIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.importDir != null) {
          oprot.writeFieldBegin(IMPORT_DIR_FIELD_DESC);
          oprot.writeString(struct.importDir);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class importTable_argsTupleSchemeFactory implements SchemeFactory {
      public importTable_argsTupleScheme getScheme() {
        return new importTable_argsTupleScheme();
      }
    }

    private static class importTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, importTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetImportDir()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetImportDir()) {
          oprot.writeString(struct.importDir);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, importTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.importDir = iprot.readString();
          struct.setImportDirIsSet(true);
        }
      }
    }

  }

  public static class importTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("importTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new importTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new importTable_resultTupleSchemeFactory());
    }

    public TableExistsException ouch1; // required
    public AccumuloException ouch2; // required
    public AccumuloSecurityException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(importTable_result.class, metaDataMap);
    }

    public importTable_result() {
    }

    public importTable_result(
      TableExistsException ouch1,
      AccumuloException ouch2,
      AccumuloSecurityException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public importTable_result(importTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new TableExistsException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloSecurityException(other.ouch3);
      }
    }

    public importTable_result deepCopy() {
      return new importTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public TableExistsException getOuch1() {
      return this.ouch1;
    }

    public importTable_result setOuch1(TableExistsException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloException getOuch2() {
      return this.ouch2;
    }

    public importTable_result setOuch2(AccumuloException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloSecurityException getOuch3() {
      return this.ouch3;
    }

    public importTable_result setOuch3(AccumuloSecurityException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((TableExistsException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof importTable_result)
        return this.equals((importTable_result)that);
      return false;
    }

    public boolean equals(importTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("importTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 importTable_resultStandardSchemeFactory implements SchemeFactory {
      public importTable_resultStandardScheme getScheme() {
        return new importTable_resultStandardScheme();
      }
    }

    private static class importTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, importTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new TableExistsException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloSecurityException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class importTable_resultTupleSchemeFactory implements SchemeFactory {
      public importTable_resultTupleScheme getScheme() {
        return new importTable_resultTupleScheme();
      }
    }

    private static class importTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, importTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, importTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new TableExistsException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new AccumuloSecurityException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class listSplits_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listSplits_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_SPLITS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxSplits", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listSplits_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listSplits_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public int maxSplits; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      MAX_SPLITS((short)3, "maxSplits");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // MAX_SPLITS
            return MAX_SPLITS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAXSPLITS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_SPLITS, new org.apache.thrift.meta_data.FieldMetaData("maxSplits", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listSplits_args.class, metaDataMap);
    }

    public listSplits_args() {
    }

    public listSplits_args(
      ByteBuffer login,
      String tableName,
      int maxSplits)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.maxSplits = maxSplits;
      setMaxSplitsIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public listSplits_args(listSplits_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.maxSplits = other.maxSplits;
    }

    public listSplits_args deepCopy() {
      return new listSplits_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      setMaxSplitsIsSet(false);
      this.maxSplits = 0;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public listSplits_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public listSplits_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public listSplits_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public int getMaxSplits() {
      return this.maxSplits;
    }

    public listSplits_args setMaxSplits(int maxSplits) {
      this.maxSplits = maxSplits;
      setMaxSplitsIsSet(true);
      return this;
    }

    public void unsetMaxSplits() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXSPLITS_ISSET_ID);
    }

    /** Returns true if field maxSplits is set (has been assigned a value) and false otherwise */
    public boolean isSetMaxSplits() {
      return EncodingUtils.testBit(__isset_bitfield, __MAXSPLITS_ISSET_ID);
    }

    public void setMaxSplitsIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXSPLITS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case MAX_SPLITS:
        if (value == null) {
          unsetMaxSplits();
        } else {
          setMaxSplits((Integer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case MAX_SPLITS:
        return Integer.valueOf(getMaxSplits());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case MAX_SPLITS:
        return isSetMaxSplits();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listSplits_args)
        return this.equals((listSplits_args)that);
      return false;
    }

    public boolean equals(listSplits_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_maxSplits = true;
      boolean that_present_maxSplits = true;
      if (this_present_maxSplits || that_present_maxSplits) {
        if (!(this_present_maxSplits && that_present_maxSplits))
          return false;
        if (this.maxSplits != that.maxSplits)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetMaxSplits()).compareTo(other.isSetMaxSplits());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMaxSplits()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxSplits, other.maxSplits);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listSplits_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("maxSplits:");
      sb.append(this.maxSplits);
      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, 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 listSplits_argsStandardSchemeFactory implements SchemeFactory {
      public listSplits_argsStandardScheme getScheme() {
        return new listSplits_argsStandardScheme();
      }
    }

    private static class listSplits_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listSplits_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_SPLITS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.maxSplits = iprot.readI32();
                struct.setMaxSplitsIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_SPLITS_FIELD_DESC);
        oprot.writeI32(struct.maxSplits);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listSplits_argsTupleSchemeFactory implements SchemeFactory {
      public listSplits_argsTupleScheme getScheme() {
        return new listSplits_argsTupleScheme();
      }
    }

    private static class listSplits_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listSplits_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetMaxSplits()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetMaxSplits()) {
          oprot.writeI32(struct.maxSplits);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listSplits_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.maxSplits = iprot.readI32();
          struct.setMaxSplitsIsSet(true);
        }
      }
    }

  }

  public static class listSplits_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listSplits_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listSplits_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listSplits_resultTupleSchemeFactory());
    }

    public List success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listSplits_result.class, metaDataMap);
    }

    public listSplits_result() {
    }

    public listSplits_result(
      List success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public listSplits_result(listSplits_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public listSplits_result deepCopy() {
      return new listSplits_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ByteBuffer elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public listSplits_result setSuccess(List 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public listSplits_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public listSplits_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public listSplits_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listSplits_result)
        return this.equals((listSplits_result)that);
      return false;
    }

    public boolean equals(listSplits_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listSplits_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 listSplits_resultStandardSchemeFactory implements SchemeFactory {
      public listSplits_resultStandardScheme getScheme() {
        return new listSplits_resultStandardScheme();
      }
    }

    private static class listSplits_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listSplits_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 _list276 = iprot.readListBegin();
                  struct.success = new ArrayList(_list276.size);
                  for (int _i277 = 0; _i277 < _list276.size; ++_i277)
                  {
                    ByteBuffer _elem278;
                    _elem278 = iprot.readBinary();
                    struct.success.add(_elem278);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, listSplits_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.STRING, struct.success.size()));
            for (ByteBuffer _iter279 : struct.success)
            {
              oprot.writeBinary(_iter279);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listSplits_resultTupleSchemeFactory implements SchemeFactory {
      public listSplits_resultTupleScheme getScheme() {
        return new listSplits_resultTupleScheme();
      }
    }

    private static class listSplits_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listSplits_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (ByteBuffer _iter280 : struct.success)
            {
              oprot.writeBinary(_iter280);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listSplits_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list281 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new ArrayList(_list281.size);
            for (int _i282 = 0; _i282 < _list281.size; ++_i282)
            {
              ByteBuffer _elem283;
              _elem283 = iprot.readBinary();
              struct.success.add(_elem283);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class listTables_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listTables_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listTables_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listTables_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listTables_args.class, metaDataMap);
    }

    public listTables_args() {
    }

    public listTables_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public listTables_args(listTables_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public listTables_args deepCopy() {
      return new listTables_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public listTables_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public listTables_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listTables_args)
        return this.equals((listTables_args)that);
      return false;
    }

    public boolean equals(listTables_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listTables_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 listTables_argsStandardSchemeFactory implements SchemeFactory {
      public listTables_argsStandardScheme getScheme() {
        return new listTables_argsStandardScheme();
      }
    }

    private static class listTables_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listTables_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listTables_argsTupleSchemeFactory implements SchemeFactory {
      public listTables_argsTupleScheme getScheme() {
        return new listTables_argsTupleScheme();
      }
    }

    private static class listTables_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listTables_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listTables_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class listTables_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listTables_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.SET, (short)0);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listTables_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listTables_resultTupleSchemeFactory());
    }

    public Set success; // 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");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listTables_result.class, metaDataMap);
    }

    public listTables_result() {
    }

    public listTables_result(
      Set success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on other.
     */
    public listTables_result(listTables_result other) {
      if (other.isSetSuccess()) {
        Set __this__success = new HashSet(other.success);
        this.success = __this__success;
      }
    }

    public listTables_result deepCopy() {
      return new listTables_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(String elem) {
      if (this.success == null) {
        this.success = new HashSet();
      }
      this.success.add(elem);
    }

    public Set getSuccess() {
      return this.success;
    }

    public listTables_result setSuccess(Set 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;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listTables_result)
        return this.equals((listTables_result)that);
      return false;
    }

    public boolean equals(listTables_result that) {
      if (that == null)
        return false;

      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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listTables_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      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, 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 listTables_resultStandardSchemeFactory implements SchemeFactory {
      public listTables_resultStandardScheme getScheme() {
        return new listTables_resultStandardScheme();
      }
    }

    private static class listTables_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listTables_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.SET) {
                {
                  org.apache.thrift.protocol.TSet _set284 = iprot.readSetBegin();
                  struct.success = new HashSet(2*_set284.size);
                  for (int _i285 = 0; _i285 < _set284.size; ++_i285)
                  {
                    String _elem286;
                    _elem286 = iprot.readString();
                    struct.success.add(_elem286);
                  }
                  iprot.readSetEnd();
                }
                struct.setSuccessIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (String _iter287 : struct.success)
            {
              oprot.writeString(_iter287);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listTables_resultTupleSchemeFactory implements SchemeFactory {
      public listTables_resultTupleScheme getScheme() {
        return new listTables_resultTupleScheme();
      }
    }

    private static class listTables_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listTables_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (String _iter288 : struct.success)
            {
              oprot.writeString(_iter288);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listTables_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TSet _set289 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashSet(2*_set289.size);
            for (int _i290 = 0; _i290 < _set289.size; ++_i290)
            {
              String _elem291;
              _elem291 = iprot.readString();
              struct.success.add(_elem291);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

  public static class listIterators_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listIterators_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listIterators_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listIterators_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listIterators_args.class, metaDataMap);
    }

    public listIterators_args() {
    }

    public listIterators_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public listIterators_args(listIterators_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public listIterators_args deepCopy() {
      return new listIterators_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public listIterators_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public listIterators_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public listIterators_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listIterators_args)
        return this.equals((listIterators_args)that);
      return false;
    }

    public boolean equals(listIterators_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listIterators_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 listIterators_argsStandardSchemeFactory implements SchemeFactory {
      public listIterators_argsStandardScheme getScheme() {
        return new listIterators_argsStandardScheme();
      }
    }

    private static class listIterators_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listIterators_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listIterators_argsTupleSchemeFactory implements SchemeFactory {
      public listIterators_argsTupleScheme getScheme() {
        return new listIterators_argsTupleScheme();
      }
    }

    private static class listIterators_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listIterators_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listIterators_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class listIterators_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listIterators_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listIterators_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listIterators_resultTupleSchemeFactory());
    }

    public Map> success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
                  new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, IteratorScope.class)))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listIterators_result.class, metaDataMap);
    }

    public listIterators_result() {
    }

    public listIterators_result(
      Map> success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public listIterators_result(listIterators_result other) {
      if (other.isSetSuccess()) {
        Map> __this__success = new HashMap>(other.success.size());
        for (Map.Entry> other_element : other.success.entrySet()) {

          String other_element_key = other_element.getKey();
          Set other_element_value = other_element.getValue();

          String __this__success_copy_key = other_element_key;

          Set __this__success_copy_value = new HashSet(other_element_value.size());
          for (IteratorScope other_element_value_element : other_element_value) {
            __this__success_copy_value.add(other_element_value_element);
          }

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public listIterators_result deepCopy() {
      return new listIterators_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public void putToSuccess(String key, Set val) {
      if (this.success == null) {
        this.success = new HashMap>();
      }
      this.success.put(key, val);
    }

    public Map> getSuccess() {
      return this.success;
    }

    public listIterators_result setSuccess(Map> 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public listIterators_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public listIterators_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public listIterators_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map>)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listIterators_result)
        return this.equals((listIterators_result)that);
      return false;
    }

    public boolean equals(listIterators_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listIterators_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 listIterators_resultStandardSchemeFactory implements SchemeFactory {
      public listIterators_resultStandardScheme getScheme() {
        return new listIterators_resultStandardScheme();
      }
    }

    private static class listIterators_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listIterators_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map292 = iprot.readMapBegin();
                  struct.success = new HashMap>(2*_map292.size);
                  for (int _i293 = 0; _i293 < _map292.size; ++_i293)
                  {
                    String _key294;
                    Set _val295;
                    _key294 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TSet _set296 = iprot.readSetBegin();
                      _val295 = new HashSet(2*_set296.size);
                      for (int _i297 = 0; _i297 < _set296.size; ++_i297)
                      {
                        IteratorScope _elem298;
                        _elem298 = IteratorScope.findByValue(iprot.readI32());
                        _val295.add(_elem298);
                      }
                      iprot.readSetEnd();
                    }
                    struct.success.put(_key294, _val295);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, struct.success.size()));
            for (Map.Entry> _iter299 : struct.success.entrySet())
            {
              oprot.writeString(_iter299.getKey());
              {
                oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, _iter299.getValue().size()));
                for (IteratorScope _iter300 : _iter299.getValue())
                {
                  oprot.writeI32(_iter300.getValue());
                }
                oprot.writeSetEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listIterators_resultTupleSchemeFactory implements SchemeFactory {
      public listIterators_resultTupleScheme getScheme() {
        return new listIterators_resultTupleScheme();
      }
    }

    private static class listIterators_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listIterators_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry> _iter301 : struct.success.entrySet())
            {
              oprot.writeString(_iter301.getKey());
              {
                oprot.writeI32(_iter301.getValue().size());
                for (IteratorScope _iter302 : _iter301.getValue())
                {
                  oprot.writeI32(_iter302.getValue());
                }
              }
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listIterators_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map303 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, iprot.readI32());
            struct.success = new HashMap>(2*_map303.size);
            for (int _i304 = 0; _i304 < _map303.size; ++_i304)
            {
              String _key305;
              Set _val306;
              _key305 = iprot.readString();
              {
                org.apache.thrift.protocol.TSet _set307 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
                _val306 = new HashSet(2*_set307.size);
                for (int _i308 = 0; _i308 < _set307.size; ++_i308)
                {
                  IteratorScope _elem309;
                  _elem309 = IteratorScope.findByValue(iprot.readI32());
                  _val306.add(_elem309);
                }
              }
              struct.success.put(_key305, _val306);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class listConstraints_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listConstraints_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listConstraints_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listConstraints_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listConstraints_args.class, metaDataMap);
    }

    public listConstraints_args() {
    }

    public listConstraints_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public listConstraints_args(listConstraints_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public listConstraints_args deepCopy() {
      return new listConstraints_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public listConstraints_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public listConstraints_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public listConstraints_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listConstraints_args)
        return this.equals((listConstraints_args)that);
      return false;
    }

    public boolean equals(listConstraints_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listConstraints_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 listConstraints_argsStandardSchemeFactory implements SchemeFactory {
      public listConstraints_argsStandardScheme getScheme() {
        return new listConstraints_argsStandardScheme();
      }
    }

    private static class listConstraints_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listConstraints_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listConstraints_argsTupleSchemeFactory implements SchemeFactory {
      public listConstraints_argsTupleScheme getScheme() {
        return new listConstraints_argsTupleScheme();
      }
    }

    private static class listConstraints_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listConstraints_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listConstraints_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class listConstraints_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listConstraints_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listConstraints_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listConstraints_resultTupleSchemeFactory());
    }

    public Map success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.I32))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listConstraints_result.class, metaDataMap);
    }

    public listConstraints_result() {
    }

    public listConstraints_result(
      Map success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public listConstraints_result(listConstraints_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public listConstraints_result deepCopy() {
      return new listConstraints_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public void putToSuccess(String key, int val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public listConstraints_result setSuccess(Map 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public listConstraints_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public listConstraints_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public listConstraints_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listConstraints_result)
        return this.equals((listConstraints_result)that);
      return false;
    }

    public boolean equals(listConstraints_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listConstraints_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 listConstraints_resultStandardSchemeFactory implements SchemeFactory {
      public listConstraints_resultStandardScheme getScheme() {
        return new listConstraints_resultStandardScheme();
      }
    }

    private static class listConstraints_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listConstraints_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map310 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map310.size);
                  for (int _i311 = 0; _i311 < _map310.size; ++_i311)
                  {
                    String _key312;
                    int _val313;
                    _key312 = iprot.readString();
                    _val313 = iprot.readI32();
                    struct.success.put(_key312, _val313);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.success.size()));
            for (Map.Entry _iter314 : struct.success.entrySet())
            {
              oprot.writeString(_iter314.getKey());
              oprot.writeI32(_iter314.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listConstraints_resultTupleSchemeFactory implements SchemeFactory {
      public listConstraints_resultTupleScheme getScheme() {
        return new listConstraints_resultTupleScheme();
      }
    }

    private static class listConstraints_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listConstraints_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter315 : struct.success.entrySet())
            {
              oprot.writeString(_iter315.getKey());
              oprot.writeI32(_iter315.getValue());
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listConstraints_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map316 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
            struct.success = new HashMap(2*_map316.size);
            for (int _i317 = 0; _i317 < _map316.size; ++_i317)
            {
              String _key318;
              int _val319;
              _key318 = iprot.readString();
              _val319 = iprot.readI32();
              struct.success.put(_key318, _val319);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class mergeTablets_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("mergeTablets_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("endRow", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new mergeTablets_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new mergeTablets_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ByteBuffer startRow; // required
    public ByteBuffer endRow; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      START_ROW((short)3, "startRow"),
      END_ROW((short)4, "endRow");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // START_ROW
            return START_ROW;
          case 4: // END_ROW
            return END_ROW;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.START_ROW, new org.apache.thrift.meta_data.FieldMetaData("startRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.END_ROW, new org.apache.thrift.meta_data.FieldMetaData("endRow", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(mergeTablets_args.class, metaDataMap);
    }

    public mergeTablets_args() {
    }

    public mergeTablets_args(
      ByteBuffer login,
      String tableName,
      ByteBuffer startRow,
      ByteBuffer endRow)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.startRow = startRow;
      this.endRow = endRow;
    }

    /**
     * Performs a deep copy on other.
     */
    public mergeTablets_args(mergeTablets_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetStartRow()) {
        this.startRow = org.apache.thrift.TBaseHelper.copyBinary(other.startRow);
;
      }
      if (other.isSetEndRow()) {
        this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
;
      }
    }

    public mergeTablets_args deepCopy() {
      return new mergeTablets_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.startRow = null;
      this.endRow = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public mergeTablets_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public mergeTablets_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public mergeTablets_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public byte[] getStartRow() {
      setStartRow(org.apache.thrift.TBaseHelper.rightSize(startRow));
      return startRow == null ? null : startRow.array();
    }

    public ByteBuffer bufferForStartRow() {
      return startRow;
    }

    public mergeTablets_args setStartRow(byte[] startRow) {
      setStartRow(startRow == null ? (ByteBuffer)null : ByteBuffer.wrap(startRow));
      return this;
    }

    public mergeTablets_args setStartRow(ByteBuffer startRow) {
      this.startRow = startRow;
      return this;
    }

    public void unsetStartRow() {
      this.startRow = null;
    }

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

    public void setStartRowIsSet(boolean value) {
      if (!value) {
        this.startRow = null;
      }
    }

    public byte[] getEndRow() {
      setEndRow(org.apache.thrift.TBaseHelper.rightSize(endRow));
      return endRow == null ? null : endRow.array();
    }

    public ByteBuffer bufferForEndRow() {
      return endRow;
    }

    public mergeTablets_args setEndRow(byte[] endRow) {
      setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
      return this;
    }

    public mergeTablets_args setEndRow(ByteBuffer endRow) {
      this.endRow = endRow;
      return this;
    }

    public void unsetEndRow() {
      this.endRow = null;
    }

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

    public void setEndRowIsSet(boolean value) {
      if (!value) {
        this.endRow = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case START_ROW:
        if (value == null) {
          unsetStartRow();
        } else {
          setStartRow((ByteBuffer)value);
        }
        break;

      case END_ROW:
        if (value == null) {
          unsetEndRow();
        } else {
          setEndRow((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case START_ROW:
        return getStartRow();

      case END_ROW:
        return getEndRow();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case START_ROW:
        return isSetStartRow();
      case END_ROW:
        return isSetEndRow();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof mergeTablets_args)
        return this.equals((mergeTablets_args)that);
      return false;
    }

    public boolean equals(mergeTablets_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_startRow = true && this.isSetStartRow();
      boolean that_present_startRow = true && that.isSetStartRow();
      if (this_present_startRow || that_present_startRow) {
        if (!(this_present_startRow && that_present_startRow))
          return false;
        if (!this.startRow.equals(that.startRow))
          return false;
      }

      boolean this_present_endRow = true && this.isSetEndRow();
      boolean that_present_endRow = true && that.isSetEndRow();
      if (this_present_endRow || that_present_endRow) {
        if (!(this_present_endRow && that_present_endRow))
          return false;
        if (!this.endRow.equals(that.endRow))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(other.isSetStartRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startRow, other.startRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEndRow()).compareTo(other.isSetEndRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEndRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endRow, other.endRow);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("mergeTablets_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("startRow:");
      if (this.startRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.startRow, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("endRow:");
      if (this.endRow == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.endRow, sb);
      }
      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, 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 mergeTablets_argsStandardSchemeFactory implements SchemeFactory {
      public mergeTablets_argsStandardScheme getScheme() {
        return new mergeTablets_argsStandardScheme();
      }
    }

    private static class mergeTablets_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, mergeTablets_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // START_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.startRow = iprot.readBinary();
                struct.setStartRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // END_ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.endRow = iprot.readBinary();
                struct.setEndRowIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.startRow != null) {
          oprot.writeFieldBegin(START_ROW_FIELD_DESC);
          oprot.writeBinary(struct.startRow);
          oprot.writeFieldEnd();
        }
        if (struct.endRow != null) {
          oprot.writeFieldBegin(END_ROW_FIELD_DESC);
          oprot.writeBinary(struct.endRow);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class mergeTablets_argsTupleSchemeFactory implements SchemeFactory {
      public mergeTablets_argsTupleScheme getScheme() {
        return new mergeTablets_argsTupleScheme();
      }
    }

    private static class mergeTablets_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, mergeTablets_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetStartRow()) {
          optionals.set(2);
        }
        if (struct.isSetEndRow()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetStartRow()) {
          oprot.writeBinary(struct.startRow);
        }
        if (struct.isSetEndRow()) {
          oprot.writeBinary(struct.endRow);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, mergeTablets_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.startRow = iprot.readBinary();
          struct.setStartRowIsSet(true);
        }
        if (incoming.get(3)) {
          struct.endRow = iprot.readBinary();
          struct.setEndRowIsSet(true);
        }
      }
    }

  }

  public static class mergeTablets_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("mergeTablets_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new mergeTablets_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new mergeTablets_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(mergeTablets_result.class, metaDataMap);
    }

    public mergeTablets_result() {
    }

    public mergeTablets_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public mergeTablets_result(mergeTablets_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public mergeTablets_result deepCopy() {
      return new mergeTablets_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public mergeTablets_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public mergeTablets_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public mergeTablets_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof mergeTablets_result)
        return this.equals((mergeTablets_result)that);
      return false;
    }

    public boolean equals(mergeTablets_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("mergeTablets_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 mergeTablets_resultStandardSchemeFactory implements SchemeFactory {
      public mergeTablets_resultStandardScheme getScheme() {
        return new mergeTablets_resultStandardScheme();
      }
    }

    private static class mergeTablets_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, mergeTablets_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class mergeTablets_resultTupleSchemeFactory implements SchemeFactory {
      public mergeTablets_resultTupleScheme getScheme() {
        return new mergeTablets_resultTupleScheme();
      }
    }

    private static class mergeTablets_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, mergeTablets_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, mergeTablets_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class offlineTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("offlineTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField WAIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wait", org.apache.thrift.protocol.TType.BOOL, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new offlineTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new offlineTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public boolean wait; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      WAIT((short)3, "wait");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // WAIT
            return WAIT;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __WAIT_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.WAIT, new org.apache.thrift.meta_data.FieldMetaData("wait", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(offlineTable_args.class, metaDataMap);
    }

    public offlineTable_args() {
      this.wait = false;

    }

    public offlineTable_args(
      ByteBuffer login,
      String tableName,
      boolean wait)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.wait = wait;
      setWaitIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public offlineTable_args(offlineTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.wait = other.wait;
    }

    public offlineTable_args deepCopy() {
      return new offlineTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.wait = false;

    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public offlineTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public offlineTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public offlineTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public boolean isWait() {
      return this.wait;
    }

    public offlineTable_args setWait(boolean wait) {
      this.wait = wait;
      setWaitIsSet(true);
      return this;
    }

    public void unsetWait() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    /** Returns true if field wait is set (has been assigned a value) and false otherwise */
    public boolean isSetWait() {
      return EncodingUtils.testBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    public void setWaitIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case WAIT:
        if (value == null) {
          unsetWait();
        } else {
          setWait((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case WAIT:
        return Boolean.valueOf(isWait());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case WAIT:
        return isSetWait();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof offlineTable_args)
        return this.equals((offlineTable_args)that);
      return false;
    }

    public boolean equals(offlineTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_wait = true;
      boolean that_present_wait = true;
      if (this_present_wait || that_present_wait) {
        if (!(this_present_wait && that_present_wait))
          return false;
        if (this.wait != that.wait)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWait()).compareTo(other.isSetWait());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWait()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait, other.wait);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("offlineTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("wait:");
      sb.append(this.wait);
      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, 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 offlineTable_argsStandardSchemeFactory implements SchemeFactory {
      public offlineTable_argsStandardScheme getScheme() {
        return new offlineTable_argsStandardScheme();
      }
    }

    private static class offlineTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, offlineTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // WAIT
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.wait = iprot.readBool();
                struct.setWaitIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(WAIT_FIELD_DESC);
        oprot.writeBool(struct.wait);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class offlineTable_argsTupleSchemeFactory implements SchemeFactory {
      public offlineTable_argsTupleScheme getScheme() {
        return new offlineTable_argsTupleScheme();
      }
    }

    private static class offlineTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, offlineTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetWait()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetWait()) {
          oprot.writeBool(struct.wait);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, offlineTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.wait = iprot.readBool();
          struct.setWaitIsSet(true);
        }
      }
    }

  }

  public static class offlineTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("offlineTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new offlineTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new offlineTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(offlineTable_result.class, metaDataMap);
    }

    public offlineTable_result() {
    }

    public offlineTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public offlineTable_result(offlineTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public offlineTable_result deepCopy() {
      return new offlineTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public offlineTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public offlineTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public offlineTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof offlineTable_result)
        return this.equals((offlineTable_result)that);
      return false;
    }

    public boolean equals(offlineTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("offlineTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 offlineTable_resultStandardSchemeFactory implements SchemeFactory {
      public offlineTable_resultStandardScheme getScheme() {
        return new offlineTable_resultStandardScheme();
      }
    }

    private static class offlineTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, offlineTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class offlineTable_resultTupleSchemeFactory implements SchemeFactory {
      public offlineTable_resultTupleScheme getScheme() {
        return new offlineTable_resultTupleScheme();
      }
    }

    private static class offlineTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, offlineTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, offlineTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class onlineTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("onlineTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField WAIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wait", org.apache.thrift.protocol.TType.BOOL, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new onlineTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new onlineTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public boolean wait; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      WAIT((short)3, "wait");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // WAIT
            return WAIT;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __WAIT_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.WAIT, new org.apache.thrift.meta_data.FieldMetaData("wait", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(onlineTable_args.class, metaDataMap);
    }

    public onlineTable_args() {
      this.wait = false;

    }

    public onlineTable_args(
      ByteBuffer login,
      String tableName,
      boolean wait)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.wait = wait;
      setWaitIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public onlineTable_args(onlineTable_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.wait = other.wait;
    }

    public onlineTable_args deepCopy() {
      return new onlineTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.wait = false;

    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public onlineTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public onlineTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public onlineTable_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public boolean isWait() {
      return this.wait;
    }

    public onlineTable_args setWait(boolean wait) {
      this.wait = wait;
      setWaitIsSet(true);
      return this;
    }

    public void unsetWait() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    /** Returns true if field wait is set (has been assigned a value) and false otherwise */
    public boolean isSetWait() {
      return EncodingUtils.testBit(__isset_bitfield, __WAIT_ISSET_ID);
    }

    public void setWaitIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case WAIT:
        if (value == null) {
          unsetWait();
        } else {
          setWait((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case WAIT:
        return Boolean.valueOf(isWait());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case WAIT:
        return isSetWait();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof onlineTable_args)
        return this.equals((onlineTable_args)that);
      return false;
    }

    public boolean equals(onlineTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_wait = true;
      boolean that_present_wait = true;
      if (this_present_wait || that_present_wait) {
        if (!(this_present_wait && that_present_wait))
          return false;
        if (this.wait != that.wait)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWait()).compareTo(other.isSetWait());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWait()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait, other.wait);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("onlineTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("wait:");
      sb.append(this.wait);
      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, 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 onlineTable_argsStandardSchemeFactory implements SchemeFactory {
      public onlineTable_argsStandardScheme getScheme() {
        return new onlineTable_argsStandardScheme();
      }
    }

    private static class onlineTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, onlineTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // WAIT
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.wait = iprot.readBool();
                struct.setWaitIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(WAIT_FIELD_DESC);
        oprot.writeBool(struct.wait);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class onlineTable_argsTupleSchemeFactory implements SchemeFactory {
      public onlineTable_argsTupleScheme getScheme() {
        return new onlineTable_argsTupleScheme();
      }
    }

    private static class onlineTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, onlineTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetWait()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetWait()) {
          oprot.writeBool(struct.wait);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, onlineTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.wait = iprot.readBool();
          struct.setWaitIsSet(true);
        }
      }
    }

  }

  public static class onlineTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("onlineTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new onlineTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new onlineTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(onlineTable_result.class, metaDataMap);
    }

    public onlineTable_result() {
    }

    public onlineTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public onlineTable_result(onlineTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public onlineTable_result deepCopy() {
      return new onlineTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public onlineTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public onlineTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public onlineTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof onlineTable_result)
        return this.equals((onlineTable_result)that);
      return false;
    }

    public boolean equals(onlineTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("onlineTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 onlineTable_resultStandardSchemeFactory implements SchemeFactory {
      public onlineTable_resultStandardScheme getScheme() {
        return new onlineTable_resultStandardScheme();
      }
    }

    private static class onlineTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, onlineTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class onlineTable_resultTupleSchemeFactory implements SchemeFactory {
      public onlineTable_resultTupleScheme getScheme() {
        return new onlineTable_resultTupleScheme();
      }
    }

    private static class onlineTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, onlineTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, onlineTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class removeConstraint_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeConstraint_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField CONSTRAINT_FIELD_DESC = new org.apache.thrift.protocol.TField("constraint", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeConstraint_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeConstraint_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public int constraint; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      CONSTRAINT((short)3, "constraint");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // CONSTRAINT
            return CONSTRAINT;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CONSTRAINT_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CONSTRAINT, new org.apache.thrift.meta_data.FieldMetaData("constraint", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeConstraint_args.class, metaDataMap);
    }

    public removeConstraint_args() {
    }

    public removeConstraint_args(
      ByteBuffer login,
      String tableName,
      int constraint)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.constraint = constraint;
      setConstraintIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public removeConstraint_args(removeConstraint_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.constraint = other.constraint;
    }

    public removeConstraint_args deepCopy() {
      return new removeConstraint_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      setConstraintIsSet(false);
      this.constraint = 0;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public removeConstraint_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public removeConstraint_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public removeConstraint_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public int getConstraint() {
      return this.constraint;
    }

    public removeConstraint_args setConstraint(int constraint) {
      this.constraint = constraint;
      setConstraintIsSet(true);
      return this;
    }

    public void unsetConstraint() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CONSTRAINT_ISSET_ID);
    }

    /** Returns true if field constraint is set (has been assigned a value) and false otherwise */
    public boolean isSetConstraint() {
      return EncodingUtils.testBit(__isset_bitfield, __CONSTRAINT_ISSET_ID);
    }

    public void setConstraintIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CONSTRAINT_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case CONSTRAINT:
        if (value == null) {
          unsetConstraint();
        } else {
          setConstraint((Integer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case CONSTRAINT:
        return Integer.valueOf(getConstraint());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case CONSTRAINT:
        return isSetConstraint();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeConstraint_args)
        return this.equals((removeConstraint_args)that);
      return false;
    }

    public boolean equals(removeConstraint_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_constraint = true;
      boolean that_present_constraint = true;
      if (this_present_constraint || that_present_constraint) {
        if (!(this_present_constraint && that_present_constraint))
          return false;
        if (this.constraint != that.constraint)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConstraint()).compareTo(other.isSetConstraint());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConstraint()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.constraint, other.constraint);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeConstraint_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("constraint:");
      sb.append(this.constraint);
      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, 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 removeConstraint_argsStandardSchemeFactory implements SchemeFactory {
      public removeConstraint_argsStandardScheme getScheme() {
        return new removeConstraint_argsStandardScheme();
      }
    }

    private static class removeConstraint_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeConstraint_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // CONSTRAINT
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.constraint = iprot.readI32();
                struct.setConstraintIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(CONSTRAINT_FIELD_DESC);
        oprot.writeI32(struct.constraint);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeConstraint_argsTupleSchemeFactory implements SchemeFactory {
      public removeConstraint_argsTupleScheme getScheme() {
        return new removeConstraint_argsTupleScheme();
      }
    }

    private static class removeConstraint_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeConstraint_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetConstraint()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetConstraint()) {
          oprot.writeI32(struct.constraint);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeConstraint_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.constraint = iprot.readI32();
          struct.setConstraintIsSet(true);
        }
      }
    }

  }

  public static class removeConstraint_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeConstraint_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeConstraint_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeConstraint_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeConstraint_result.class, metaDataMap);
    }

    public removeConstraint_result() {
    }

    public removeConstraint_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeConstraint_result(removeConstraint_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public removeConstraint_result deepCopy() {
      return new removeConstraint_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public removeConstraint_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public removeConstraint_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public removeConstraint_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeConstraint_result)
        return this.equals((removeConstraint_result)that);
      return false;
    }

    public boolean equals(removeConstraint_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeConstraint_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 removeConstraint_resultStandardSchemeFactory implements SchemeFactory {
      public removeConstraint_resultStandardScheme getScheme() {
        return new removeConstraint_resultStandardScheme();
      }
    }

    private static class removeConstraint_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeConstraint_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeConstraint_resultTupleSchemeFactory implements SchemeFactory {
      public removeConstraint_resultTupleScheme getScheme() {
        return new removeConstraint_resultTupleScheme();
      }
    }

    private static class removeConstraint_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeConstraint_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeConstraint_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class removeIterator_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeIterator_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField ITER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("iterName", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField SCOPES_FIELD_DESC = new org.apache.thrift.protocol.TField("scopes", org.apache.thrift.protocol.TType.SET, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeIterator_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeIterator_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String iterName; // required
    public Set scopes; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      ITER_NAME((short)3, "iterName"),
      SCOPES((short)4, "scopes");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // ITER_NAME
            return ITER_NAME;
          case 4: // SCOPES
            return SCOPES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ITER_NAME, new org.apache.thrift.meta_data.FieldMetaData("iterName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SCOPES, new org.apache.thrift.meta_data.FieldMetaData("scopes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, IteratorScope.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeIterator_args.class, metaDataMap);
    }

    public removeIterator_args() {
    }

    public removeIterator_args(
      ByteBuffer login,
      String tableName,
      String iterName,
      Set scopes)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.iterName = iterName;
      this.scopes = scopes;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeIterator_args(removeIterator_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetIterName()) {
        this.iterName = other.iterName;
      }
      if (other.isSetScopes()) {
        Set __this__scopes = new HashSet(other.scopes.size());
        for (IteratorScope other_element : other.scopes) {
          __this__scopes.add(other_element);
        }
        this.scopes = __this__scopes;
      }
    }

    public removeIterator_args deepCopy() {
      return new removeIterator_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.iterName = null;
      this.scopes = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public removeIterator_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public removeIterator_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public removeIterator_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getIterName() {
      return this.iterName;
    }

    public removeIterator_args setIterName(String iterName) {
      this.iterName = iterName;
      return this;
    }

    public void unsetIterName() {
      this.iterName = null;
    }

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

    public void setIterNameIsSet(boolean value) {
      if (!value) {
        this.iterName = null;
      }
    }

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

    public java.util.Iterator getScopesIterator() {
      return (this.scopes == null) ? null : this.scopes.iterator();
    }

    public void addToScopes(IteratorScope elem) {
      if (this.scopes == null) {
        this.scopes = new HashSet();
      }
      this.scopes.add(elem);
    }

    public Set getScopes() {
      return this.scopes;
    }

    public removeIterator_args setScopes(Set scopes) {
      this.scopes = scopes;
      return this;
    }

    public void unsetScopes() {
      this.scopes = null;
    }

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

    public void setScopesIsSet(boolean value) {
      if (!value) {
        this.scopes = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case ITER_NAME:
        if (value == null) {
          unsetIterName();
        } else {
          setIterName((String)value);
        }
        break;

      case SCOPES:
        if (value == null) {
          unsetScopes();
        } else {
          setScopes((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case ITER_NAME:
        return getIterName();

      case SCOPES:
        return getScopes();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case ITER_NAME:
        return isSetIterName();
      case SCOPES:
        return isSetScopes();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeIterator_args)
        return this.equals((removeIterator_args)that);
      return false;
    }

    public boolean equals(removeIterator_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_iterName = true && this.isSetIterName();
      boolean that_present_iterName = true && that.isSetIterName();
      if (this_present_iterName || that_present_iterName) {
        if (!(this_present_iterName && that_present_iterName))
          return false;
        if (!this.iterName.equals(that.iterName))
          return false;
      }

      boolean this_present_scopes = true && this.isSetScopes();
      boolean that_present_scopes = true && that.isSetScopes();
      if (this_present_scopes || that_present_scopes) {
        if (!(this_present_scopes && that_present_scopes))
          return false;
        if (!this.scopes.equals(that.scopes))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetIterName()).compareTo(other.isSetIterName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIterName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iterName, other.iterName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetScopes()).compareTo(other.isSetScopes());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScopes()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scopes, other.scopes);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeIterator_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("iterName:");
      if (this.iterName == null) {
        sb.append("null");
      } else {
        sb.append(this.iterName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("scopes:");
      if (this.scopes == null) {
        sb.append("null");
      } else {
        sb.append(this.scopes);
      }
      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, 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 removeIterator_argsStandardSchemeFactory implements SchemeFactory {
      public removeIterator_argsStandardScheme getScheme() {
        return new removeIterator_argsStandardScheme();
      }
    }

    private static class removeIterator_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeIterator_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // ITER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.iterName = iprot.readString();
                struct.setIterNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // SCOPES
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set320 = iprot.readSetBegin();
                  struct.scopes = new HashSet(2*_set320.size);
                  for (int _i321 = 0; _i321 < _set320.size; ++_i321)
                  {
                    IteratorScope _elem322;
                    _elem322 = IteratorScope.findByValue(iprot.readI32());
                    struct.scopes.add(_elem322);
                  }
                  iprot.readSetEnd();
                }
                struct.setScopesIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.iterName != null) {
          oprot.writeFieldBegin(ITER_NAME_FIELD_DESC);
          oprot.writeString(struct.iterName);
          oprot.writeFieldEnd();
        }
        if (struct.scopes != null) {
          oprot.writeFieldBegin(SCOPES_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, struct.scopes.size()));
            for (IteratorScope _iter323 : struct.scopes)
            {
              oprot.writeI32(_iter323.getValue());
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeIterator_argsTupleSchemeFactory implements SchemeFactory {
      public removeIterator_argsTupleScheme getScheme() {
        return new removeIterator_argsTupleScheme();
      }
    }

    private static class removeIterator_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeIterator_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetIterName()) {
          optionals.set(2);
        }
        if (struct.isSetScopes()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetIterName()) {
          oprot.writeString(struct.iterName);
        }
        if (struct.isSetScopes()) {
          {
            oprot.writeI32(struct.scopes.size());
            for (IteratorScope _iter324 : struct.scopes)
            {
              oprot.writeI32(_iter324.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeIterator_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.iterName = iprot.readString();
          struct.setIterNameIsSet(true);
        }
        if (incoming.get(3)) {
          {
            org.apache.thrift.protocol.TSet _set325 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
            struct.scopes = new HashSet(2*_set325.size);
            for (int _i326 = 0; _i326 < _set325.size; ++_i326)
            {
              IteratorScope _elem327;
              _elem327 = IteratorScope.findByValue(iprot.readI32());
              struct.scopes.add(_elem327);
            }
          }
          struct.setScopesIsSet(true);
        }
      }
    }

  }

  public static class removeIterator_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeIterator_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeIterator_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeIterator_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeIterator_result.class, metaDataMap);
    }

    public removeIterator_result() {
    }

    public removeIterator_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeIterator_result(removeIterator_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public removeIterator_result deepCopy() {
      return new removeIterator_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public removeIterator_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public removeIterator_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public removeIterator_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeIterator_result)
        return this.equals((removeIterator_result)that);
      return false;
    }

    public boolean equals(removeIterator_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeIterator_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 removeIterator_resultStandardSchemeFactory implements SchemeFactory {
      public removeIterator_resultStandardScheme getScheme() {
        return new removeIterator_resultStandardScheme();
      }
    }

    private static class removeIterator_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeIterator_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeIterator_resultTupleSchemeFactory implements SchemeFactory {
      public removeIterator_resultTupleScheme getScheme() {
        return new removeIterator_resultTupleScheme();
      }
    }

    private static class removeIterator_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeIterator_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeIterator_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class removeTableProperty_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeTableProperty_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PROPERTY_FIELD_DESC = new org.apache.thrift.protocol.TField("property", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeTableProperty_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeTableProperty_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String property; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      PROPERTY((short)3, "property");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // PROPERTY
            return PROPERTY;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PROPERTY, new org.apache.thrift.meta_data.FieldMetaData("property", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeTableProperty_args.class, metaDataMap);
    }

    public removeTableProperty_args() {
    }

    public removeTableProperty_args(
      ByteBuffer login,
      String tableName,
      String property)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.property = property;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeTableProperty_args(removeTableProperty_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetProperty()) {
        this.property = other.property;
      }
    }

    public removeTableProperty_args deepCopy() {
      return new removeTableProperty_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.property = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public removeTableProperty_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public removeTableProperty_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public removeTableProperty_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getProperty() {
      return this.property;
    }

    public removeTableProperty_args setProperty(String property) {
      this.property = property;
      return this;
    }

    public void unsetProperty() {
      this.property = null;
    }

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

    public void setPropertyIsSet(boolean value) {
      if (!value) {
        this.property = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case PROPERTY:
        if (value == null) {
          unsetProperty();
        } else {
          setProperty((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case PROPERTY:
        return getProperty();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case PROPERTY:
        return isSetProperty();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeTableProperty_args)
        return this.equals((removeTableProperty_args)that);
      return false;
    }

    public boolean equals(removeTableProperty_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_property = true && this.isSetProperty();
      boolean that_present_property = true && that.isSetProperty();
      if (this_present_property || that_present_property) {
        if (!(this_present_property && that_present_property))
          return false;
        if (!this.property.equals(that.property))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProperty()).compareTo(other.isSetProperty());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProperty()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.property, other.property);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeTableProperty_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("property:");
      if (this.property == null) {
        sb.append("null");
      } else {
        sb.append(this.property);
      }
      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, 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 removeTableProperty_argsStandardSchemeFactory implements SchemeFactory {
      public removeTableProperty_argsStandardScheme getScheme() {
        return new removeTableProperty_argsStandardScheme();
      }
    }

    private static class removeTableProperty_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeTableProperty_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PROPERTY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.property = iprot.readString();
                struct.setPropertyIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.property != null) {
          oprot.writeFieldBegin(PROPERTY_FIELD_DESC);
          oprot.writeString(struct.property);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeTableProperty_argsTupleSchemeFactory implements SchemeFactory {
      public removeTableProperty_argsTupleScheme getScheme() {
        return new removeTableProperty_argsTupleScheme();
      }
    }

    private static class removeTableProperty_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeTableProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetProperty()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetProperty()) {
          oprot.writeString(struct.property);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeTableProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.property = iprot.readString();
          struct.setPropertyIsSet(true);
        }
      }
    }

  }

  public static class removeTableProperty_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeTableProperty_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeTableProperty_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeTableProperty_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeTableProperty_result.class, metaDataMap);
    }

    public removeTableProperty_result() {
    }

    public removeTableProperty_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeTableProperty_result(removeTableProperty_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public removeTableProperty_result deepCopy() {
      return new removeTableProperty_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public removeTableProperty_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public removeTableProperty_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public removeTableProperty_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeTableProperty_result)
        return this.equals((removeTableProperty_result)that);
      return false;
    }

    public boolean equals(removeTableProperty_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeTableProperty_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 removeTableProperty_resultStandardSchemeFactory implements SchemeFactory {
      public removeTableProperty_resultStandardScheme getScheme() {
        return new removeTableProperty_resultStandardScheme();
      }
    }

    private static class removeTableProperty_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeTableProperty_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeTableProperty_resultTupleSchemeFactory implements SchemeFactory {
      public removeTableProperty_resultTupleScheme getScheme() {
        return new removeTableProperty_resultTupleScheme();
      }
    }

    private static class removeTableProperty_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeTableProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeTableProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class renameTable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("renameTable_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField OLD_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("oldTableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newTableName", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new renameTable_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new renameTable_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String oldTableName; // required
    public String newTableName; // 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 {
      LOGIN((short)1, "login"),
      OLD_TABLE_NAME((short)2, "oldTableName"),
      NEW_TABLE_NAME((short)3, "newTableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // OLD_TABLE_NAME
            return OLD_TABLE_NAME;
          case 3: // NEW_TABLE_NAME
            return NEW_TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.OLD_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("oldTableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("newTableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renameTable_args.class, metaDataMap);
    }

    public renameTable_args() {
    }

    public renameTable_args(
      ByteBuffer login,
      String oldTableName,
      String newTableName)
    {
      this();
      this.login = login;
      this.oldTableName = oldTableName;
      this.newTableName = newTableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public renameTable_args(renameTable_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetOldTableName()) {
        this.oldTableName = other.oldTableName;
      }
      if (other.isSetNewTableName()) {
        this.newTableName = other.newTableName;
      }
    }

    public renameTable_args deepCopy() {
      return new renameTable_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.oldTableName = null;
      this.newTableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public renameTable_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public renameTable_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getOldTableName() {
      return this.oldTableName;
    }

    public renameTable_args setOldTableName(String oldTableName) {
      this.oldTableName = oldTableName;
      return this;
    }

    public void unsetOldTableName() {
      this.oldTableName = null;
    }

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

    public void setOldTableNameIsSet(boolean value) {
      if (!value) {
        this.oldTableName = null;
      }
    }

    public String getNewTableName() {
      return this.newTableName;
    }

    public renameTable_args setNewTableName(String newTableName) {
      this.newTableName = newTableName;
      return this;
    }

    public void unsetNewTableName() {
      this.newTableName = null;
    }

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

    public void setNewTableNameIsSet(boolean value) {
      if (!value) {
        this.newTableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case OLD_TABLE_NAME:
        if (value == null) {
          unsetOldTableName();
        } else {
          setOldTableName((String)value);
        }
        break;

      case NEW_TABLE_NAME:
        if (value == null) {
          unsetNewTableName();
        } else {
          setNewTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case OLD_TABLE_NAME:
        return getOldTableName();

      case NEW_TABLE_NAME:
        return getNewTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case OLD_TABLE_NAME:
        return isSetOldTableName();
      case NEW_TABLE_NAME:
        return isSetNewTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof renameTable_args)
        return this.equals((renameTable_args)that);
      return false;
    }

    public boolean equals(renameTable_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_oldTableName = true && this.isSetOldTableName();
      boolean that_present_oldTableName = true && that.isSetOldTableName();
      if (this_present_oldTableName || that_present_oldTableName) {
        if (!(this_present_oldTableName && that_present_oldTableName))
          return false;
        if (!this.oldTableName.equals(that.oldTableName))
          return false;
      }

      boolean this_present_newTableName = true && this.isSetNewTableName();
      boolean that_present_newTableName = true && that.isSetNewTableName();
      if (this_present_newTableName || that_present_newTableName) {
        if (!(this_present_newTableName && that_present_newTableName))
          return false;
        if (!this.newTableName.equals(that.newTableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOldTableName()).compareTo(other.isSetOldTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOldTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.oldTableName, other.oldTableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetNewTableName()).compareTo(other.isSetNewTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNewTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newTableName, other.newTableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("renameTable_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("oldTableName:");
      if (this.oldTableName == null) {
        sb.append("null");
      } else {
        sb.append(this.oldTableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("newTableName:");
      if (this.newTableName == null) {
        sb.append("null");
      } else {
        sb.append(this.newTableName);
      }
      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, 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 renameTable_argsStandardSchemeFactory implements SchemeFactory {
      public renameTable_argsStandardScheme getScheme() {
        return new renameTable_argsStandardScheme();
      }
    }

    private static class renameTable_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renameTable_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OLD_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.oldTableName = iprot.readString();
                struct.setOldTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.newTableName = iprot.readString();
                struct.setNewTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.oldTableName != null) {
          oprot.writeFieldBegin(OLD_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.oldTableName);
          oprot.writeFieldEnd();
        }
        if (struct.newTableName != null) {
          oprot.writeFieldBegin(NEW_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.newTableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renameTable_argsTupleSchemeFactory implements SchemeFactory {
      public renameTable_argsTupleScheme getScheme() {
        return new renameTable_argsTupleScheme();
      }
    }

    private static class renameTable_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renameTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetOldTableName()) {
          optionals.set(1);
        }
        if (struct.isSetNewTableName()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetOldTableName()) {
          oprot.writeString(struct.oldTableName);
        }
        if (struct.isSetNewTableName()) {
          oprot.writeString(struct.newTableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renameTable_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.oldTableName = iprot.readString();
          struct.setOldTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.newTableName = iprot.readString();
          struct.setNewTableNameIsSet(true);
        }
      }
    }

  }

  public static class renameTable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("renameTable_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField OUCH4_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new renameTable_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new renameTable_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // required
    public TableExistsException ouch4; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3"),
      OUCH4((short)4, "ouch4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          case 4: // OUCH4
            return OUCH4;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH4, new org.apache.thrift.meta_data.FieldMetaData("ouch4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renameTable_result.class, metaDataMap);
    }

    public renameTable_result() {
    }

    public renameTable_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3,
      TableExistsException ouch4)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
      this.ouch4 = ouch4;
    }

    /**
     * Performs a deep copy on other.
     */
    public renameTable_result(renameTable_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
      if (other.isSetOuch4()) {
        this.ouch4 = new TableExistsException(other.ouch4);
      }
    }

    public renameTable_result deepCopy() {
      return new renameTable_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
      this.ouch4 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public renameTable_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public renameTable_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public renameTable_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public TableExistsException getOuch4() {
      return this.ouch4;
    }

    public renameTable_result setOuch4(TableExistsException ouch4) {
      this.ouch4 = ouch4;
      return this;
    }

    public void unsetOuch4() {
      this.ouch4 = null;
    }

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

    public void setOuch4IsSet(boolean value) {
      if (!value) {
        this.ouch4 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      case OUCH4:
        if (value == null) {
          unsetOuch4();
        } else {
          setOuch4((TableExistsException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      case OUCH4:
        return getOuch4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      case OUCH4:
        return isSetOuch4();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof renameTable_result)
        return this.equals((renameTable_result)that);
      return false;
    }

    public boolean equals(renameTable_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      boolean this_present_ouch4 = true && this.isSetOuch4();
      boolean that_present_ouch4 = true && that.isSetOuch4();
      if (this_present_ouch4 || that_present_ouch4) {
        if (!(this_present_ouch4 && that_present_ouch4))
          return false;
        if (!this.ouch4.equals(that.ouch4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch4()).compareTo(other.isSetOuch4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch4, other.ouch4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("renameTable_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch4:");
      if (this.ouch4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch4);
      }
      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, 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 renameTable_resultStandardSchemeFactory implements SchemeFactory {
      public renameTable_resultStandardScheme getScheme() {
        return new renameTable_resultStandardScheme();
      }
    }

    private static class renameTable_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renameTable_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // OUCH4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch4 = new TableExistsException();
                struct.ouch4.read(iprot);
                struct.setOuch4IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch4 != null) {
          oprot.writeFieldBegin(OUCH4_FIELD_DESC);
          struct.ouch4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renameTable_resultTupleSchemeFactory implements SchemeFactory {
      public renameTable_resultTupleScheme getScheme() {
        return new renameTable_resultTupleScheme();
      }
    }

    private static class renameTable_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renameTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        if (struct.isSetOuch4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
        if (struct.isSetOuch4()) {
          struct.ouch4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renameTable_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch4 = new TableExistsException();
          struct.ouch4.read(iprot);
          struct.setOuch4IsSet(true);
        }
      }
    }

  }

  public static class setLocalityGroups_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setLocalityGroups_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField GROUPS_FIELD_DESC = new org.apache.thrift.protocol.TField("groups", org.apache.thrift.protocol.TType.MAP, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setLocalityGroups_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setLocalityGroups_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public Map> groups; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      GROUPS((short)3, "groups");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // GROUPS
            return GROUPS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUPS, new org.apache.thrift.meta_data.FieldMetaData("groups", 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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setLocalityGroups_args.class, metaDataMap);
    }

    public setLocalityGroups_args() {
    }

    public setLocalityGroups_args(
      ByteBuffer login,
      String tableName,
      Map> groups)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.groups = groups;
    }

    /**
     * Performs a deep copy on other.
     */
    public setLocalityGroups_args(setLocalityGroups_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetGroups()) {
        Map> __this__groups = new HashMap>(other.groups.size());
        for (Map.Entry> other_element : other.groups.entrySet()) {

          String other_element_key = other_element.getKey();
          Set other_element_value = other_element.getValue();

          String __this__groups_copy_key = other_element_key;

          Set __this__groups_copy_value = new HashSet(other_element_value);

          __this__groups.put(__this__groups_copy_key, __this__groups_copy_value);
        }
        this.groups = __this__groups;
      }
    }

    public setLocalityGroups_args deepCopy() {
      return new setLocalityGroups_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.groups = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public setLocalityGroups_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public setLocalityGroups_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public setLocalityGroups_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

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

    public void putToGroups(String key, Set val) {
      if (this.groups == null) {
        this.groups = new HashMap>();
      }
      this.groups.put(key, val);
    }

    public Map> getGroups() {
      return this.groups;
    }

    public setLocalityGroups_args setGroups(Map> groups) {
      this.groups = groups;
      return this;
    }

    public void unsetGroups() {
      this.groups = null;
    }

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

    public void setGroupsIsSet(boolean value) {
      if (!value) {
        this.groups = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case GROUPS:
        if (value == null) {
          unsetGroups();
        } else {
          setGroups((Map>)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case GROUPS:
        return getGroups();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case GROUPS:
        return isSetGroups();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setLocalityGroups_args)
        return this.equals((setLocalityGroups_args)that);
      return false;
    }

    public boolean equals(setLocalityGroups_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_groups = true && this.isSetGroups();
      boolean that_present_groups = true && that.isSetGroups();
      if (this_present_groups || that_present_groups) {
        if (!(this_present_groups && that_present_groups))
          return false;
        if (!this.groups.equals(that.groups))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGroups()).compareTo(other.isSetGroups());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroups()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groups, other.groups);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setLocalityGroups_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("groups:");
      if (this.groups == null) {
        sb.append("null");
      } else {
        sb.append(this.groups);
      }
      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, 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 setLocalityGroups_argsStandardSchemeFactory implements SchemeFactory {
      public setLocalityGroups_argsStandardScheme getScheme() {
        return new setLocalityGroups_argsStandardScheme();
      }
    }

    private static class setLocalityGroups_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setLocalityGroups_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // GROUPS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map328 = iprot.readMapBegin();
                  struct.groups = new HashMap>(2*_map328.size);
                  for (int _i329 = 0; _i329 < _map328.size; ++_i329)
                  {
                    String _key330;
                    Set _val331;
                    _key330 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TSet _set332 = iprot.readSetBegin();
                      _val331 = new HashSet(2*_set332.size);
                      for (int _i333 = 0; _i333 < _set332.size; ++_i333)
                      {
                        String _elem334;
                        _elem334 = iprot.readString();
                        _val331.add(_elem334);
                      }
                      iprot.readSetEnd();
                    }
                    struct.groups.put(_key330, _val331);
                  }
                  iprot.readMapEnd();
                }
                struct.setGroupsIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.groups != null) {
          oprot.writeFieldBegin(GROUPS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, struct.groups.size()));
            for (Map.Entry> _iter335 : struct.groups.entrySet())
            {
              oprot.writeString(_iter335.getKey());
              {
                oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, _iter335.getValue().size()));
                for (String _iter336 : _iter335.getValue())
                {
                  oprot.writeString(_iter336);
                }
                oprot.writeSetEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setLocalityGroups_argsTupleSchemeFactory implements SchemeFactory {
      public setLocalityGroups_argsTupleScheme getScheme() {
        return new setLocalityGroups_argsTupleScheme();
      }
    }

    private static class setLocalityGroups_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setLocalityGroups_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetGroups()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetGroups()) {
          {
            oprot.writeI32(struct.groups.size());
            for (Map.Entry> _iter337 : struct.groups.entrySet())
            {
              oprot.writeString(_iter337.getKey());
              {
                oprot.writeI32(_iter337.getValue().size());
                for (String _iter338 : _iter337.getValue())
                {
                  oprot.writeString(_iter338);
                }
              }
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setLocalityGroups_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map339 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, iprot.readI32());
            struct.groups = new HashMap>(2*_map339.size);
            for (int _i340 = 0; _i340 < _map339.size; ++_i340)
            {
              String _key341;
              Set _val342;
              _key341 = iprot.readString();
              {
                org.apache.thrift.protocol.TSet _set343 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
                _val342 = new HashSet(2*_set343.size);
                for (int _i344 = 0; _i344 < _set343.size; ++_i344)
                {
                  String _elem345;
                  _elem345 = iprot.readString();
                  _val342.add(_elem345);
                }
              }
              struct.groups.put(_key341, _val342);
            }
          }
          struct.setGroupsIsSet(true);
        }
      }
    }

  }

  public static class setLocalityGroups_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setLocalityGroups_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setLocalityGroups_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setLocalityGroups_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setLocalityGroups_result.class, metaDataMap);
    }

    public setLocalityGroups_result() {
    }

    public setLocalityGroups_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public setLocalityGroups_result(setLocalityGroups_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public setLocalityGroups_result deepCopy() {
      return new setLocalityGroups_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public setLocalityGroups_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public setLocalityGroups_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public setLocalityGroups_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setLocalityGroups_result)
        return this.equals((setLocalityGroups_result)that);
      return false;
    }

    public boolean equals(setLocalityGroups_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setLocalityGroups_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 setLocalityGroups_resultStandardSchemeFactory implements SchemeFactory {
      public setLocalityGroups_resultStandardScheme getScheme() {
        return new setLocalityGroups_resultStandardScheme();
      }
    }

    private static class setLocalityGroups_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setLocalityGroups_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setLocalityGroups_resultTupleSchemeFactory implements SchemeFactory {
      public setLocalityGroups_resultTupleScheme getScheme() {
        return new setLocalityGroups_resultTupleScheme();
      }
    }

    private static class setLocalityGroups_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setLocalityGroups_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setLocalityGroups_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class setTableProperty_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setTableProperty_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PROPERTY_FIELD_DESC = new org.apache.thrift.protocol.TField("property", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setTableProperty_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setTableProperty_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String property; // required
    public String value; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      PROPERTY((short)3, "property"),
      VALUE((short)4, "value");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // PROPERTY
            return PROPERTY;
          case 4: // VALUE
            return VALUE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PROPERTY, new org.apache.thrift.meta_data.FieldMetaData("property", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setTableProperty_args.class, metaDataMap);
    }

    public setTableProperty_args() {
    }

    public setTableProperty_args(
      ByteBuffer login,
      String tableName,
      String property,
      String value)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.property = property;
      this.value = value;
    }

    /**
     * Performs a deep copy on other.
     */
    public setTableProperty_args(setTableProperty_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetProperty()) {
        this.property = other.property;
      }
      if (other.isSetValue()) {
        this.value = other.value;
      }
    }

    public setTableProperty_args deepCopy() {
      return new setTableProperty_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.property = null;
      this.value = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public setTableProperty_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public setTableProperty_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public setTableProperty_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getProperty() {
      return this.property;
    }

    public setTableProperty_args setProperty(String property) {
      this.property = property;
      return this;
    }

    public void unsetProperty() {
      this.property = null;
    }

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

    public void setPropertyIsSet(boolean value) {
      if (!value) {
        this.property = null;
      }
    }

    public String getValue() {
      return this.value;
    }

    public setTableProperty_args setValue(String value) {
      this.value = value;
      return this;
    }

    public void unsetValue() {
      this.value = null;
    }

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

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

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case PROPERTY:
        if (value == null) {
          unsetProperty();
        } else {
          setProperty((String)value);
        }
        break;

      case VALUE:
        if (value == null) {
          unsetValue();
        } else {
          setValue((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case PROPERTY:
        return getProperty();

      case VALUE:
        return getValue();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case PROPERTY:
        return isSetProperty();
      case VALUE:
        return isSetValue();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setTableProperty_args)
        return this.equals((setTableProperty_args)that);
      return false;
    }

    public boolean equals(setTableProperty_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_property = true && this.isSetProperty();
      boolean that_present_property = true && that.isSetProperty();
      if (this_present_property || that_present_property) {
        if (!(this_present_property && that_present_property))
          return false;
        if (!this.property.equals(that.property))
          return false;
      }

      boolean this_present_value = true && this.isSetValue();
      boolean that_present_value = true && that.isSetValue();
      if (this_present_value || that_present_value) {
        if (!(this_present_value && that_present_value))
          return false;
        if (!this.value.equals(that.value))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProperty()).compareTo(other.isSetProperty());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProperty()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.property, other.property);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetValue()).compareTo(other.isSetValue());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetValue()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, other.value);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setTableProperty_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("property:");
      if (this.property == null) {
        sb.append("null");
      } else {
        sb.append(this.property);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("value:");
      if (this.value == null) {
        sb.append("null");
      } else {
        sb.append(this.value);
      }
      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, 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 setTableProperty_argsStandardSchemeFactory implements SchemeFactory {
      public setTableProperty_argsStandardScheme getScheme() {
        return new setTableProperty_argsStandardScheme();
      }
    }

    private static class setTableProperty_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setTableProperty_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PROPERTY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.property = iprot.readString();
                struct.setPropertyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // VALUE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.value = iprot.readString();
                struct.setValueIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.property != null) {
          oprot.writeFieldBegin(PROPERTY_FIELD_DESC);
          oprot.writeString(struct.property);
          oprot.writeFieldEnd();
        }
        if (struct.value != null) {
          oprot.writeFieldBegin(VALUE_FIELD_DESC);
          oprot.writeString(struct.value);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setTableProperty_argsTupleSchemeFactory implements SchemeFactory {
      public setTableProperty_argsTupleScheme getScheme() {
        return new setTableProperty_argsTupleScheme();
      }
    }

    private static class setTableProperty_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setTableProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetProperty()) {
          optionals.set(2);
        }
        if (struct.isSetValue()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetProperty()) {
          oprot.writeString(struct.property);
        }
        if (struct.isSetValue()) {
          oprot.writeString(struct.value);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setTableProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.property = iprot.readString();
          struct.setPropertyIsSet(true);
        }
        if (incoming.get(3)) {
          struct.value = iprot.readString();
          struct.setValueIsSet(true);
        }
      }
    }

  }

  public static class setTableProperty_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setTableProperty_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setTableProperty_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setTableProperty_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setTableProperty_result.class, metaDataMap);
    }

    public setTableProperty_result() {
    }

    public setTableProperty_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public setTableProperty_result(setTableProperty_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public setTableProperty_result deepCopy() {
      return new setTableProperty_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public setTableProperty_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public setTableProperty_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public setTableProperty_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setTableProperty_result)
        return this.equals((setTableProperty_result)that);
      return false;
    }

    public boolean equals(setTableProperty_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setTableProperty_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 setTableProperty_resultStandardSchemeFactory implements SchemeFactory {
      public setTableProperty_resultStandardScheme getScheme() {
        return new setTableProperty_resultStandardScheme();
      }
    }

    private static class setTableProperty_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setTableProperty_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setTableProperty_resultTupleSchemeFactory implements SchemeFactory {
      public setTableProperty_resultTupleScheme getScheme() {
        return new setTableProperty_resultTupleScheme();
      }
    }

    private static class setTableProperty_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setTableProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setTableProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class splitRangeByTablets_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("splitRangeByTablets_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (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 MAX_SPLITS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxSplits", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new splitRangeByTablets_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new splitRangeByTablets_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public Range range; // required
    public int maxSplits; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      RANGE((short)3, "range"),
      MAX_SPLITS((short)4, "maxSplits");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // RANGE
            return RANGE;
          case 4: // MAX_SPLITS
            return MAX_SPLITS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAXSPLITS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      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, Range.class)));
      tmpMap.put(_Fields.MAX_SPLITS, new org.apache.thrift.meta_data.FieldMetaData("maxSplits", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(splitRangeByTablets_args.class, metaDataMap);
    }

    public splitRangeByTablets_args() {
    }

    public splitRangeByTablets_args(
      ByteBuffer login,
      String tableName,
      Range range,
      int maxSplits)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.range = range;
      this.maxSplits = maxSplits;
      setMaxSplitsIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public splitRangeByTablets_args(splitRangeByTablets_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetRange()) {
        this.range = new Range(other.range);
      }
      this.maxSplits = other.maxSplits;
    }

    public splitRangeByTablets_args deepCopy() {
      return new splitRangeByTablets_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.range = null;
      setMaxSplitsIsSet(false);
      this.maxSplits = 0;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public splitRangeByTablets_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public splitRangeByTablets_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public splitRangeByTablets_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public Range getRange() {
      return this.range;
    }

    public splitRangeByTablets_args setRange(Range 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 getMaxSplits() {
      return this.maxSplits;
    }

    public splitRangeByTablets_args setMaxSplits(int maxSplits) {
      this.maxSplits = maxSplits;
      setMaxSplitsIsSet(true);
      return this;
    }

    public void unsetMaxSplits() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXSPLITS_ISSET_ID);
    }

    /** Returns true if field maxSplits is set (has been assigned a value) and false otherwise */
    public boolean isSetMaxSplits() {
      return EncodingUtils.testBit(__isset_bitfield, __MAXSPLITS_ISSET_ID);
    }

    public void setMaxSplitsIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXSPLITS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case RANGE:
        if (value == null) {
          unsetRange();
        } else {
          setRange((Range)value);
        }
        break;

      case MAX_SPLITS:
        if (value == null) {
          unsetMaxSplits();
        } else {
          setMaxSplits((Integer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case RANGE:
        return getRange();

      case MAX_SPLITS:
        return Integer.valueOf(getMaxSplits());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case RANGE:
        return isSetRange();
      case MAX_SPLITS:
        return isSetMaxSplits();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof splitRangeByTablets_args)
        return this.equals((splitRangeByTablets_args)that);
      return false;
    }

    public boolean equals(splitRangeByTablets_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          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_maxSplits = true;
      boolean that_present_maxSplits = true;
      if (this_present_maxSplits || that_present_maxSplits) {
        if (!(this_present_maxSplits && that_present_maxSplits))
          return false;
        if (this.maxSplits != that.maxSplits)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetRange()).compareTo(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 = Boolean.valueOf(isSetMaxSplits()).compareTo(other.isSetMaxSplits());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMaxSplits()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxSplits, other.maxSplits);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("splitRangeByTablets_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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("maxSplits:");
      sb.append(this.maxSplits);
      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 (range != null) {
        range.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, 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 splitRangeByTablets_argsStandardSchemeFactory implements SchemeFactory {
      public splitRangeByTablets_argsStandardScheme getScheme() {
        return new splitRangeByTablets_argsStandardScheme();
      }
    }

    private static class splitRangeByTablets_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, splitRangeByTablets_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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 Range();
                struct.range.read(iprot);
                struct.setRangeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_SPLITS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.maxSplits = iprot.readI32();
                struct.setMaxSplitsIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.range != null) {
          oprot.writeFieldBegin(RANGE_FIELD_DESC);
          struct.range.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_SPLITS_FIELD_DESC);
        oprot.writeI32(struct.maxSplits);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class splitRangeByTablets_argsTupleSchemeFactory implements SchemeFactory {
      public splitRangeByTablets_argsTupleScheme getScheme() {
        return new splitRangeByTablets_argsTupleScheme();
      }
    }

    private static class splitRangeByTablets_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, splitRangeByTablets_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetRange()) {
          optionals.set(2);
        }
        if (struct.isSetMaxSplits()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetRange()) {
          struct.range.write(oprot);
        }
        if (struct.isSetMaxSplits()) {
          oprot.writeI32(struct.maxSplits);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, splitRangeByTablets_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.range = new Range();
          struct.range.read(iprot);
          struct.setRangeIsSet(true);
        }
        if (incoming.get(3)) {
          struct.maxSplits = iprot.readI32();
          struct.setMaxSplitsIsSet(true);
        }
      }
    }

  }

  public static class splitRangeByTablets_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("splitRangeByTablets_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.SET, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new splitRangeByTablets_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new splitRangeByTablets_resultTupleSchemeFactory());
    }

    public Set success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Range.class))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(splitRangeByTablets_result.class, metaDataMap);
    }

    public splitRangeByTablets_result() {
    }

    public splitRangeByTablets_result(
      Set success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public splitRangeByTablets_result(splitRangeByTablets_result other) {
      if (other.isSetSuccess()) {
        Set __this__success = new HashSet(other.success.size());
        for (Range other_element : other.success) {
          __this__success.add(new Range(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public splitRangeByTablets_result deepCopy() {
      return new splitRangeByTablets_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Range elem) {
      if (this.success == null) {
        this.success = new HashSet();
      }
      this.success.add(elem);
    }

    public Set getSuccess() {
      return this.success;
    }

    public splitRangeByTablets_result setSuccess(Set 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public splitRangeByTablets_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public splitRangeByTablets_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public splitRangeByTablets_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Set)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof splitRangeByTablets_result)
        return this.equals((splitRangeByTablets_result)that);
      return false;
    }

    public boolean equals(splitRangeByTablets_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("splitRangeByTablets_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 splitRangeByTablets_resultStandardSchemeFactory implements SchemeFactory {
      public splitRangeByTablets_resultStandardScheme getScheme() {
        return new splitRangeByTablets_resultStandardScheme();
      }
    }

    private static class splitRangeByTablets_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, splitRangeByTablets_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.SET) {
                {
                  org.apache.thrift.protocol.TSet _set346 = iprot.readSetBegin();
                  struct.success = new HashSet(2*_set346.size);
                  for (int _i347 = 0; _i347 < _set346.size; ++_i347)
                  {
                    Range _elem348;
                    _elem348 = new Range();
                    _elem348.read(iprot);
                    struct.success.add(_elem348);
                  }
                  iprot.readSetEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Range _iter349 : struct.success)
            {
              _iter349.write(oprot);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class splitRangeByTablets_resultTupleSchemeFactory implements SchemeFactory {
      public splitRangeByTablets_resultTupleScheme getScheme() {
        return new splitRangeByTablets_resultTupleScheme();
      }
    }

    private static class splitRangeByTablets_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, splitRangeByTablets_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Range _iter350 : struct.success)
            {
              _iter350.write(oprot);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, splitRangeByTablets_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TSet _set351 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.success = new HashSet(2*_set351.size);
            for (int _i352 = 0; _i352 < _set351.size; ++_i352)
            {
              Range _elem353;
              _elem353 = new Range();
              _elem353.read(iprot);
              struct.success.add(_elem353);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class tableExists_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("tableExists_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new tableExists_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new tableExists_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(tableExists_args.class, metaDataMap);
    }

    public tableExists_args() {
    }

    public tableExists_args(
      ByteBuffer login,
      String tableName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
    }

    /**
     * Performs a deep copy on other.
     */
    public tableExists_args(tableExists_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
    }

    public tableExists_args deepCopy() {
      return new tableExists_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public tableExists_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public tableExists_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public tableExists_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof tableExists_args)
        return this.equals((tableExists_args)that);
      return false;
    }

    public boolean equals(tableExists_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("tableExists_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      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, 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 tableExists_argsStandardSchemeFactory implements SchemeFactory {
      public tableExists_argsStandardScheme getScheme() {
        return new tableExists_argsStandardScheme();
      }
    }

    private static class tableExists_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, tableExists_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class tableExists_argsTupleSchemeFactory implements SchemeFactory {
      public tableExists_argsTupleScheme getScheme() {
        return new tableExists_argsTupleScheme();
      }
    }

    private static class tableExists_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, tableExists_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, tableExists_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
      }
    }

  }

  public static class tableExists_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("tableExists_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new tableExists_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new tableExists_resultTupleSchemeFactory());
    }

    public boolean success; // 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");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(tableExists_result.class, metaDataMap);
    }

    public tableExists_result() {
    }

    public tableExists_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public tableExists_result(tableExists_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

    public tableExists_result deepCopy() {
      return new tableExists_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public tableExists_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof tableExists_result)
        return this.equals((tableExists_result)that);
      return false;
    }

    public boolean equals(tableExists_result that) {
      if (that == null)
        return false;

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

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("tableExists_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      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, 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 tableExists_resultStandardSchemeFactory implements SchemeFactory {
      public tableExists_resultStandardScheme getScheme() {
        return new tableExists_resultStandardScheme();
      }
    }

    private static class tableExists_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, tableExists_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class tableExists_resultTupleSchemeFactory implements SchemeFactory {
      public tableExists_resultTupleScheme getScheme() {
        return new tableExists_resultTupleScheme();
      }
    }

    private static class tableExists_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, tableExists_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, tableExists_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

  public static class tableIdMap_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("tableIdMap_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new tableIdMap_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new tableIdMap_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(tableIdMap_args.class, metaDataMap);
    }

    public tableIdMap_args() {
    }

    public tableIdMap_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public tableIdMap_args(tableIdMap_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public tableIdMap_args deepCopy() {
      return new tableIdMap_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public tableIdMap_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public tableIdMap_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof tableIdMap_args)
        return this.equals((tableIdMap_args)that);
      return false;
    }

    public boolean equals(tableIdMap_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("tableIdMap_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 tableIdMap_argsStandardSchemeFactory implements SchemeFactory {
      public tableIdMap_argsStandardScheme getScheme() {
        return new tableIdMap_argsStandardScheme();
      }
    }

    private static class tableIdMap_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, tableIdMap_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class tableIdMap_argsTupleSchemeFactory implements SchemeFactory {
      public tableIdMap_argsTupleScheme getScheme() {
        return new tableIdMap_argsTupleScheme();
      }
    }

    private static class tableIdMap_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, tableIdMap_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, tableIdMap_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class tableIdMap_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("tableIdMap_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new tableIdMap_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new tableIdMap_resultTupleSchemeFactory());
    }

    public Map success; // 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");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(tableIdMap_result.class, metaDataMap);
    }

    public tableIdMap_result() {
    }

    public tableIdMap_result(
      Map success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on other.
     */
    public tableIdMap_result(tableIdMap_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success);
        this.success = __this__success;
      }
    }

    public tableIdMap_result deepCopy() {
      return new tableIdMap_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

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

    public void putToSuccess(String key, String val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public tableIdMap_result setSuccess(Map 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;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof tableIdMap_result)
        return this.equals((tableIdMap_result)that);
      return false;
    }

    public boolean equals(tableIdMap_result that) {
      if (that == null)
        return false;

      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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("tableIdMap_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      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, 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 tableIdMap_resultStandardSchemeFactory implements SchemeFactory {
      public tableIdMap_resultStandardScheme getScheme() {
        return new tableIdMap_resultStandardScheme();
      }
    }

    private static class tableIdMap_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, tableIdMap_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map354 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map354.size);
                  for (int _i355 = 0; _i355 < _map354.size; ++_i355)
                  {
                    String _key356;
                    String _val357;
                    _key356 = iprot.readString();
                    _val357 = iprot.readString();
                    struct.success.put(_key356, _val357);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (Map.Entry _iter358 : struct.success.entrySet())
            {
              oprot.writeString(_iter358.getKey());
              oprot.writeString(_iter358.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class tableIdMap_resultTupleSchemeFactory implements SchemeFactory {
      public tableIdMap_resultTupleScheme getScheme() {
        return new tableIdMap_resultTupleScheme();
      }
    }

    private static class tableIdMap_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, tableIdMap_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter359 : struct.success.entrySet())
            {
              oprot.writeString(_iter359.getKey());
              oprot.writeString(_iter359.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, tableIdMap_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map360 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashMap(2*_map360.size);
            for (int _i361 = 0; _i361 < _map360.size; ++_i361)
            {
              String _key362;
              String _val363;
              _key362 = iprot.readString();
              _val363 = iprot.readString();
              struct.success.put(_key362, _val363);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

  public static class testTableClassLoad_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testTableClassLoad_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField CLASS_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("className", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField AS_TYPE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("asTypeName", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new testTableClassLoad_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new testTableClassLoad_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public String className; // required
    public String asTypeName; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      CLASS_NAME((short)3, "className"),
      AS_TYPE_NAME((short)4, "asTypeName");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // CLASS_NAME
            return CLASS_NAME;
          case 4: // AS_TYPE_NAME
            return AS_TYPE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CLASS_NAME, new org.apache.thrift.meta_data.FieldMetaData("className", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.AS_TYPE_NAME, new org.apache.thrift.meta_data.FieldMetaData("asTypeName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(testTableClassLoad_args.class, metaDataMap);
    }

    public testTableClassLoad_args() {
    }

    public testTableClassLoad_args(
      ByteBuffer login,
      String tableName,
      String className,
      String asTypeName)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.className = className;
      this.asTypeName = asTypeName;
    }

    /**
     * Performs a deep copy on other.
     */
    public testTableClassLoad_args(testTableClassLoad_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetClassName()) {
        this.className = other.className;
      }
      if (other.isSetAsTypeName()) {
        this.asTypeName = other.asTypeName;
      }
    }

    public testTableClassLoad_args deepCopy() {
      return new testTableClassLoad_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.className = null;
      this.asTypeName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public testTableClassLoad_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public testTableClassLoad_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public testTableClassLoad_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

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

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public String getClassName() {
      return this.className;
    }

    public testTableClassLoad_args setClassName(String className) {
      this.className = className;
      return this;
    }

    public void unsetClassName() {
      this.className = null;
    }

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

    public void setClassNameIsSet(boolean value) {
      if (!value) {
        this.className = null;
      }
    }

    public String getAsTypeName() {
      return this.asTypeName;
    }

    public testTableClassLoad_args setAsTypeName(String asTypeName) {
      this.asTypeName = asTypeName;
      return this;
    }

    public void unsetAsTypeName() {
      this.asTypeName = null;
    }

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

    public void setAsTypeNameIsSet(boolean value) {
      if (!value) {
        this.asTypeName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case CLASS_NAME:
        if (value == null) {
          unsetClassName();
        } else {
          setClassName((String)value);
        }
        break;

      case AS_TYPE_NAME:
        if (value == null) {
          unsetAsTypeName();
        } else {
          setAsTypeName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case CLASS_NAME:
        return getClassName();

      case AS_TYPE_NAME:
        return getAsTypeName();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case CLASS_NAME:
        return isSetClassName();
      case AS_TYPE_NAME:
        return isSetAsTypeName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testTableClassLoad_args)
        return this.equals((testTableClassLoad_args)that);
      return false;
    }

    public boolean equals(testTableClassLoad_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_className = true && this.isSetClassName();
      boolean that_present_className = true && that.isSetClassName();
      if (this_present_className || that_present_className) {
        if (!(this_present_className && that_present_className))
          return false;
        if (!this.className.equals(that.className))
          return false;
      }

      boolean this_present_asTypeName = true && this.isSetAsTypeName();
      boolean that_present_asTypeName = true && that.isSetAsTypeName();
      if (this_present_asTypeName || that_present_asTypeName) {
        if (!(this_present_asTypeName && that_present_asTypeName))
          return false;
        if (!this.asTypeName.equals(that.asTypeName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetClassName()).compareTo(other.isSetClassName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetClassName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.className, other.className);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAsTypeName()).compareTo(other.isSetAsTypeName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAsTypeName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.asTypeName, other.asTypeName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testTableClassLoad_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("className:");
      if (this.className == null) {
        sb.append("null");
      } else {
        sb.append(this.className);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("asTypeName:");
      if (this.asTypeName == null) {
        sb.append("null");
      } else {
        sb.append(this.asTypeName);
      }
      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, 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 testTableClassLoad_argsStandardSchemeFactory implements SchemeFactory {
      public testTableClassLoad_argsStandardScheme getScheme() {
        return new testTableClassLoad_argsStandardScheme();
      }
    }

    private static class testTableClassLoad_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, testTableClassLoad_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // CLASS_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.className = iprot.readString();
                struct.setClassNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // AS_TYPE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.asTypeName = iprot.readString();
                struct.setAsTypeNameIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.className != null) {
          oprot.writeFieldBegin(CLASS_NAME_FIELD_DESC);
          oprot.writeString(struct.className);
          oprot.writeFieldEnd();
        }
        if (struct.asTypeName != null) {
          oprot.writeFieldBegin(AS_TYPE_NAME_FIELD_DESC);
          oprot.writeString(struct.asTypeName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class testTableClassLoad_argsTupleSchemeFactory implements SchemeFactory {
      public testTableClassLoad_argsTupleScheme getScheme() {
        return new testTableClassLoad_argsTupleScheme();
      }
    }

    private static class testTableClassLoad_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, testTableClassLoad_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetClassName()) {
          optionals.set(2);
        }
        if (struct.isSetAsTypeName()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetClassName()) {
          oprot.writeString(struct.className);
        }
        if (struct.isSetAsTypeName()) {
          oprot.writeString(struct.asTypeName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, testTableClassLoad_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.className = iprot.readString();
          struct.setClassNameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.asTypeName = iprot.readString();
          struct.setAsTypeNameIsSet(true);
        }
      }
    }

  }

  public static class testTableClassLoad_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testTableClassLoad_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new testTableClassLoad_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new testTableClassLoad_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(testTableClassLoad_result.class, metaDataMap);
    }

    public testTableClassLoad_result() {
    }

    public testTableClassLoad_result(
      boolean success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public testTableClassLoad_result(testTableClassLoad_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public testTableClassLoad_result deepCopy() {
      return new testTableClassLoad_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public testTableClassLoad_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public testTableClassLoad_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public testTableClassLoad_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public testTableClassLoad_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

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

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testTableClassLoad_result)
        return this.equals((testTableClassLoad_result)that);
      return false;
    }

    public boolean equals(testTableClassLoad_result that) {
      if (that == null)
        return false;

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

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testTableClassLoad_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 testTableClassLoad_resultStandardSchemeFactory implements SchemeFactory {
      public testTableClassLoad_resultStandardScheme getScheme() {
        return new testTableClassLoad_resultStandardScheme();
      }
    }

    private static class testTableClassLoad_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, testTableClassLoad_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class testTableClassLoad_resultTupleSchemeFactory implements SchemeFactory {
      public testTableClassLoad_resultTupleScheme getScheme() {
        return new testTableClassLoad_resultTupleScheme();
      }
    }

    private static class testTableClassLoad_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, testTableClassLoad_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, testTableClassLoad_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class pingTabletServer_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pingTabletServer_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TSERVER_FIELD_DESC = new org.apache.thrift.protocol.TField("tserver", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new pingTabletServer_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new pingTabletServer_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tserver; // 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 {
      LOGIN((short)1, "login"),
      TSERVER((short)2, "tserver");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TSERVER
            return TSERVER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TSERVER, new org.apache.thrift.meta_data.FieldMetaData("tserver", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pingTabletServer_args.class, metaDataMap);
    }

    public pingTabletServer_args() {
    }

    public pingTabletServer_args(
      ByteBuffer login,
      String tserver)
    {
      this();
      this.login = login;
      this.tserver = tserver;
    }

    /**
     * Performs a deep copy on other.
     */
    public pingTabletServer_args(pingTabletServer_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTserver()) {
        this.tserver = other.tserver;
      }
    }

    public pingTabletServer_args deepCopy() {
      return new pingTabletServer_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tserver = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public pingTabletServer_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public pingTabletServer_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTserver() {
      return this.tserver;
    }

    public pingTabletServer_args setTserver(String tserver) {
      this.tserver = tserver;
      return this;
    }

    public void unsetTserver() {
      this.tserver = null;
    }

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

    public void setTserverIsSet(boolean value) {
      if (!value) {
        this.tserver = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TSERVER:
        if (value == null) {
          unsetTserver();
        } else {
          setTserver((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TSERVER:
        return getTserver();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TSERVER:
        return isSetTserver();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof pingTabletServer_args)
        return this.equals((pingTabletServer_args)that);
      return false;
    }

    public boolean equals(pingTabletServer_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tserver = true && this.isSetTserver();
      boolean that_present_tserver = true && that.isSetTserver();
      if (this_present_tserver || that_present_tserver) {
        if (!(this_present_tserver && that_present_tserver))
          return false;
        if (!this.tserver.equals(that.tserver))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTserver()).compareTo(other.isSetTserver());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTserver()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tserver, other.tserver);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("pingTabletServer_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tserver:");
      if (this.tserver == null) {
        sb.append("null");
      } else {
        sb.append(this.tserver);
      }
      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, 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 pingTabletServer_argsStandardSchemeFactory implements SchemeFactory {
      public pingTabletServer_argsStandardScheme getScheme() {
        return new pingTabletServer_argsStandardScheme();
      }
    }

    private static class pingTabletServer_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, pingTabletServer_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TSERVER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tserver = iprot.readString();
                struct.setTserverIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tserver != null) {
          oprot.writeFieldBegin(TSERVER_FIELD_DESC);
          oprot.writeString(struct.tserver);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class pingTabletServer_argsTupleSchemeFactory implements SchemeFactory {
      public pingTabletServer_argsTupleScheme getScheme() {
        return new pingTabletServer_argsTupleScheme();
      }
    }

    private static class pingTabletServer_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, pingTabletServer_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTserver()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTserver()) {
          oprot.writeString(struct.tserver);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, pingTabletServer_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tserver = iprot.readString();
          struct.setTserverIsSet(true);
        }
      }
    }

  }

  public static class pingTabletServer_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pingTabletServer_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new pingTabletServer_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new pingTabletServer_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pingTabletServer_result.class, metaDataMap);
    }

    public pingTabletServer_result() {
    }

    public pingTabletServer_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public pingTabletServer_result(pingTabletServer_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public pingTabletServer_result deepCopy() {
      return new pingTabletServer_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public pingTabletServer_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public pingTabletServer_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof pingTabletServer_result)
        return this.equals((pingTabletServer_result)that);
      return false;
    }

    public boolean equals(pingTabletServer_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("pingTabletServer_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 pingTabletServer_resultStandardSchemeFactory implements SchemeFactory {
      public pingTabletServer_resultStandardScheme getScheme() {
        return new pingTabletServer_resultStandardScheme();
      }
    }

    private static class pingTabletServer_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, pingTabletServer_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class pingTabletServer_resultTupleSchemeFactory implements SchemeFactory {
      public pingTabletServer_resultTupleScheme getScheme() {
        return new pingTabletServer_resultTupleScheme();
      }
    }

    private static class pingTabletServer_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, pingTabletServer_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, pingTabletServer_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getActiveScans_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    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 LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TSERVER_FIELD_DESC = new org.apache.thrift.protocol.TField("tserver", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActiveScans_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActiveScans_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tserver; // 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 {
      LOGIN((short)1, "login"),
      TSERVER((short)2, "tserver");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TSERVER
            return TSERVER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TSERVER, new org.apache.thrift.meta_data.FieldMetaData("tserver", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveScans_args.class, metaDataMap);
    }

    public getActiveScans_args() {
    }

    public getActiveScans_args(
      ByteBuffer login,
      String tserver)
    {
      this();
      this.login = login;
      this.tserver = tserver;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActiveScans_args(getActiveScans_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTserver()) {
        this.tserver = other.tserver;
      }
    }

    public getActiveScans_args deepCopy() {
      return new getActiveScans_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tserver = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getActiveScans_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getActiveScans_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTserver() {
      return this.tserver;
    }

    public getActiveScans_args setTserver(String tserver) {
      this.tserver = tserver;
      return this;
    }

    public void unsetTserver() {
      this.tserver = null;
    }

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

    public void setTserverIsSet(boolean value) {
      if (!value) {
        this.tserver = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TSERVER:
        if (value == null) {
          unsetTserver();
        } else {
          setTserver((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TSERVER:
        return getTserver();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TSERVER:
        return isSetTserver();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActiveScans_args)
        return this.equals((getActiveScans_args)that);
      return false;
    }

    public boolean equals(getActiveScans_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tserver = true && this.isSetTserver();
      boolean that_present_tserver = true && that.isSetTserver();
      if (this_present_tserver || that_present_tserver) {
        if (!(this_present_tserver && that_present_tserver))
          return false;
        if (!this.tserver.equals(that.tserver))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTserver()).compareTo(other.isSetTserver());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTserver()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tserver, other.tserver);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getActiveScans_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tserver:");
      if (this.tserver == null) {
        sb.append("null");
      } else {
        sb.append(this.tserver);
      }
      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, 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 SchemeFactory {
      public getActiveScans_argsStandardScheme getScheme() {
        return new getActiveScans_argsStandardScheme();
      }
    }

    private static class getActiveScans_argsStandardScheme extends StandardScheme {

      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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TSERVER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tserver = iprot.readString();
                struct.setTserverIsSet(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();
      }

      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.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tserver != null) {
          oprot.writeFieldBegin(TSERVER_FIELD_DESC);
          oprot.writeString(struct.tserver);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveScans_argsTupleSchemeFactory implements SchemeFactory {
      public getActiveScans_argsTupleScheme getScheme() {
        return new getActiveScans_argsTupleScheme();
      }
    }

    private static class getActiveScans_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveScans_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTserver()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTserver()) {
          oprot.writeString(struct.tserver);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveScans_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tserver = iprot.readString();
          struct.setTserverIsSet(true);
        }
      }
    }

  }

  public static class getActiveScans_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActiveScans_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActiveScans_resultTupleSchemeFactory());
    }

    public List success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveScans_result.class, metaDataMap);
    }

    public getActiveScans_result() {
    }

    public getActiveScans_result(
      List success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActiveScans_result(getActiveScans_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success.size());
        for (ActiveScan other_element : other.success) {
          __this__success.add(new ActiveScan(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public getActiveScans_result deepCopy() {
      return new getActiveScans_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ActiveScan elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public getActiveScans_result setSuccess(List 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getActiveScans_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getActiveScans_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActiveScans_result)
        return this.equals((getActiveScans_result)that);
      return false;
    }

    public boolean equals(getActiveScans_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new 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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 SchemeFactory {
      public getActiveScans_resultStandardScheme getScheme() {
        return new getActiveScans_resultStandardScheme();
      }
    }

    private static class getActiveScans_resultStandardScheme extends StandardScheme {

      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 _list364 = iprot.readListBegin();
                  struct.success = new ArrayList(_list364.size);
                  for (int _i365 = 0; _i365 < _list364.size; ++_i365)
                  {
                    ActiveScan _elem366;
                    _elem366 = new ActiveScan();
                    _elem366.read(iprot);
                    struct.success.add(_elem366);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      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 _iter367 : struct.success)
            {
              _iter367.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveScans_resultTupleSchemeFactory implements SchemeFactory {
      public getActiveScans_resultTupleScheme getScheme() {
        return new getActiveScans_resultTupleScheme();
      }
    }

    private static class getActiveScans_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveScans_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (ActiveScan _iter368 : struct.success)
            {
              _iter368.write(oprot);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveScans_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list369 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.success = new ArrayList(_list369.size);
            for (int _i370 = 0; _i370 < _list369.size; ++_i370)
            {
              ActiveScan _elem371;
              _elem371 = new ActiveScan();
              _elem371.read(iprot);
              struct.success.add(_elem371);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getActiveCompactions_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActiveCompactions_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TSERVER_FIELD_DESC = new org.apache.thrift.protocol.TField("tserver", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActiveCompactions_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActiveCompactions_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tserver; // 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 {
      LOGIN((short)1, "login"),
      TSERVER((short)2, "tserver");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TSERVER
            return TSERVER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TSERVER, new org.apache.thrift.meta_data.FieldMetaData("tserver", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveCompactions_args.class, metaDataMap);
    }

    public getActiveCompactions_args() {
    }

    public getActiveCompactions_args(
      ByteBuffer login,
      String tserver)
    {
      this();
      this.login = login;
      this.tserver = tserver;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActiveCompactions_args(getActiveCompactions_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTserver()) {
        this.tserver = other.tserver;
      }
    }

    public getActiveCompactions_args deepCopy() {
      return new getActiveCompactions_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tserver = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getActiveCompactions_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getActiveCompactions_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTserver() {
      return this.tserver;
    }

    public getActiveCompactions_args setTserver(String tserver) {
      this.tserver = tserver;
      return this;
    }

    public void unsetTserver() {
      this.tserver = null;
    }

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

    public void setTserverIsSet(boolean value) {
      if (!value) {
        this.tserver = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TSERVER:
        if (value == null) {
          unsetTserver();
        } else {
          setTserver((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TSERVER:
        return getTserver();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TSERVER:
        return isSetTserver();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActiveCompactions_args)
        return this.equals((getActiveCompactions_args)that);
      return false;
    }

    public boolean equals(getActiveCompactions_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tserver = true && this.isSetTserver();
      boolean that_present_tserver = true && that.isSetTserver();
      if (this_present_tserver || that_present_tserver) {
        if (!(this_present_tserver && that_present_tserver))
          return false;
        if (!this.tserver.equals(that.tserver))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTserver()).compareTo(other.isSetTserver());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTserver()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tserver, other.tserver);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getActiveCompactions_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tserver:");
      if (this.tserver == null) {
        sb.append("null");
      } else {
        sb.append(this.tserver);
      }
      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, 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 getActiveCompactions_argsStandardSchemeFactory implements SchemeFactory {
      public getActiveCompactions_argsStandardScheme getScheme() {
        return new getActiveCompactions_argsStandardScheme();
      }
    }

    private static class getActiveCompactions_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getActiveCompactions_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TSERVER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tserver = iprot.readString();
                struct.setTserverIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tserver != null) {
          oprot.writeFieldBegin(TSERVER_FIELD_DESC);
          oprot.writeString(struct.tserver);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveCompactions_argsTupleSchemeFactory implements SchemeFactory {
      public getActiveCompactions_argsTupleScheme getScheme() {
        return new getActiveCompactions_argsTupleScheme();
      }
    }

    private static class getActiveCompactions_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveCompactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTserver()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTserver()) {
          oprot.writeString(struct.tserver);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveCompactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tserver = iprot.readString();
          struct.setTserverIsSet(true);
        }
      }
    }

  }

  public static class getActiveCompactions_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActiveCompactions_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActiveCompactions_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActiveCompactions_resultTupleSchemeFactory());
    }

    public List success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, ActiveCompaction.class))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActiveCompactions_result.class, metaDataMap);
    }

    public getActiveCompactions_result() {
    }

    public getActiveCompactions_result(
      List success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActiveCompactions_result(getActiveCompactions_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success.size());
        for (ActiveCompaction other_element : other.success) {
          __this__success.add(new ActiveCompaction(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public getActiveCompactions_result deepCopy() {
      return new getActiveCompactions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ActiveCompaction elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public getActiveCompactions_result setSuccess(List 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getActiveCompactions_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getActiveCompactions_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActiveCompactions_result)
        return this.equals((getActiveCompactions_result)that);
      return false;
    }

    public boolean equals(getActiveCompactions_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getActiveCompactions_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 getActiveCompactions_resultStandardSchemeFactory implements SchemeFactory {
      public getActiveCompactions_resultStandardScheme getScheme() {
        return new getActiveCompactions_resultStandardScheme();
      }
    }

    private static class getActiveCompactions_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getActiveCompactions_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 _list372 = iprot.readListBegin();
                  struct.success = new ArrayList(_list372.size);
                  for (int _i373 = 0; _i373 < _list372.size; ++_i373)
                  {
                    ActiveCompaction _elem374;
                    _elem374 = new ActiveCompaction();
                    _elem374.read(iprot);
                    struct.success.add(_elem374);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getActiveCompactions_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 (ActiveCompaction _iter375 : struct.success)
            {
              _iter375.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActiveCompactions_resultTupleSchemeFactory implements SchemeFactory {
      public getActiveCompactions_resultTupleScheme getScheme() {
        return new getActiveCompactions_resultTupleScheme();
      }
    }

    private static class getActiveCompactions_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActiveCompactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (ActiveCompaction _iter376 : struct.success)
            {
              _iter376.write(oprot);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActiveCompactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list377 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.success = new ArrayList(_list377.size);
            for (int _i378 = 0; _i378 < _list377.size; ++_i378)
            {
              ActiveCompaction _elem379;
              _elem379 = new ActiveCompaction();
              _elem379.read(iprot);
              struct.success.add(_elem379);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getSiteConfiguration_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getSiteConfiguration_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getSiteConfiguration_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getSiteConfiguration_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getSiteConfiguration_args.class, metaDataMap);
    }

    public getSiteConfiguration_args() {
    }

    public getSiteConfiguration_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public getSiteConfiguration_args(getSiteConfiguration_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public getSiteConfiguration_args deepCopy() {
      return new getSiteConfiguration_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getSiteConfiguration_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getSiteConfiguration_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getSiteConfiguration_args)
        return this.equals((getSiteConfiguration_args)that);
      return false;
    }

    public boolean equals(getSiteConfiguration_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getSiteConfiguration_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 getSiteConfiguration_argsStandardSchemeFactory implements SchemeFactory {
      public getSiteConfiguration_argsStandardScheme getScheme() {
        return new getSiteConfiguration_argsStandardScheme();
      }
    }

    private static class getSiteConfiguration_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getSiteConfiguration_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getSiteConfiguration_argsTupleSchemeFactory implements SchemeFactory {
      public getSiteConfiguration_argsTupleScheme getScheme() {
        return new getSiteConfiguration_argsTupleScheme();
      }
    }

    private static class getSiteConfiguration_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getSiteConfiguration_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getSiteConfiguration_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class getSiteConfiguration_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getSiteConfiguration_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getSiteConfiguration_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getSiteConfiguration_resultTupleSchemeFactory());
    }

    public Map success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getSiteConfiguration_result.class, metaDataMap);
    }

    public getSiteConfiguration_result() {
    }

    public getSiteConfiguration_result(
      Map success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public getSiteConfiguration_result(getSiteConfiguration_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public getSiteConfiguration_result deepCopy() {
      return new getSiteConfiguration_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
    }

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

    public void putToSuccess(String key, String val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public getSiteConfiguration_result setSuccess(Map 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getSiteConfiguration_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getSiteConfiguration_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getSiteConfiguration_result)
        return this.equals((getSiteConfiguration_result)that);
      return false;
    }

    public boolean equals(getSiteConfiguration_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getSiteConfiguration_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 getSiteConfiguration_resultStandardSchemeFactory implements SchemeFactory {
      public getSiteConfiguration_resultStandardScheme getScheme() {
        return new getSiteConfiguration_resultStandardScheme();
      }
    }

    private static class getSiteConfiguration_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getSiteConfiguration_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map380 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map380.size);
                  for (int _i381 = 0; _i381 < _map380.size; ++_i381)
                  {
                    String _key382;
                    String _val383;
                    _key382 = iprot.readString();
                    _val383 = iprot.readString();
                    struct.success.put(_key382, _val383);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (Map.Entry _iter384 : struct.success.entrySet())
            {
              oprot.writeString(_iter384.getKey());
              oprot.writeString(_iter384.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getSiteConfiguration_resultTupleSchemeFactory implements SchemeFactory {
      public getSiteConfiguration_resultTupleScheme getScheme() {
        return new getSiteConfiguration_resultTupleScheme();
      }
    }

    private static class getSiteConfiguration_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getSiteConfiguration_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter385 : struct.success.entrySet())
            {
              oprot.writeString(_iter385.getKey());
              oprot.writeString(_iter385.getValue());
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getSiteConfiguration_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map386 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashMap(2*_map386.size);
            for (int _i387 = 0; _i387 < _map386.size; ++_i387)
            {
              String _key388;
              String _val389;
              _key388 = iprot.readString();
              _val389 = iprot.readString();
              struct.success.put(_key388, _val389);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getSystemConfiguration_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getSystemConfiguration_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getSystemConfiguration_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getSystemConfiguration_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getSystemConfiguration_args.class, metaDataMap);
    }

    public getSystemConfiguration_args() {
    }

    public getSystemConfiguration_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public getSystemConfiguration_args(getSystemConfiguration_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public getSystemConfiguration_args deepCopy() {
      return new getSystemConfiguration_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getSystemConfiguration_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getSystemConfiguration_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getSystemConfiguration_args)
        return this.equals((getSystemConfiguration_args)that);
      return false;
    }

    public boolean equals(getSystemConfiguration_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getSystemConfiguration_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 getSystemConfiguration_argsStandardSchemeFactory implements SchemeFactory {
      public getSystemConfiguration_argsStandardScheme getScheme() {
        return new getSystemConfiguration_argsStandardScheme();
      }
    }

    private static class getSystemConfiguration_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getSystemConfiguration_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getSystemConfiguration_argsTupleSchemeFactory implements SchemeFactory {
      public getSystemConfiguration_argsTupleScheme getScheme() {
        return new getSystemConfiguration_argsTupleScheme();
      }
    }

    private static class getSystemConfiguration_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getSystemConfiguration_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getSystemConfiguration_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class getSystemConfiguration_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getSystemConfiguration_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getSystemConfiguration_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getSystemConfiguration_resultTupleSchemeFactory());
    }

    public Map success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.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.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getSystemConfiguration_result.class, metaDataMap);
    }

    public getSystemConfiguration_result() {
    }

    public getSystemConfiguration_result(
      Map success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public getSystemConfiguration_result(getSystemConfiguration_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public getSystemConfiguration_result deepCopy() {
      return new getSystemConfiguration_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
    }

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

    public void putToSuccess(String key, String val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public getSystemConfiguration_result setSuccess(Map 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getSystemConfiguration_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getSystemConfiguration_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getSystemConfiguration_result)
        return this.equals((getSystemConfiguration_result)that);
      return false;
    }

    public boolean equals(getSystemConfiguration_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getSystemConfiguration_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 getSystemConfiguration_resultStandardSchemeFactory implements SchemeFactory {
      public getSystemConfiguration_resultStandardScheme getScheme() {
        return new getSystemConfiguration_resultStandardScheme();
      }
    }

    private static class getSystemConfiguration_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getSystemConfiguration_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map390 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map390.size);
                  for (int _i391 = 0; _i391 < _map390.size; ++_i391)
                  {
                    String _key392;
                    String _val393;
                    _key392 = iprot.readString();
                    _val393 = iprot.readString();
                    struct.success.put(_key392, _val393);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (Map.Entry _iter394 : struct.success.entrySet())
            {
              oprot.writeString(_iter394.getKey());
              oprot.writeString(_iter394.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getSystemConfiguration_resultTupleSchemeFactory implements SchemeFactory {
      public getSystemConfiguration_resultTupleScheme getScheme() {
        return new getSystemConfiguration_resultTupleScheme();
      }
    }

    private static class getSystemConfiguration_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getSystemConfiguration_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter395 : struct.success.entrySet())
            {
              oprot.writeString(_iter395.getKey());
              oprot.writeString(_iter395.getValue());
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getSystemConfiguration_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map396 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashMap(2*_map396.size);
            for (int _i397 = 0; _i397 < _map396.size; ++_i397)
            {
              String _key398;
              String _val399;
              _key398 = iprot.readString();
              _val399 = iprot.readString();
              struct.success.put(_key398, _val399);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getTabletServers_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTabletServers_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getTabletServers_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getTabletServers_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTabletServers_args.class, metaDataMap);
    }

    public getTabletServers_args() {
    }

    public getTabletServers_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public getTabletServers_args(getTabletServers_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public getTabletServers_args deepCopy() {
      return new getTabletServers_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getTabletServers_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getTabletServers_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getTabletServers_args)
        return this.equals((getTabletServers_args)that);
      return false;
    }

    public boolean equals(getTabletServers_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getTabletServers_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 getTabletServers_argsStandardSchemeFactory implements SchemeFactory {
      public getTabletServers_argsStandardScheme getScheme() {
        return new getTabletServers_argsStandardScheme();
      }
    }

    private static class getTabletServers_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getTabletServers_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getTabletServers_argsTupleSchemeFactory implements SchemeFactory {
      public getTabletServers_argsTupleScheme getScheme() {
        return new getTabletServers_argsTupleScheme();
      }
    }

    private static class getTabletServers_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getTabletServers_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getTabletServers_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class getTabletServers_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTabletServers_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 Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getTabletServers_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getTabletServers_resultTupleSchemeFactory());
    }

    public List success; // 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");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTabletServers_result.class, metaDataMap);
    }

    public getTabletServers_result() {
    }

    public getTabletServers_result(
      List success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on other.
     */
    public getTabletServers_result(getTabletServers_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success);
        this.success = __this__success;
      }
    }

    public getTabletServers_result deepCopy() {
      return new getTabletServers_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

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

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(String elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public getTabletServers_result setSuccess(List 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;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getTabletServers_result)
        return this.equals((getTabletServers_result)that);
      return false;
    }

    public boolean equals(getTabletServers_result that) {
      if (that == null)
        return false;

      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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getTabletServers_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      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, 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 getTabletServers_resultStandardSchemeFactory implements SchemeFactory {
      public getTabletServers_resultStandardScheme getScheme() {
        return new getTabletServers_resultStandardScheme();
      }
    }

    private static class getTabletServers_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getTabletServers_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 _list400 = iprot.readListBegin();
                  struct.success = new ArrayList(_list400.size);
                  for (int _i401 = 0; _i401 < _list400.size; ++_i401)
                  {
                    String _elem402;
                    _elem402 = iprot.readString();
                    struct.success.add(_elem402);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getTabletServers_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.STRING, struct.success.size()));
            for (String _iter403 : struct.success)
            {
              oprot.writeString(_iter403);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getTabletServers_resultTupleSchemeFactory implements SchemeFactory {
      public getTabletServers_resultTupleScheme getScheme() {
        return new getTabletServers_resultTupleScheme();
      }
    }

    private static class getTabletServers_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getTabletServers_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (String _iter404 : struct.success)
            {
              oprot.writeString(_iter404);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getTabletServers_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list405 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new ArrayList(_list405.size);
            for (int _i406 = 0; _i406 < _list405.size; ++_i406)
            {
              String _elem407;
              _elem407 = iprot.readString();
              struct.success.add(_elem407);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

  public static class removeProperty_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeProperty_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PROPERTY_FIELD_DESC = new org.apache.thrift.protocol.TField("property", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeProperty_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeProperty_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String property; // 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 {
      LOGIN((short)1, "login"),
      PROPERTY((short)2, "property");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // PROPERTY
            return PROPERTY;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.PROPERTY, new org.apache.thrift.meta_data.FieldMetaData("property", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeProperty_args.class, metaDataMap);
    }

    public removeProperty_args() {
    }

    public removeProperty_args(
      ByteBuffer login,
      String property)
    {
      this();
      this.login = login;
      this.property = property;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeProperty_args(removeProperty_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetProperty()) {
        this.property = other.property;
      }
    }

    public removeProperty_args deepCopy() {
      return new removeProperty_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.property = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public removeProperty_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public removeProperty_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

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

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getProperty() {
      return this.property;
    }

    public removeProperty_args setProperty(String property) {
      this.property = property;
      return this;
    }

    public void unsetProperty() {
      this.property = null;
    }

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

    public void setPropertyIsSet(boolean value) {
      if (!value) {
        this.property = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case PROPERTY:
        if (value == null) {
          unsetProperty();
        } else {
          setProperty((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case PROPERTY:
        return getProperty();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case PROPERTY:
        return isSetProperty();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeProperty_args)
        return this.equals((removeProperty_args)that);
      return false;
    }

    public boolean equals(removeProperty_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_property = true && this.isSetProperty();
      boolean that_present_property = true && that.isSetProperty();
      if (this_present_property || that_present_property) {
        if (!(this_present_property && that_present_property))
          return false;
        if (!this.property.equals(that.property))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProperty()).compareTo(other.isSetProperty());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProperty()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.property, other.property);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeProperty_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("property:");
      if (this.property == null) {
        sb.append("null");
      } else {
        sb.append(this.property);
      }
      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, 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 removeProperty_argsStandardSchemeFactory implements SchemeFactory {
      public removeProperty_argsStandardScheme getScheme() {
        return new removeProperty_argsStandardScheme();
      }
    }

    private static class removeProperty_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeProperty_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PROPERTY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.property = iprot.readString();
                struct.setPropertyIsSet(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();
      }

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.property != null) {
          oprot.writeFieldBegin(PROPERTY_FIELD_DESC);
          oprot.writeString(struct.property);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeProperty_argsTupleSchemeFactory implements SchemeFactory {
      public removeProperty_argsTupleScheme getScheme() {
        return new removeProperty_argsTupleScheme();
      }
    }

    private static class removeProperty_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetProperty()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetProperty()) {
          oprot.writeString(struct.property);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.property = iprot.readString();
          struct.setPropertyIsSet(true);
        }
      }
    }

  }

  public static class removeProperty_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeProperty_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeProperty_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeProperty_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeProperty_result.class, metaDataMap);
    }

    public removeProperty_result() {
    }

    public removeProperty_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeProperty_result(removeProperty_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public removeProperty_result deepCopy() {
      return new removeProperty_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public removeProperty_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

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

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public removeProperty_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

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

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof removeProperty_result)
        return this.equals((removeProperty_result)that);
      return false;
    }

    public boolean equals(removeProperty_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(removeProperty_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("removeProperty_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 removeProperty_resultStandardSchemeFactory implements SchemeFactory {
      public removeProperty_resultStandardScheme getScheme() {
        return new removeProperty_resultStandardScheme();
      }
    }

    private static class removeProperty_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeProperty_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, removeProperty_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeProperty_resultTupleSchemeFactory implements SchemeFactory {
      public removeProperty_resultTupleScheme getScheme() {
        return new removeProperty_resultTupleScheme();
      }
    }

    private static class removeProperty_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class setProperty_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setProperty_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PROPERTY_FIELD_DESC = new org.apache.thrift.protocol.TField("property", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setProperty_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setProperty_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String property; // required
    public String value; // 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 {
      LOGIN((short)1, "login"),
      PROPERTY((short)2, "property"),
      VALUE((short)3, "value");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // PROPERTY
            return PROPERTY;
          case 3: // VALUE
            return VALUE;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.PROPERTY, new org.apache.thrift.meta_data.FieldMetaData("property", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setProperty_args.class, metaDataMap);
    }

    public setProperty_args() {
    }

    public setProperty_args(
      ByteBuffer login,
      String property,
      String value)
    {
      this();
      this.login = login;
      this.property = property;
      this.value = value;
    }

    /**
     * Performs a deep copy on other.
     */
    public setProperty_args(setProperty_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetProperty()) {
        this.property = other.property;
      }
      if (other.isSetValue()) {
        this.value = other.value;
      }
    }

    public setProperty_args deepCopy() {
      return new setProperty_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.property = null;
      this.value = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public setProperty_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public setProperty_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getProperty() {
      return this.property;
    }

    public setProperty_args setProperty(String property) {
      this.property = property;
      return this;
    }

    public void unsetProperty() {
      this.property = null;
    }

    /** Returns true if field property is set (has been assigned a value) and false otherwise */
    public boolean isSetProperty() {
      return this.property != null;
    }

    public void setPropertyIsSet(boolean value) {
      if (!value) {
        this.property = null;
      }
    }

    public String getValue() {
      return this.value;
    }

    public setProperty_args setValue(String value) {
      this.value = value;
      return this;
    }

    public void unsetValue() {
      this.value = null;
    }

    /** Returns true if field value is set (has been assigned a value) and false otherwise */
    public boolean isSetValue() {
      return this.value != null;
    }

    public void setValueIsSet(boolean value) {
      if (!value) {
        this.value = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case PROPERTY:
        if (value == null) {
          unsetProperty();
        } else {
          setProperty((String)value);
        }
        break;

      case VALUE:
        if (value == null) {
          unsetValue();
        } else {
          setValue((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case PROPERTY:
        return getProperty();

      case VALUE:
        return getValue();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case PROPERTY:
        return isSetProperty();
      case VALUE:
        return isSetValue();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setProperty_args)
        return this.equals((setProperty_args)that);
      return false;
    }

    public boolean equals(setProperty_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_property = true && this.isSetProperty();
      boolean that_present_property = true && that.isSetProperty();
      if (this_present_property || that_present_property) {
        if (!(this_present_property && that_present_property))
          return false;
        if (!this.property.equals(that.property))
          return false;
      }

      boolean this_present_value = true && this.isSetValue();
      boolean that_present_value = true && that.isSetValue();
      if (this_present_value || that_present_value) {
        if (!(this_present_value && that_present_value))
          return false;
        if (!this.value.equals(that.value))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(setProperty_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProperty()).compareTo(other.isSetProperty());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProperty()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.property, other.property);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetValue()).compareTo(other.isSetValue());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetValue()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, other.value);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setProperty_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("property:");
      if (this.property == null) {
        sb.append("null");
      } else {
        sb.append(this.property);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("value:");
      if (this.value == null) {
        sb.append("null");
      } else {
        sb.append(this.value);
      }
      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, 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 setProperty_argsStandardSchemeFactory implements SchemeFactory {
      public setProperty_argsStandardScheme getScheme() {
        return new setProperty_argsStandardScheme();
      }
    }

    private static class setProperty_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setProperty_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PROPERTY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.property = iprot.readString();
                struct.setPropertyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // VALUE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.value = iprot.readString();
                struct.setValueIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, setProperty_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.property != null) {
          oprot.writeFieldBegin(PROPERTY_FIELD_DESC);
          oprot.writeString(struct.property);
          oprot.writeFieldEnd();
        }
        if (struct.value != null) {
          oprot.writeFieldBegin(VALUE_FIELD_DESC);
          oprot.writeString(struct.value);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setProperty_argsTupleSchemeFactory implements SchemeFactory {
      public setProperty_argsTupleScheme getScheme() {
        return new setProperty_argsTupleScheme();
      }
    }

    private static class setProperty_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetProperty()) {
          optionals.set(1);
        }
        if (struct.isSetValue()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetProperty()) {
          oprot.writeString(struct.property);
        }
        if (struct.isSetValue()) {
          oprot.writeString(struct.value);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setProperty_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.property = iprot.readString();
          struct.setPropertyIsSet(true);
        }
        if (incoming.get(2)) {
          struct.value = iprot.readString();
          struct.setValueIsSet(true);
        }
      }
    }

  }

  public static class setProperty_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setProperty_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new setProperty_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new setProperty_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setProperty_result.class, metaDataMap);
    }

    public setProperty_result() {
    }

    public setProperty_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public setProperty_result(setProperty_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public setProperty_result deepCopy() {
      return new setProperty_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public setProperty_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public setProperty_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof setProperty_result)
        return this.equals((setProperty_result)that);
      return false;
    }

    public boolean equals(setProperty_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(setProperty_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("setProperty_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 setProperty_resultStandardSchemeFactory implements SchemeFactory {
      public setProperty_resultStandardScheme getScheme() {
        return new setProperty_resultStandardScheme();
      }
    }

    private static class setProperty_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setProperty_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, setProperty_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setProperty_resultTupleSchemeFactory implements SchemeFactory {
      public setProperty_resultTupleScheme getScheme() {
        return new setProperty_resultTupleScheme();
      }
    }

    private static class setProperty_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setProperty_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class testClassLoad_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testClassLoad_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField CLASS_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("className", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField AS_TYPE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("asTypeName", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new testClassLoad_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new testClassLoad_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String className; // required
    public String asTypeName; // 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 {
      LOGIN((short)1, "login"),
      CLASS_NAME((short)2, "className"),
      AS_TYPE_NAME((short)3, "asTypeName");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // CLASS_NAME
            return CLASS_NAME;
          case 3: // AS_TYPE_NAME
            return AS_TYPE_NAME;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.CLASS_NAME, new org.apache.thrift.meta_data.FieldMetaData("className", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.AS_TYPE_NAME, new org.apache.thrift.meta_data.FieldMetaData("asTypeName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(testClassLoad_args.class, metaDataMap);
    }

    public testClassLoad_args() {
    }

    public testClassLoad_args(
      ByteBuffer login,
      String className,
      String asTypeName)
    {
      this();
      this.login = login;
      this.className = className;
      this.asTypeName = asTypeName;
    }

    /**
     * Performs a deep copy on other.
     */
    public testClassLoad_args(testClassLoad_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetClassName()) {
        this.className = other.className;
      }
      if (other.isSetAsTypeName()) {
        this.asTypeName = other.asTypeName;
      }
    }

    public testClassLoad_args deepCopy() {
      return new testClassLoad_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.className = null;
      this.asTypeName = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public testClassLoad_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public testClassLoad_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getClassName() {
      return this.className;
    }

    public testClassLoad_args setClassName(String className) {
      this.className = className;
      return this;
    }

    public void unsetClassName() {
      this.className = null;
    }

    /** Returns true if field className is set (has been assigned a value) and false otherwise */
    public boolean isSetClassName() {
      return this.className != null;
    }

    public void setClassNameIsSet(boolean value) {
      if (!value) {
        this.className = null;
      }
    }

    public String getAsTypeName() {
      return this.asTypeName;
    }

    public testClassLoad_args setAsTypeName(String asTypeName) {
      this.asTypeName = asTypeName;
      return this;
    }

    public void unsetAsTypeName() {
      this.asTypeName = null;
    }

    /** Returns true if field asTypeName is set (has been assigned a value) and false otherwise */
    public boolean isSetAsTypeName() {
      return this.asTypeName != null;
    }

    public void setAsTypeNameIsSet(boolean value) {
      if (!value) {
        this.asTypeName = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case CLASS_NAME:
        if (value == null) {
          unsetClassName();
        } else {
          setClassName((String)value);
        }
        break;

      case AS_TYPE_NAME:
        if (value == null) {
          unsetAsTypeName();
        } else {
          setAsTypeName((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case CLASS_NAME:
        return getClassName();

      case AS_TYPE_NAME:
        return getAsTypeName();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case CLASS_NAME:
        return isSetClassName();
      case AS_TYPE_NAME:
        return isSetAsTypeName();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testClassLoad_args)
        return this.equals((testClassLoad_args)that);
      return false;
    }

    public boolean equals(testClassLoad_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_className = true && this.isSetClassName();
      boolean that_present_className = true && that.isSetClassName();
      if (this_present_className || that_present_className) {
        if (!(this_present_className && that_present_className))
          return false;
        if (!this.className.equals(that.className))
          return false;
      }

      boolean this_present_asTypeName = true && this.isSetAsTypeName();
      boolean that_present_asTypeName = true && that.isSetAsTypeName();
      if (this_present_asTypeName || that_present_asTypeName) {
        if (!(this_present_asTypeName && that_present_asTypeName))
          return false;
        if (!this.asTypeName.equals(that.asTypeName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(testClassLoad_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetClassName()).compareTo(other.isSetClassName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetClassName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.className, other.className);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAsTypeName()).compareTo(other.isSetAsTypeName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAsTypeName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.asTypeName, other.asTypeName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testClassLoad_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("className:");
      if (this.className == null) {
        sb.append("null");
      } else {
        sb.append(this.className);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("asTypeName:");
      if (this.asTypeName == null) {
        sb.append("null");
      } else {
        sb.append(this.asTypeName);
      }
      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, 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 testClassLoad_argsStandardSchemeFactory implements SchemeFactory {
      public testClassLoad_argsStandardScheme getScheme() {
        return new testClassLoad_argsStandardScheme();
      }
    }

    private static class testClassLoad_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, testClassLoad_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // CLASS_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.className = iprot.readString();
                struct.setClassNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // AS_TYPE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.asTypeName = iprot.readString();
                struct.setAsTypeNameIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, testClassLoad_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.className != null) {
          oprot.writeFieldBegin(CLASS_NAME_FIELD_DESC);
          oprot.writeString(struct.className);
          oprot.writeFieldEnd();
        }
        if (struct.asTypeName != null) {
          oprot.writeFieldBegin(AS_TYPE_NAME_FIELD_DESC);
          oprot.writeString(struct.asTypeName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class testClassLoad_argsTupleSchemeFactory implements SchemeFactory {
      public testClassLoad_argsTupleScheme getScheme() {
        return new testClassLoad_argsTupleScheme();
      }
    }

    private static class testClassLoad_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, testClassLoad_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetClassName()) {
          optionals.set(1);
        }
        if (struct.isSetAsTypeName()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetClassName()) {
          oprot.writeString(struct.className);
        }
        if (struct.isSetAsTypeName()) {
          oprot.writeString(struct.asTypeName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, testClassLoad_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.className = iprot.readString();
          struct.setClassNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.asTypeName = iprot.readString();
          struct.setAsTypeNameIsSet(true);
        }
      }
    }

  }

  public static class testClassLoad_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testClassLoad_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new testClassLoad_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new testClassLoad_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(testClassLoad_result.class, metaDataMap);
    }

    public testClassLoad_result() {
    }

    public testClassLoad_result(
      boolean success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public testClassLoad_result(testClassLoad_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public testClassLoad_result deepCopy() {
      return new testClassLoad_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public testClassLoad_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public testClassLoad_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public testClassLoad_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testClassLoad_result)
        return this.equals((testClassLoad_result)that);
      return false;
    }

    public boolean equals(testClassLoad_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(testClassLoad_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testClassLoad_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 testClassLoad_resultStandardSchemeFactory implements SchemeFactory {
      public testClassLoad_resultStandardScheme getScheme() {
        return new testClassLoad_resultStandardScheme();
      }
    }

    private static class testClassLoad_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, testClassLoad_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, testClassLoad_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class testClassLoad_resultTupleSchemeFactory implements SchemeFactory {
      public testClassLoad_resultTupleScheme getScheme() {
        return new testClassLoad_resultTupleScheme();
      }
    }

    private static class testClassLoad_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, testClassLoad_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, testClassLoad_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class authenticateUser_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("authenticateUser_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("properties", org.apache.thrift.protocol.TType.MAP, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new authenticateUser_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new authenticateUser_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public Map properties; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      PROPERTIES((short)3, "properties");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PROPERTIES
            return PROPERTIES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("properties", 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))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(authenticateUser_args.class, metaDataMap);
    }

    public authenticateUser_args() {
    }

    public authenticateUser_args(
      ByteBuffer login,
      String user,
      Map properties)
    {
      this();
      this.login = login;
      this.user = user;
      this.properties = properties;
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateUser_args(authenticateUser_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetProperties()) {
        Map __this__properties = new HashMap(other.properties);
        this.properties = __this__properties;
      }
    }

    public authenticateUser_args deepCopy() {
      return new authenticateUser_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.properties = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public authenticateUser_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public authenticateUser_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public authenticateUser_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public int getPropertiesSize() {
      return (this.properties == null) ? 0 : this.properties.size();
    }

    public void putToProperties(String key, String val) {
      if (this.properties == null) {
        this.properties = new HashMap();
      }
      this.properties.put(key, val);
    }

    public Map getProperties() {
      return this.properties;
    }

    public authenticateUser_args setProperties(Map properties) {
      this.properties = properties;
      return this;
    }

    public void unsetProperties() {
      this.properties = null;
    }

    /** Returns true if field properties is set (has been assigned a value) and false otherwise */
    public boolean isSetProperties() {
      return this.properties != null;
    }

    public void setPropertiesIsSet(boolean value) {
      if (!value) {
        this.properties = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PROPERTIES:
        if (value == null) {
          unsetProperties();
        } else {
          setProperties((Map)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PROPERTIES:
        return getProperties();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PROPERTIES:
        return isSetProperties();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof authenticateUser_args)
        return this.equals((authenticateUser_args)that);
      return false;
    }

    public boolean equals(authenticateUser_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_properties = true && this.isSetProperties();
      boolean that_present_properties = true && that.isSetProperties();
      if (this_present_properties || that_present_properties) {
        if (!(this_present_properties && that_present_properties))
          return false;
        if (!this.properties.equals(that.properties))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(authenticateUser_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProperties()).compareTo(other.isSetProperties());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProperties()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.properties, other.properties);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("authenticateUser_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("properties:");
      if (this.properties == null) {
        sb.append("null");
      } else {
        sb.append(this.properties);
      }
      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, 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 authenticateUser_argsStandardSchemeFactory implements SchemeFactory {
      public authenticateUser_argsStandardScheme getScheme() {
        return new authenticateUser_argsStandardScheme();
      }
    }

    private static class authenticateUser_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, authenticateUser_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PROPERTIES
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map408 = iprot.readMapBegin();
                  struct.properties = new HashMap(2*_map408.size);
                  for (int _i409 = 0; _i409 < _map408.size; ++_i409)
                  {
                    String _key410;
                    String _val411;
                    _key410 = iprot.readString();
                    _val411 = iprot.readString();
                    struct.properties.put(_key410, _val411);
                  }
                  iprot.readMapEnd();
                }
                struct.setPropertiesIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, authenticateUser_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.properties != null) {
          oprot.writeFieldBegin(PROPERTIES_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.properties.size()));
            for (Map.Entry _iter412 : struct.properties.entrySet())
            {
              oprot.writeString(_iter412.getKey());
              oprot.writeString(_iter412.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class authenticateUser_argsTupleSchemeFactory implements SchemeFactory {
      public authenticateUser_argsTupleScheme getScheme() {
        return new authenticateUser_argsTupleScheme();
      }
    }

    private static class authenticateUser_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, authenticateUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetProperties()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetProperties()) {
          {
            oprot.writeI32(struct.properties.size());
            for (Map.Entry _iter413 : struct.properties.entrySet())
            {
              oprot.writeString(_iter413.getKey());
              oprot.writeString(_iter413.getValue());
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, authenticateUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map414 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.properties = new HashMap(2*_map414.size);
            for (int _i415 = 0; _i415 < _map414.size; ++_i415)
            {
              String _key416;
              String _val417;
              _key416 = iprot.readString();
              _val417 = iprot.readString();
              struct.properties.put(_key416, _val417);
            }
          }
          struct.setPropertiesIsSet(true);
        }
      }
    }

  }

  public static class authenticateUser_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("authenticateUser_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new authenticateUser_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new authenticateUser_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(authenticateUser_result.class, metaDataMap);
    }

    public authenticateUser_result() {
    }

    public authenticateUser_result(
      boolean success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateUser_result(authenticateUser_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public authenticateUser_result deepCopy() {
      return new authenticateUser_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public authenticateUser_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public authenticateUser_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public authenticateUser_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof authenticateUser_result)
        return this.equals((authenticateUser_result)that);
      return false;
    }

    public boolean equals(authenticateUser_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(authenticateUser_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("authenticateUser_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 authenticateUser_resultStandardSchemeFactory implements SchemeFactory {
      public authenticateUser_resultStandardScheme getScheme() {
        return new authenticateUser_resultStandardScheme();
      }
    }

    private static class authenticateUser_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, authenticateUser_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, authenticateUser_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class authenticateUser_resultTupleSchemeFactory implements SchemeFactory {
      public authenticateUser_resultTupleScheme getScheme() {
        return new authenticateUser_resultTupleScheme();
      }
    }

    private static class authenticateUser_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, authenticateUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, authenticateUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class changeUserAuthorizations_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("changeUserAuthorizations_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField AUTHORIZATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizations", org.apache.thrift.protocol.TType.SET, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new changeUserAuthorizations_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new changeUserAuthorizations_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public Set authorizations; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      AUTHORIZATIONS((short)3, "authorizations");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // AUTHORIZATIONS
            return AUTHORIZATIONS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(changeUserAuthorizations_args.class, metaDataMap);
    }

    public changeUserAuthorizations_args() {
    }

    public changeUserAuthorizations_args(
      ByteBuffer login,
      String user,
      Set authorizations)
    {
      this();
      this.login = login;
      this.user = user;
      this.authorizations = authorizations;
    }

    /**
     * Performs a deep copy on other.
     */
    public changeUserAuthorizations_args(changeUserAuthorizations_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetAuthorizations()) {
        Set __this__authorizations = new HashSet(other.authorizations);
        this.authorizations = __this__authorizations;
      }
    }

    public changeUserAuthorizations_args deepCopy() {
      return new changeUserAuthorizations_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.authorizations = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public changeUserAuthorizations_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public changeUserAuthorizations_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public changeUserAuthorizations_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public int getAuthorizationsSize() {
      return (this.authorizations == null) ? 0 : this.authorizations.size();
    }

    public java.util.Iterator getAuthorizationsIterator() {
      return (this.authorizations == null) ? null : this.authorizations.iterator();
    }

    public void addToAuthorizations(ByteBuffer elem) {
      if (this.authorizations == null) {
        this.authorizations = new HashSet();
      }
      this.authorizations.add(elem);
    }

    public Set getAuthorizations() {
      return this.authorizations;
    }

    public changeUserAuthorizations_args setAuthorizations(Set 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 void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case AUTHORIZATIONS:
        if (value == null) {
          unsetAuthorizations();
        } else {
          setAuthorizations((Set)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case AUTHORIZATIONS:
        return getAuthorizations();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case AUTHORIZATIONS:
        return isSetAuthorizations();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof changeUserAuthorizations_args)
        return this.equals((changeUserAuthorizations_args)that);
      return false;
    }

    public boolean equals(changeUserAuthorizations_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(changeUserAuthorizations_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAuthorizations()).compareTo(other.isSetAuthorizations());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthorizations()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizations, other.authorizations);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("changeUserAuthorizations_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("authorizations:");
      if (this.authorizations == null) {
        sb.append("null");
      } else {
        sb.append(this.authorizations);
      }
      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, 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 changeUserAuthorizations_argsStandardSchemeFactory implements SchemeFactory {
      public changeUserAuthorizations_argsStandardScheme getScheme() {
        return new changeUserAuthorizations_argsStandardScheme();
      }
    }

    private static class changeUserAuthorizations_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, changeUserAuthorizations_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // AUTHORIZATIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                {
                  org.apache.thrift.protocol.TSet _set418 = iprot.readSetBegin();
                  struct.authorizations = new HashSet(2*_set418.size);
                  for (int _i419 = 0; _i419 < _set418.size; ++_i419)
                  {
                    ByteBuffer _elem420;
                    _elem420 = iprot.readBinary();
                    struct.authorizations.add(_elem420);
                  }
                  iprot.readSetEnd();
                }
                struct.setAuthorizationsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, changeUserAuthorizations_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.authorizations != null) {
          oprot.writeFieldBegin(AUTHORIZATIONS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.authorizations.size()));
            for (ByteBuffer _iter421 : struct.authorizations)
            {
              oprot.writeBinary(_iter421);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class changeUserAuthorizations_argsTupleSchemeFactory implements SchemeFactory {
      public changeUserAuthorizations_argsTupleScheme getScheme() {
        return new changeUserAuthorizations_argsTupleScheme();
      }
    }

    private static class changeUserAuthorizations_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, changeUserAuthorizations_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetAuthorizations()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetAuthorizations()) {
          {
            oprot.writeI32(struct.authorizations.size());
            for (ByteBuffer _iter422 : struct.authorizations)
            {
              oprot.writeBinary(_iter422);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, changeUserAuthorizations_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TSet _set423 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.authorizations = new HashSet(2*_set423.size);
            for (int _i424 = 0; _i424 < _set423.size; ++_i424)
            {
              ByteBuffer _elem425;
              _elem425 = iprot.readBinary();
              struct.authorizations.add(_elem425);
            }
          }
          struct.setAuthorizationsIsSet(true);
        }
      }
    }

  }

  public static class changeUserAuthorizations_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("changeUserAuthorizations_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new changeUserAuthorizations_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new changeUserAuthorizations_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(changeUserAuthorizations_result.class, metaDataMap);
    }

    public changeUserAuthorizations_result() {
    }

    public changeUserAuthorizations_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public changeUserAuthorizations_result(changeUserAuthorizations_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public changeUserAuthorizations_result deepCopy() {
      return new changeUserAuthorizations_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public changeUserAuthorizations_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public changeUserAuthorizations_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof changeUserAuthorizations_result)
        return this.equals((changeUserAuthorizations_result)that);
      return false;
    }

    public boolean equals(changeUserAuthorizations_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(changeUserAuthorizations_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("changeUserAuthorizations_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 changeUserAuthorizations_resultStandardSchemeFactory implements SchemeFactory {
      public changeUserAuthorizations_resultStandardScheme getScheme() {
        return new changeUserAuthorizations_resultStandardScheme();
      }
    }

    private static class changeUserAuthorizations_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, changeUserAuthorizations_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, changeUserAuthorizations_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class changeUserAuthorizations_resultTupleSchemeFactory implements SchemeFactory {
      public changeUserAuthorizations_resultTupleScheme getScheme() {
        return new changeUserAuthorizations_resultTupleScheme();
      }
    }

    private static class changeUserAuthorizations_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, changeUserAuthorizations_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, changeUserAuthorizations_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class changeLocalUserPassword_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("changeLocalUserPassword_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new changeLocalUserPassword_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new changeLocalUserPassword_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public ByteBuffer password; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      PASSWORD((short)3, "password");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PASSWORD
            return PASSWORD;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PASSWORD, new org.apache.thrift.meta_data.FieldMetaData("password", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(changeLocalUserPassword_args.class, metaDataMap);
    }

    public changeLocalUserPassword_args() {
    }

    public changeLocalUserPassword_args(
      ByteBuffer login,
      String user,
      ByteBuffer password)
    {
      this();
      this.login = login;
      this.user = user;
      this.password = password;
    }

    /**
     * Performs a deep copy on other.
     */
    public changeLocalUserPassword_args(changeLocalUserPassword_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetPassword()) {
        this.password = org.apache.thrift.TBaseHelper.copyBinary(other.password);
;
      }
    }

    public changeLocalUserPassword_args deepCopy() {
      return new changeLocalUserPassword_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.password = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public changeLocalUserPassword_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public changeLocalUserPassword_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public changeLocalUserPassword_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public byte[] getPassword() {
      setPassword(org.apache.thrift.TBaseHelper.rightSize(password));
      return password == null ? null : password.array();
    }

    public ByteBuffer bufferForPassword() {
      return password;
    }

    public changeLocalUserPassword_args setPassword(byte[] password) {
      setPassword(password == null ? (ByteBuffer)null : ByteBuffer.wrap(password));
      return this;
    }

    public changeLocalUserPassword_args setPassword(ByteBuffer password) {
      this.password = password;
      return this;
    }

    public void unsetPassword() {
      this.password = null;
    }

    /** Returns true if field password is set (has been assigned a value) and false otherwise */
    public boolean isSetPassword() {
      return this.password != null;
    }

    public void setPasswordIsSet(boolean value) {
      if (!value) {
        this.password = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PASSWORD:
        if (value == null) {
          unsetPassword();
        } else {
          setPassword((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PASSWORD:
        return getPassword();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PASSWORD:
        return isSetPassword();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof changeLocalUserPassword_args)
        return this.equals((changeLocalUserPassword_args)that);
      return false;
    }

    public boolean equals(changeLocalUserPassword_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_password = true && this.isSetPassword();
      boolean that_present_password = true && that.isSetPassword();
      if (this_present_password || that_present_password) {
        if (!(this_present_password && that_present_password))
          return false;
        if (!this.password.equals(that.password))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(changeLocalUserPassword_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPassword()).compareTo(other.isSetPassword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPassword()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.password, other.password);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("changeLocalUserPassword_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("password:");
      if (this.password == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.password, sb);
      }
      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, 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 changeLocalUserPassword_argsStandardSchemeFactory implements SchemeFactory {
      public changeLocalUserPassword_argsStandardScheme getScheme() {
        return new changeLocalUserPassword_argsStandardScheme();
      }
    }

    private static class changeLocalUserPassword_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, changeLocalUserPassword_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PASSWORD
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.password = iprot.readBinary();
                struct.setPasswordIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, changeLocalUserPassword_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.password != null) {
          oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
          oprot.writeBinary(struct.password);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class changeLocalUserPassword_argsTupleSchemeFactory implements SchemeFactory {
      public changeLocalUserPassword_argsTupleScheme getScheme() {
        return new changeLocalUserPassword_argsTupleScheme();
      }
    }

    private static class changeLocalUserPassword_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, changeLocalUserPassword_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetPassword()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetPassword()) {
          oprot.writeBinary(struct.password);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, changeLocalUserPassword_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.password = iprot.readBinary();
          struct.setPasswordIsSet(true);
        }
      }
    }

  }

  public static class changeLocalUserPassword_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("changeLocalUserPassword_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new changeLocalUserPassword_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new changeLocalUserPassword_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(changeLocalUserPassword_result.class, metaDataMap);
    }

    public changeLocalUserPassword_result() {
    }

    public changeLocalUserPassword_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public changeLocalUserPassword_result(changeLocalUserPassword_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public changeLocalUserPassword_result deepCopy() {
      return new changeLocalUserPassword_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public changeLocalUserPassword_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public changeLocalUserPassword_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof changeLocalUserPassword_result)
        return this.equals((changeLocalUserPassword_result)that);
      return false;
    }

    public boolean equals(changeLocalUserPassword_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(changeLocalUserPassword_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("changeLocalUserPassword_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 changeLocalUserPassword_resultStandardSchemeFactory implements SchemeFactory {
      public changeLocalUserPassword_resultStandardScheme getScheme() {
        return new changeLocalUserPassword_resultStandardScheme();
      }
    }

    private static class changeLocalUserPassword_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, changeLocalUserPassword_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, changeLocalUserPassword_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class changeLocalUserPassword_resultTupleSchemeFactory implements SchemeFactory {
      public changeLocalUserPassword_resultTupleScheme getScheme() {
        return new changeLocalUserPassword_resultTupleScheme();
      }
    }

    private static class changeLocalUserPassword_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, changeLocalUserPassword_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, changeLocalUserPassword_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class createLocalUser_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createLocalUser_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createLocalUser_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createLocalUser_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public ByteBuffer password; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      PASSWORD((short)3, "password");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PASSWORD
            return PASSWORD;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PASSWORD, new org.apache.thrift.meta_data.FieldMetaData("password", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createLocalUser_args.class, metaDataMap);
    }

    public createLocalUser_args() {
    }

    public createLocalUser_args(
      ByteBuffer login,
      String user,
      ByteBuffer password)
    {
      this();
      this.login = login;
      this.user = user;
      this.password = password;
    }

    /**
     * Performs a deep copy on other.
     */
    public createLocalUser_args(createLocalUser_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetPassword()) {
        this.password = org.apache.thrift.TBaseHelper.copyBinary(other.password);
;
      }
    }

    public createLocalUser_args deepCopy() {
      return new createLocalUser_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.password = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createLocalUser_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createLocalUser_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public createLocalUser_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public byte[] getPassword() {
      setPassword(org.apache.thrift.TBaseHelper.rightSize(password));
      return password == null ? null : password.array();
    }

    public ByteBuffer bufferForPassword() {
      return password;
    }

    public createLocalUser_args setPassword(byte[] password) {
      setPassword(password == null ? (ByteBuffer)null : ByteBuffer.wrap(password));
      return this;
    }

    public createLocalUser_args setPassword(ByteBuffer password) {
      this.password = password;
      return this;
    }

    public void unsetPassword() {
      this.password = null;
    }

    /** Returns true if field password is set (has been assigned a value) and false otherwise */
    public boolean isSetPassword() {
      return this.password != null;
    }

    public void setPasswordIsSet(boolean value) {
      if (!value) {
        this.password = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PASSWORD:
        if (value == null) {
          unsetPassword();
        } else {
          setPassword((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PASSWORD:
        return getPassword();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PASSWORD:
        return isSetPassword();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createLocalUser_args)
        return this.equals((createLocalUser_args)that);
      return false;
    }

    public boolean equals(createLocalUser_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_password = true && this.isSetPassword();
      boolean that_present_password = true && that.isSetPassword();
      if (this_present_password || that_present_password) {
        if (!(this_present_password && that_present_password))
          return false;
        if (!this.password.equals(that.password))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createLocalUser_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPassword()).compareTo(other.isSetPassword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPassword()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.password, other.password);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createLocalUser_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("password:");
      if (this.password == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.password, sb);
      }
      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, 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 createLocalUser_argsStandardSchemeFactory implements SchemeFactory {
      public createLocalUser_argsStandardScheme getScheme() {
        return new createLocalUser_argsStandardScheme();
      }
    }

    private static class createLocalUser_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createLocalUser_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PASSWORD
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.password = iprot.readBinary();
                struct.setPasswordIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createLocalUser_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.password != null) {
          oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
          oprot.writeBinary(struct.password);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createLocalUser_argsTupleSchemeFactory implements SchemeFactory {
      public createLocalUser_argsTupleScheme getScheme() {
        return new createLocalUser_argsTupleScheme();
      }
    }

    private static class createLocalUser_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createLocalUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetPassword()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetPassword()) {
          oprot.writeBinary(struct.password);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createLocalUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.password = iprot.readBinary();
          struct.setPasswordIsSet(true);
        }
      }
    }

  }

  public static class createLocalUser_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createLocalUser_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createLocalUser_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createLocalUser_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createLocalUser_result.class, metaDataMap);
    }

    public createLocalUser_result() {
    }

    public createLocalUser_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public createLocalUser_result(createLocalUser_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public createLocalUser_result deepCopy() {
      return new createLocalUser_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public createLocalUser_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createLocalUser_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createLocalUser_result)
        return this.equals((createLocalUser_result)that);
      return false;
    }

    public boolean equals(createLocalUser_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createLocalUser_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createLocalUser_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 createLocalUser_resultStandardSchemeFactory implements SchemeFactory {
      public createLocalUser_resultStandardScheme getScheme() {
        return new createLocalUser_resultStandardScheme();
      }
    }

    private static class createLocalUser_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createLocalUser_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createLocalUser_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createLocalUser_resultTupleSchemeFactory implements SchemeFactory {
      public createLocalUser_resultTupleScheme getScheme() {
        return new createLocalUser_resultTupleScheme();
      }
    }

    private static class createLocalUser_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createLocalUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createLocalUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class dropLocalUser_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("dropLocalUser_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new dropLocalUser_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new dropLocalUser_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(dropLocalUser_args.class, metaDataMap);
    }

    public dropLocalUser_args() {
    }

    public dropLocalUser_args(
      ByteBuffer login,
      String user)
    {
      this();
      this.login = login;
      this.user = user;
    }

    /**
     * Performs a deep copy on other.
     */
    public dropLocalUser_args(dropLocalUser_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
    }

    public dropLocalUser_args deepCopy() {
      return new dropLocalUser_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public dropLocalUser_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public dropLocalUser_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public dropLocalUser_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof dropLocalUser_args)
        return this.equals((dropLocalUser_args)that);
      return false;
    }

    public boolean equals(dropLocalUser_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(dropLocalUser_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("dropLocalUser_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      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, 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 dropLocalUser_argsStandardSchemeFactory implements SchemeFactory {
      public dropLocalUser_argsStandardScheme getScheme() {
        return new dropLocalUser_argsStandardScheme();
      }
    }

    private static class dropLocalUser_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, dropLocalUser_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, dropLocalUser_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class dropLocalUser_argsTupleSchemeFactory implements SchemeFactory {
      public dropLocalUser_argsTupleScheme getScheme() {
        return new dropLocalUser_argsTupleScheme();
      }
    }

    private static class dropLocalUser_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, dropLocalUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, dropLocalUser_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
      }
    }

  }

  public static class dropLocalUser_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("dropLocalUser_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new dropLocalUser_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new dropLocalUser_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(dropLocalUser_result.class, metaDataMap);
    }

    public dropLocalUser_result() {
    }

    public dropLocalUser_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public dropLocalUser_result(dropLocalUser_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public dropLocalUser_result deepCopy() {
      return new dropLocalUser_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public dropLocalUser_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public dropLocalUser_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof dropLocalUser_result)
        return this.equals((dropLocalUser_result)that);
      return false;
    }

    public boolean equals(dropLocalUser_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(dropLocalUser_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("dropLocalUser_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 dropLocalUser_resultStandardSchemeFactory implements SchemeFactory {
      public dropLocalUser_resultStandardScheme getScheme() {
        return new dropLocalUser_resultStandardScheme();
      }
    }

    private static class dropLocalUser_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, dropLocalUser_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, dropLocalUser_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class dropLocalUser_resultTupleSchemeFactory implements SchemeFactory {
      public dropLocalUser_resultTupleScheme getScheme() {
        return new dropLocalUser_resultTupleScheme();
      }
    }

    private static class dropLocalUser_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, dropLocalUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, dropLocalUser_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class getUserAuthorizations_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserAuthorizations_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getUserAuthorizations_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getUserAuthorizations_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserAuthorizations_args.class, metaDataMap);
    }

    public getUserAuthorizations_args() {
    }

    public getUserAuthorizations_args(
      ByteBuffer login,
      String user)
    {
      this();
      this.login = login;
      this.user = user;
    }

    /**
     * Performs a deep copy on other.
     */
    public getUserAuthorizations_args(getUserAuthorizations_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
    }

    public getUserAuthorizations_args deepCopy() {
      return new getUserAuthorizations_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public getUserAuthorizations_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public getUserAuthorizations_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public getUserAuthorizations_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getUserAuthorizations_args)
        return this.equals((getUserAuthorizations_args)that);
      return false;
    }

    public boolean equals(getUserAuthorizations_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getUserAuthorizations_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getUserAuthorizations_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      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, 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 getUserAuthorizations_argsStandardSchemeFactory implements SchemeFactory {
      public getUserAuthorizations_argsStandardScheme getScheme() {
        return new getUserAuthorizations_argsStandardScheme();
      }
    }

    private static class getUserAuthorizations_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserAuthorizations_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserAuthorizations_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getUserAuthorizations_argsTupleSchemeFactory implements SchemeFactory {
      public getUserAuthorizations_argsTupleScheme getScheme() {
        return new getUserAuthorizations_argsTupleScheme();
      }
    }

    private static class getUserAuthorizations_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getUserAuthorizations_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getUserAuthorizations_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
      }
    }

  }

  public static class getUserAuthorizations_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserAuthorizations_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getUserAuthorizations_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getUserAuthorizations_resultTupleSchemeFactory());
    }

    public List success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserAuthorizations_result.class, metaDataMap);
    }

    public getUserAuthorizations_result() {
    }

    public getUserAuthorizations_result(
      List success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public getUserAuthorizations_result(getUserAuthorizations_result other) {
      if (other.isSetSuccess()) {
        List __this__success = new ArrayList(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public getUserAuthorizations_result deepCopy() {
      return new getUserAuthorizations_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ByteBuffer elem) {
      if (this.success == null) {
        this.success = new ArrayList();
      }
      this.success.add(elem);
    }

    public List getSuccess() {
      return this.success;
    }

    public getUserAuthorizations_result setSuccess(List 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public getUserAuthorizations_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public getUserAuthorizations_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getUserAuthorizations_result)
        return this.equals((getUserAuthorizations_result)that);
      return false;
    }

    public boolean equals(getUserAuthorizations_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getUserAuthorizations_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getUserAuthorizations_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 getUserAuthorizations_resultStandardSchemeFactory implements SchemeFactory {
      public getUserAuthorizations_resultStandardScheme getScheme() {
        return new getUserAuthorizations_resultStandardScheme();
      }
    }

    private static class getUserAuthorizations_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserAuthorizations_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 _list426 = iprot.readListBegin();
                  struct.success = new ArrayList(_list426.size);
                  for (int _i427 = 0; _i427 < _list426.size; ++_i427)
                  {
                    ByteBuffer _elem428;
                    _elem428 = iprot.readBinary();
                    struct.success.add(_elem428);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserAuthorizations_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.STRING, struct.success.size()));
            for (ByteBuffer _iter429 : struct.success)
            {
              oprot.writeBinary(_iter429);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getUserAuthorizations_resultTupleSchemeFactory implements SchemeFactory {
      public getUserAuthorizations_resultTupleScheme getScheme() {
        return new getUserAuthorizations_resultTupleScheme();
      }
    }

    private static class getUserAuthorizations_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getUserAuthorizations_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (ByteBuffer _iter430 : struct.success)
            {
              oprot.writeBinary(_iter430);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getUserAuthorizations_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list431 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new ArrayList(_list431.size);
            for (int _i432 = 0; _i432 < _list431.size; ++_i432)
            {
              ByteBuffer _elem433;
              _elem433 = iprot.readBinary();
              struct.success.add(_elem433);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class grantSystemPermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grantSystemPermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new grantSystemPermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new grantSystemPermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      /**
       * 
       * @see SystemPermission
       */
      PERM((short)3, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SystemPermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grantSystemPermission_args.class, metaDataMap);
    }

    public grantSystemPermission_args() {
    }

    public grantSystemPermission_args(
      ByteBuffer login,
      String user,
      SystemPermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public grantSystemPermission_args(grantSystemPermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public grantSystemPermission_args deepCopy() {
      return new grantSystemPermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public grantSystemPermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public grantSystemPermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public grantSystemPermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see SystemPermission
     */
    public grantSystemPermission_args setPerm(SystemPermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((SystemPermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof grantSystemPermission_args)
        return this.equals((grantSystemPermission_args)that);
      return false;
    }

    public boolean equals(grantSystemPermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(grantSystemPermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("grantSystemPermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 grantSystemPermission_argsStandardSchemeFactory implements SchemeFactory {
      public grantSystemPermission_argsStandardScheme getScheme() {
        return new grantSystemPermission_argsStandardScheme();
      }
    }

    private static class grantSystemPermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grantSystemPermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = SystemPermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grantSystemPermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grantSystemPermission_argsTupleSchemeFactory implements SchemeFactory {
      public grantSystemPermission_argsTupleScheme getScheme() {
        return new grantSystemPermission_argsTupleScheme();
      }
    }

    private static class grantSystemPermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grantSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetPerm()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grantSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.perm = SystemPermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class grantSystemPermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grantSystemPermission_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new grantSystemPermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new grantSystemPermission_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grantSystemPermission_result.class, metaDataMap);
    }

    public grantSystemPermission_result() {
    }

    public grantSystemPermission_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public grantSystemPermission_result(grantSystemPermission_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public grantSystemPermission_result deepCopy() {
      return new grantSystemPermission_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public grantSystemPermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public grantSystemPermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof grantSystemPermission_result)
        return this.equals((grantSystemPermission_result)that);
      return false;
    }

    public boolean equals(grantSystemPermission_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(grantSystemPermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("grantSystemPermission_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 grantSystemPermission_resultStandardSchemeFactory implements SchemeFactory {
      public grantSystemPermission_resultStandardScheme getScheme() {
        return new grantSystemPermission_resultStandardScheme();
      }
    }

    private static class grantSystemPermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grantSystemPermission_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grantSystemPermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grantSystemPermission_resultTupleSchemeFactory implements SchemeFactory {
      public grantSystemPermission_resultTupleScheme getScheme() {
        return new grantSystemPermission_resultTupleScheme();
      }
    }

    private static class grantSystemPermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grantSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grantSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class grantTablePermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grantTablePermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("table", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new grantTablePermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new grantTablePermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public String table; // required
    /**
     * 
     * @see TablePermission
     */
    public TablePermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      TABLE((short)3, "table"),
      /**
       * 
       * @see TablePermission
       */
      PERM((short)4, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // TABLE
            return TABLE;
          case 4: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE, new org.apache.thrift.meta_data.FieldMetaData("table", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TablePermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grantTablePermission_args.class, metaDataMap);
    }

    public grantTablePermission_args() {
    }

    public grantTablePermission_args(
      ByteBuffer login,
      String user,
      String table,
      TablePermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.table = table;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public grantTablePermission_args(grantTablePermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetTable()) {
        this.table = other.table;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public grantTablePermission_args deepCopy() {
      return new grantTablePermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.table = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public grantTablePermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public grantTablePermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public grantTablePermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public String getTable() {
      return this.table;
    }

    public grantTablePermission_args setTable(String table) {
      this.table = table;
      return this;
    }

    public void unsetTable() {
      this.table = null;
    }

    /** Returns true if field table is set (has been assigned a value) and false otherwise */
    public boolean isSetTable() {
      return this.table != null;
    }

    public void setTableIsSet(boolean value) {
      if (!value) {
        this.table = null;
      }
    }

    /**
     * 
     * @see TablePermission
     */
    public TablePermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see TablePermission
     */
    public grantTablePermission_args setPerm(TablePermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case TABLE:
        if (value == null) {
          unsetTable();
        } else {
          setTable((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((TablePermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case TABLE:
        return getTable();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case TABLE:
        return isSetTable();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof grantTablePermission_args)
        return this.equals((grantTablePermission_args)that);
      return false;
    }

    public boolean equals(grantTablePermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_table = true && this.isSetTable();
      boolean that_present_table = true && that.isSetTable();
      if (this_present_table || that_present_table) {
        if (!(this_present_table && that_present_table))
          return false;
        if (!this.table.equals(that.table))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(grantTablePermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTable()).compareTo(other.isSetTable());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table, other.table);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("grantTablePermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table:");
      if (this.table == null) {
        sb.append("null");
      } else {
        sb.append(this.table);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 grantTablePermission_argsStandardSchemeFactory implements SchemeFactory {
      public grantTablePermission_argsStandardScheme getScheme() {
        return new grantTablePermission_argsStandardScheme();
      }
    }

    private static class grantTablePermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grantTablePermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TABLE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table = iprot.readString();
                struct.setTableIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = TablePermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grantTablePermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.table != null) {
          oprot.writeFieldBegin(TABLE_FIELD_DESC);
          oprot.writeString(struct.table);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grantTablePermission_argsTupleSchemeFactory implements SchemeFactory {
      public grantTablePermission_argsTupleScheme getScheme() {
        return new grantTablePermission_argsTupleScheme();
      }
    }

    private static class grantTablePermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grantTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetTable()) {
          optionals.set(2);
        }
        if (struct.isSetPerm()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetTable()) {
          oprot.writeString(struct.table);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grantTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.table = iprot.readString();
          struct.setTableIsSet(true);
        }
        if (incoming.get(3)) {
          struct.perm = TablePermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class grantTablePermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grantTablePermission_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new grantTablePermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new grantTablePermission_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grantTablePermission_result.class, metaDataMap);
    }

    public grantTablePermission_result() {
    }

    public grantTablePermission_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public grantTablePermission_result(grantTablePermission_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public grantTablePermission_result deepCopy() {
      return new grantTablePermission_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public grantTablePermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public grantTablePermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public grantTablePermission_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof grantTablePermission_result)
        return this.equals((grantTablePermission_result)that);
      return false;
    }

    public boolean equals(grantTablePermission_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(grantTablePermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("grantTablePermission_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 grantTablePermission_resultStandardSchemeFactory implements SchemeFactory {
      public grantTablePermission_resultStandardScheme getScheme() {
        return new grantTablePermission_resultStandardScheme();
      }
    }

    private static class grantTablePermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grantTablePermission_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grantTablePermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grantTablePermission_resultTupleSchemeFactory implements SchemeFactory {
      public grantTablePermission_resultTupleScheme getScheme() {
        return new grantTablePermission_resultTupleScheme();
      }
    }

    private static class grantTablePermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grantTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grantTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class hasSystemPermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasSystemPermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasSystemPermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasSystemPermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      /**
       * 
       * @see SystemPermission
       */
      PERM((short)3, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SystemPermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasSystemPermission_args.class, metaDataMap);
    }

    public hasSystemPermission_args() {
    }

    public hasSystemPermission_args(
      ByteBuffer login,
      String user,
      SystemPermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasSystemPermission_args(hasSystemPermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public hasSystemPermission_args deepCopy() {
      return new hasSystemPermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public hasSystemPermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public hasSystemPermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public hasSystemPermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see SystemPermission
     */
    public hasSystemPermission_args setPerm(SystemPermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((SystemPermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasSystemPermission_args)
        return this.equals((hasSystemPermission_args)that);
      return false;
    }

    public boolean equals(hasSystemPermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasSystemPermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasSystemPermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 hasSystemPermission_argsStandardSchemeFactory implements SchemeFactory {
      public hasSystemPermission_argsStandardScheme getScheme() {
        return new hasSystemPermission_argsStandardScheme();
      }
    }

    private static class hasSystemPermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasSystemPermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = SystemPermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasSystemPermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasSystemPermission_argsTupleSchemeFactory implements SchemeFactory {
      public hasSystemPermission_argsTupleScheme getScheme() {
        return new hasSystemPermission_argsTupleScheme();
      }
    }

    private static class hasSystemPermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetPerm()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.perm = SystemPermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class hasSystemPermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasSystemPermission_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasSystemPermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasSystemPermission_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasSystemPermission_result.class, metaDataMap);
    }

    public hasSystemPermission_result() {
    }

    public hasSystemPermission_result(
      boolean success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasSystemPermission_result(hasSystemPermission_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public hasSystemPermission_result deepCopy() {
      return new hasSystemPermission_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public hasSystemPermission_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public hasSystemPermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public hasSystemPermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasSystemPermission_result)
        return this.equals((hasSystemPermission_result)that);
      return false;
    }

    public boolean equals(hasSystemPermission_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasSystemPermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasSystemPermission_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 hasSystemPermission_resultStandardSchemeFactory implements SchemeFactory {
      public hasSystemPermission_resultStandardScheme getScheme() {
        return new hasSystemPermission_resultStandardScheme();
      }
    }

    private static class hasSystemPermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasSystemPermission_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasSystemPermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasSystemPermission_resultTupleSchemeFactory implements SchemeFactory {
      public hasSystemPermission_resultTupleScheme getScheme() {
        return new hasSystemPermission_resultTupleScheme();
      }
    }

    private static class hasSystemPermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class hasTablePermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasTablePermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("table", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasTablePermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasTablePermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public String table; // required
    /**
     * 
     * @see TablePermission
     */
    public TablePermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      TABLE((short)3, "table"),
      /**
       * 
       * @see TablePermission
       */
      PERM((short)4, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // TABLE
            return TABLE;
          case 4: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE, new org.apache.thrift.meta_data.FieldMetaData("table", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TablePermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasTablePermission_args.class, metaDataMap);
    }

    public hasTablePermission_args() {
    }

    public hasTablePermission_args(
      ByteBuffer login,
      String user,
      String table,
      TablePermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.table = table;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasTablePermission_args(hasTablePermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetTable()) {
        this.table = other.table;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public hasTablePermission_args deepCopy() {
      return new hasTablePermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.table = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public hasTablePermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public hasTablePermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public hasTablePermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public String getTable() {
      return this.table;
    }

    public hasTablePermission_args setTable(String table) {
      this.table = table;
      return this;
    }

    public void unsetTable() {
      this.table = null;
    }

    /** Returns true if field table is set (has been assigned a value) and false otherwise */
    public boolean isSetTable() {
      return this.table != null;
    }

    public void setTableIsSet(boolean value) {
      if (!value) {
        this.table = null;
      }
    }

    /**
     * 
     * @see TablePermission
     */
    public TablePermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see TablePermission
     */
    public hasTablePermission_args setPerm(TablePermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case TABLE:
        if (value == null) {
          unsetTable();
        } else {
          setTable((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((TablePermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case TABLE:
        return getTable();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case TABLE:
        return isSetTable();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasTablePermission_args)
        return this.equals((hasTablePermission_args)that);
      return false;
    }

    public boolean equals(hasTablePermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_table = true && this.isSetTable();
      boolean that_present_table = true && that.isSetTable();
      if (this_present_table || that_present_table) {
        if (!(this_present_table && that_present_table))
          return false;
        if (!this.table.equals(that.table))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasTablePermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTable()).compareTo(other.isSetTable());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table, other.table);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasTablePermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table:");
      if (this.table == null) {
        sb.append("null");
      } else {
        sb.append(this.table);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 hasTablePermission_argsStandardSchemeFactory implements SchemeFactory {
      public hasTablePermission_argsStandardScheme getScheme() {
        return new hasTablePermission_argsStandardScheme();
      }
    }

    private static class hasTablePermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasTablePermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TABLE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table = iprot.readString();
                struct.setTableIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = TablePermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasTablePermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.table != null) {
          oprot.writeFieldBegin(TABLE_FIELD_DESC);
          oprot.writeString(struct.table);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasTablePermission_argsTupleSchemeFactory implements SchemeFactory {
      public hasTablePermission_argsTupleScheme getScheme() {
        return new hasTablePermission_argsTupleScheme();
      }
    }

    private static class hasTablePermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetTable()) {
          optionals.set(2);
        }
        if (struct.isSetPerm()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetTable()) {
          oprot.writeString(struct.table);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.table = iprot.readString();
          struct.setTableIsSet(true);
        }
        if (incoming.get(3)) {
          struct.perm = TablePermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class hasTablePermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasTablePermission_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasTablePermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasTablePermission_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasTablePermission_result.class, metaDataMap);
    }

    public hasTablePermission_result() {
    }

    public hasTablePermission_result(
      boolean success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasTablePermission_result(hasTablePermission_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public hasTablePermission_result deepCopy() {
      return new hasTablePermission_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public hasTablePermission_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public hasTablePermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public hasTablePermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public hasTablePermission_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasTablePermission_result)
        return this.equals((hasTablePermission_result)that);
      return false;
    }

    public boolean equals(hasTablePermission_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasTablePermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasTablePermission_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 hasTablePermission_resultStandardSchemeFactory implements SchemeFactory {
      public hasTablePermission_resultStandardScheme getScheme() {
        return new hasTablePermission_resultStandardScheme();
      }
    }

    private static class hasTablePermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasTablePermission_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasTablePermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasTablePermission_resultTupleSchemeFactory implements SchemeFactory {
      public hasTablePermission_resultTupleScheme getScheme() {
        return new hasTablePermission_resultTupleScheme();
      }
    }

    private static class hasTablePermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class listLocalUsers_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listLocalUsers_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listLocalUsers_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listLocalUsers_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // 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 {
      LOGIN((short)1, "login");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listLocalUsers_args.class, metaDataMap);
    }

    public listLocalUsers_args() {
    }

    public listLocalUsers_args(
      ByteBuffer login)
    {
      this();
      this.login = login;
    }

    /**
     * Performs a deep copy on other.
     */
    public listLocalUsers_args(listLocalUsers_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
    }

    public listLocalUsers_args deepCopy() {
      return new listLocalUsers_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public listLocalUsers_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public listLocalUsers_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listLocalUsers_args)
        return this.equals((listLocalUsers_args)that);
      return false;
    }

    public boolean equals(listLocalUsers_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(listLocalUsers_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listLocalUsers_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      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, 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 listLocalUsers_argsStandardSchemeFactory implements SchemeFactory {
      public listLocalUsers_argsStandardScheme getScheme() {
        return new listLocalUsers_argsStandardScheme();
      }
    }

    private static class listLocalUsers_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listLocalUsers_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, listLocalUsers_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listLocalUsers_argsTupleSchemeFactory implements SchemeFactory {
      public listLocalUsers_argsTupleScheme getScheme() {
        return new listLocalUsers_argsTupleScheme();
      }
    }

    private static class listLocalUsers_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listLocalUsers_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listLocalUsers_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
      }
    }

  }

  public static class listLocalUsers_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("listLocalUsers_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.SET, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new listLocalUsers_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new listLocalUsers_resultTupleSchemeFactory());
    }

    public Set success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.SetMetaData(org.apache.thrift.protocol.TType.SET, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listLocalUsers_result.class, metaDataMap);
    }

    public listLocalUsers_result() {
    }

    public listLocalUsers_result(
      Set success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public listLocalUsers_result(listLocalUsers_result other) {
      if (other.isSetSuccess()) {
        Set __this__success = new HashSet(other.success);
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public listLocalUsers_result deepCopy() {
      return new listLocalUsers_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(String elem) {
      if (this.success == null) {
        this.success = new HashSet();
      }
      this.success.add(elem);
    }

    public Set getSuccess() {
      return this.success;
    }

    public listLocalUsers_result setSuccess(Set 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public listLocalUsers_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public listLocalUsers_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public listLocalUsers_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Set)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof listLocalUsers_result)
        return this.equals((listLocalUsers_result)that);
      return false;
    }

    public boolean equals(listLocalUsers_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(listLocalUsers_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("listLocalUsers_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 listLocalUsers_resultStandardSchemeFactory implements SchemeFactory {
      public listLocalUsers_resultStandardScheme getScheme() {
        return new listLocalUsers_resultStandardScheme();
      }
    }

    private static class listLocalUsers_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, listLocalUsers_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.SET) {
                {
                  org.apache.thrift.protocol.TSet _set434 = iprot.readSetBegin();
                  struct.success = new HashSet(2*_set434.size);
                  for (int _i435 = 0; _i435 < _set434.size; ++_i435)
                  {
                    String _elem436;
                    _elem436 = iprot.readString();
                    struct.success.add(_elem436);
                  }
                  iprot.readSetEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, listLocalUsers_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (String _iter437 : struct.success)
            {
              oprot.writeString(_iter437);
            }
            oprot.writeSetEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class listLocalUsers_resultTupleSchemeFactory implements SchemeFactory {
      public listLocalUsers_resultTupleScheme getScheme() {
        return new listLocalUsers_resultTupleScheme();
      }
    }

    private static class listLocalUsers_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, listLocalUsers_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (String _iter438 : struct.success)
            {
              oprot.writeString(_iter438);
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, listLocalUsers_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TSet _set439 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
            struct.success = new HashSet(2*_set439.size);
            for (int _i440 = 0; _i440 < _set439.size; ++_i440)
            {
              String _elem441;
              _elem441 = iprot.readString();
              struct.success.add(_elem441);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class revokeSystemPermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revokeSystemPermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new revokeSystemPermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new revokeSystemPermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      /**
       * 
       * @see SystemPermission
       */
      PERM((short)3, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SystemPermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeSystemPermission_args.class, metaDataMap);
    }

    public revokeSystemPermission_args() {
    }

    public revokeSystemPermission_args(
      ByteBuffer login,
      String user,
      SystemPermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeSystemPermission_args(revokeSystemPermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public revokeSystemPermission_args deepCopy() {
      return new revokeSystemPermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public revokeSystemPermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public revokeSystemPermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public revokeSystemPermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    /**
     * 
     * @see SystemPermission
     */
    public SystemPermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see SystemPermission
     */
    public revokeSystemPermission_args setPerm(SystemPermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((SystemPermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof revokeSystemPermission_args)
        return this.equals((revokeSystemPermission_args)that);
      return false;
    }

    public boolean equals(revokeSystemPermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(revokeSystemPermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("revokeSystemPermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 revokeSystemPermission_argsStandardSchemeFactory implements SchemeFactory {
      public revokeSystemPermission_argsStandardScheme getScheme() {
        return new revokeSystemPermission_argsStandardScheme();
      }
    }

    private static class revokeSystemPermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revokeSystemPermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = SystemPermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revokeSystemPermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revokeSystemPermission_argsTupleSchemeFactory implements SchemeFactory {
      public revokeSystemPermission_argsTupleScheme getScheme() {
        return new revokeSystemPermission_argsTupleScheme();
      }
    }

    private static class revokeSystemPermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revokeSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetPerm()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revokeSystemPermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.perm = SystemPermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class revokeSystemPermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revokeSystemPermission_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new revokeSystemPermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new revokeSystemPermission_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeSystemPermission_result.class, metaDataMap);
    }

    public revokeSystemPermission_result() {
    }

    public revokeSystemPermission_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeSystemPermission_result(revokeSystemPermission_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
    }

    public revokeSystemPermission_result deepCopy() {
      return new revokeSystemPermission_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public revokeSystemPermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public revokeSystemPermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof revokeSystemPermission_result)
        return this.equals((revokeSystemPermission_result)that);
      return false;
    }

    public boolean equals(revokeSystemPermission_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(revokeSystemPermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("revokeSystemPermission_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 revokeSystemPermission_resultStandardSchemeFactory implements SchemeFactory {
      public revokeSystemPermission_resultStandardScheme getScheme() {
        return new revokeSystemPermission_resultStandardScheme();
      }
    }

    private static class revokeSystemPermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revokeSystemPermission_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revokeSystemPermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revokeSystemPermission_resultTupleSchemeFactory implements SchemeFactory {
      public revokeSystemPermission_resultTupleScheme getScheme() {
        return new revokeSystemPermission_resultTupleScheme();
      }
    }

    private static class revokeSystemPermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revokeSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revokeSystemPermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class revokeTablePermission_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revokeTablePermission_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("table", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField PERM_FIELD_DESC = new org.apache.thrift.protocol.TField("perm", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new revokeTablePermission_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new revokeTablePermission_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String user; // required
    public String table; // required
    /**
     * 
     * @see TablePermission
     */
    public TablePermission perm; // 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 {
      LOGIN((short)1, "login"),
      USER((short)2, "user"),
      TABLE((short)3, "table"),
      /**
       * 
       * @see TablePermission
       */
      PERM((short)4, "perm");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // USER
            return USER;
          case 3: // TABLE
            return TABLE;
          case 4: // PERM
            return PERM;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE, new org.apache.thrift.meta_data.FieldMetaData("table", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PERM, new org.apache.thrift.meta_data.FieldMetaData("perm", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TablePermission.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeTablePermission_args.class, metaDataMap);
    }

    public revokeTablePermission_args() {
    }

    public revokeTablePermission_args(
      ByteBuffer login,
      String user,
      String table,
      TablePermission perm)
    {
      this();
      this.login = login;
      this.user = user;
      this.table = table;
      this.perm = perm;
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeTablePermission_args(revokeTablePermission_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetUser()) {
        this.user = other.user;
      }
      if (other.isSetTable()) {
        this.table = other.table;
      }
      if (other.isSetPerm()) {
        this.perm = other.perm;
      }
    }

    public revokeTablePermission_args deepCopy() {
      return new revokeTablePermission_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.user = null;
      this.table = null;
      this.perm = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public revokeTablePermission_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public revokeTablePermission_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getUser() {
      return this.user;
    }

    public revokeTablePermission_args setUser(String user) {
      this.user = user;
      return this;
    }

    public void unsetUser() {
      this.user = null;
    }

    /** Returns true if field user is set (has been assigned a value) and false otherwise */
    public boolean isSetUser() {
      return this.user != null;
    }

    public void setUserIsSet(boolean value) {
      if (!value) {
        this.user = null;
      }
    }

    public String getTable() {
      return this.table;
    }

    public revokeTablePermission_args setTable(String table) {
      this.table = table;
      return this;
    }

    public void unsetTable() {
      this.table = null;
    }

    /** Returns true if field table is set (has been assigned a value) and false otherwise */
    public boolean isSetTable() {
      return this.table != null;
    }

    public void setTableIsSet(boolean value) {
      if (!value) {
        this.table = null;
      }
    }

    /**
     * 
     * @see TablePermission
     */
    public TablePermission getPerm() {
      return this.perm;
    }

    /**
     * 
     * @see TablePermission
     */
    public revokeTablePermission_args setPerm(TablePermission perm) {
      this.perm = perm;
      return this;
    }

    public void unsetPerm() {
      this.perm = null;
    }

    /** Returns true if field perm is set (has been assigned a value) and false otherwise */
    public boolean isSetPerm() {
      return this.perm != null;
    }

    public void setPermIsSet(boolean value) {
      if (!value) {
        this.perm = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case USER:
        if (value == null) {
          unsetUser();
        } else {
          setUser((String)value);
        }
        break;

      case TABLE:
        if (value == null) {
          unsetTable();
        } else {
          setTable((String)value);
        }
        break;

      case PERM:
        if (value == null) {
          unsetPerm();
        } else {
          setPerm((TablePermission)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case USER:
        return getUser();

      case TABLE:
        return getTable();

      case PERM:
        return getPerm();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case USER:
        return isSetUser();
      case TABLE:
        return isSetTable();
      case PERM:
        return isSetPerm();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof revokeTablePermission_args)
        return this.equals((revokeTablePermission_args)that);
      return false;
    }

    public boolean equals(revokeTablePermission_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_user = true && this.isSetUser();
      boolean that_present_user = true && that.isSetUser();
      if (this_present_user || that_present_user) {
        if (!(this_present_user && that_present_user))
          return false;
        if (!this.user.equals(that.user))
          return false;
      }

      boolean this_present_table = true && this.isSetTable();
      boolean that_present_table = true && that.isSetTable();
      if (this_present_table || that_present_table) {
        if (!(this_present_table && that_present_table))
          return false;
        if (!this.table.equals(that.table))
          return false;
      }

      boolean this_present_perm = true && this.isSetPerm();
      boolean that_present_perm = true && that.isSetPerm();
      if (this_present_perm || that_present_perm) {
        if (!(this_present_perm && that_present_perm))
          return false;
        if (!this.perm.equals(that.perm))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(revokeTablePermission_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTable()).compareTo(other.isSetTable());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table, other.table);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPerm()).compareTo(other.isSetPerm());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPerm()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perm, other.perm);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("revokeTablePermission_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table:");
      if (this.table == null) {
        sb.append("null");
      } else {
        sb.append(this.table);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("perm:");
      if (this.perm == null) {
        sb.append("null");
      } else {
        sb.append(this.perm);
      }
      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, 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 revokeTablePermission_argsStandardSchemeFactory implements SchemeFactory {
      public revokeTablePermission_argsStandardScheme getScheme() {
        return new revokeTablePermission_argsStandardScheme();
      }
    }

    private static class revokeTablePermission_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revokeTablePermission_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user = iprot.readString();
                struct.setUserIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TABLE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table = iprot.readString();
                struct.setTableIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // PERM
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.perm = TablePermission.findByValue(iprot.readI32());
                struct.setPermIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revokeTablePermission_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.user != null) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
        if (struct.table != null) {
          oprot.writeFieldBegin(TABLE_FIELD_DESC);
          oprot.writeString(struct.table);
          oprot.writeFieldEnd();
        }
        if (struct.perm != null) {
          oprot.writeFieldBegin(PERM_FIELD_DESC);
          oprot.writeI32(struct.perm.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revokeTablePermission_argsTupleSchemeFactory implements SchemeFactory {
      public revokeTablePermission_argsTupleScheme getScheme() {
        return new revokeTablePermission_argsTupleScheme();
      }
    }

    private static class revokeTablePermission_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revokeTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetUser()) {
          optionals.set(1);
        }
        if (struct.isSetTable()) {
          optionals.set(2);
        }
        if (struct.isSetPerm()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetUser()) {
          oprot.writeString(struct.user);
        }
        if (struct.isSetTable()) {
          oprot.writeString(struct.table);
        }
        if (struct.isSetPerm()) {
          oprot.writeI32(struct.perm.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revokeTablePermission_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user = iprot.readString();
          struct.setUserIsSet(true);
        }
        if (incoming.get(2)) {
          struct.table = iprot.readString();
          struct.setTableIsSet(true);
        }
        if (incoming.get(3)) {
          struct.perm = TablePermission.findByValue(iprot.readI32());
          struct.setPermIsSet(true);
        }
      }
    }

  }

  public static class revokeTablePermission_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revokeTablePermission_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new revokeTablePermission_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new revokeTablePermission_resultTupleSchemeFactory());
    }

    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeTablePermission_result.class, metaDataMap);
    }

    public revokeTablePermission_result() {
    }

    public revokeTablePermission_result(
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeTablePermission_result(revokeTablePermission_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public revokeTablePermission_result deepCopy() {
      return new revokeTablePermission_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public revokeTablePermission_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public revokeTablePermission_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public revokeTablePermission_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof revokeTablePermission_result)
        return this.equals((revokeTablePermission_result)that);
      return false;
    }

    public boolean equals(revokeTablePermission_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(revokeTablePermission_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("revokeTablePermission_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 revokeTablePermission_resultStandardSchemeFactory implements SchemeFactory {
      public revokeTablePermission_resultStandardScheme getScheme() {
        return new revokeTablePermission_resultStandardScheme();
      }
    }

    private static class revokeTablePermission_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revokeTablePermission_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revokeTablePermission_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revokeTablePermission_resultTupleSchemeFactory implements SchemeFactory {
      public revokeTablePermission_resultTupleScheme getScheme() {
        return new revokeTablePermission_resultTupleScheme();
      }
    }

    private static class revokeTablePermission_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revokeTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revokeTablePermission_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class createBatchScanner_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createBatchScanner_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createBatchScanner_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createBatchScanner_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public BatchScanOptions options; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      OPTIONS((short)3, "options");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // OPTIONS
            return OPTIONS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, BatchScanOptions.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createBatchScanner_args.class, metaDataMap);
    }

    public createBatchScanner_args() {
    }

    public createBatchScanner_args(
      ByteBuffer login,
      String tableName,
      BatchScanOptions options)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.options = options;
    }

    /**
     * Performs a deep copy on other.
     */
    public createBatchScanner_args(createBatchScanner_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetOptions()) {
        this.options = new BatchScanOptions(other.options);
      }
    }

    public createBatchScanner_args deepCopy() {
      return new createBatchScanner_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.options = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createBatchScanner_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createBatchScanner_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public createBatchScanner_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public BatchScanOptions getOptions() {
      return this.options;
    }

    public createBatchScanner_args setOptions(BatchScanOptions options) {
      this.options = options;
      return this;
    }

    public void unsetOptions() {
      this.options = null;
    }

    /** Returns true if field options is set (has been assigned a value) and false otherwise */
    public boolean isSetOptions() {
      return this.options != null;
    }

    public void setOptionsIsSet(boolean value) {
      if (!value) {
        this.options = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case OPTIONS:
        if (value == null) {
          unsetOptions();
        } else {
          setOptions((BatchScanOptions)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case OPTIONS:
        return getOptions();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case OPTIONS:
        return isSetOptions();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createBatchScanner_args)
        return this.equals((createBatchScanner_args)that);
      return false;
    }

    public boolean equals(createBatchScanner_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_options = true && this.isSetOptions();
      boolean that_present_options = true && that.isSetOptions();
      if (this_present_options || that_present_options) {
        if (!(this_present_options && that_present_options))
          return false;
        if (!this.options.equals(that.options))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createBatchScanner_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOptions()).compareTo(other.isSetOptions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOptions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, other.options);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createBatchScanner_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("options:");
      if (this.options == null) {
        sb.append("null");
      } else {
        sb.append(this.options);
      }
      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 (options != null) {
        options.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, 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 createBatchScanner_argsStandardSchemeFactory implements SchemeFactory {
      public createBatchScanner_argsStandardScheme getScheme() {
        return new createBatchScanner_argsStandardScheme();
      }
    }

    private static class createBatchScanner_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createBatchScanner_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OPTIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.options = new BatchScanOptions();
                struct.options.read(iprot);
                struct.setOptionsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createBatchScanner_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.options != null) {
          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
          struct.options.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createBatchScanner_argsTupleSchemeFactory implements SchemeFactory {
      public createBatchScanner_argsTupleScheme getScheme() {
        return new createBatchScanner_argsTupleScheme();
      }
    }

    private static class createBatchScanner_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createBatchScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetOptions()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetOptions()) {
          struct.options.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createBatchScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.options = new BatchScanOptions();
          struct.options.read(iprot);
          struct.setOptionsIsSet(true);
        }
      }
    }

  }

  public static class createBatchScanner_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createBatchScanner_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createBatchScanner_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createBatchScanner_resultTupleSchemeFactory());
    }

    public String success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createBatchScanner_result.class, metaDataMap);
    }

    public createBatchScanner_result() {
    }

    public createBatchScanner_result(
      String success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public createBatchScanner_result(createBatchScanner_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public createBatchScanner_result deepCopy() {
      return new createBatchScanner_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public createBatchScanner_result setSuccess(String 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public createBatchScanner_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createBatchScanner_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public createBatchScanner_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createBatchScanner_result)
        return this.equals((createBatchScanner_result)that);
      return false;
    }

    public boolean equals(createBatchScanner_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createBatchScanner_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createBatchScanner_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 createBatchScanner_resultStandardSchemeFactory implements SchemeFactory {
      public createBatchScanner_resultStandardScheme getScheme() {
        return new createBatchScanner_resultStandardScheme();
      }
    }

    private static class createBatchScanner_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createBatchScanner_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.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createBatchScanner_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createBatchScanner_resultTupleSchemeFactory implements SchemeFactory {
      public createBatchScanner_resultTupleScheme getScheme() {
        return new createBatchScanner_resultTupleScheme();
      }
    }

    private static class createBatchScanner_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createBatchScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createBatchScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class createScanner_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createScanner_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createScanner_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createScanner_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ScanOptions options; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      OPTIONS((short)3, "options");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // OPTIONS
            return OPTIONS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ScanOptions.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createScanner_args.class, metaDataMap);
    }

    public createScanner_args() {
    }

    public createScanner_args(
      ByteBuffer login,
      String tableName,
      ScanOptions options)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.options = options;
    }

    /**
     * Performs a deep copy on other.
     */
    public createScanner_args(createScanner_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetOptions()) {
        this.options = new ScanOptions(other.options);
      }
    }

    public createScanner_args deepCopy() {
      return new createScanner_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.options = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createScanner_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createScanner_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public createScanner_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public ScanOptions getOptions() {
      return this.options;
    }

    public createScanner_args setOptions(ScanOptions options) {
      this.options = options;
      return this;
    }

    public void unsetOptions() {
      this.options = null;
    }

    /** Returns true if field options is set (has been assigned a value) and false otherwise */
    public boolean isSetOptions() {
      return this.options != null;
    }

    public void setOptionsIsSet(boolean value) {
      if (!value) {
        this.options = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case OPTIONS:
        if (value == null) {
          unsetOptions();
        } else {
          setOptions((ScanOptions)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case OPTIONS:
        return getOptions();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case OPTIONS:
        return isSetOptions();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createScanner_args)
        return this.equals((createScanner_args)that);
      return false;
    }

    public boolean equals(createScanner_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_options = true && this.isSetOptions();
      boolean that_present_options = true && that.isSetOptions();
      if (this_present_options || that_present_options) {
        if (!(this_present_options && that_present_options))
          return false;
        if (!this.options.equals(that.options))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createScanner_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOptions()).compareTo(other.isSetOptions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOptions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, other.options);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createScanner_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("options:");
      if (this.options == null) {
        sb.append("null");
      } else {
        sb.append(this.options);
      }
      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 (options != null) {
        options.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, 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 createScanner_argsStandardSchemeFactory implements SchemeFactory {
      public createScanner_argsStandardScheme getScheme() {
        return new createScanner_argsStandardScheme();
      }
    }

    private static class createScanner_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createScanner_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OPTIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.options = new ScanOptions();
                struct.options.read(iprot);
                struct.setOptionsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createScanner_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.options != null) {
          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
          struct.options.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createScanner_argsTupleSchemeFactory implements SchemeFactory {
      public createScanner_argsTupleScheme getScheme() {
        return new createScanner_argsTupleScheme();
      }
    }

    private static class createScanner_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetOptions()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetOptions()) {
          struct.options.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.options = new ScanOptions();
          struct.options.read(iprot);
          struct.setOptionsIsSet(true);
        }
      }
    }

  }

  public static class createScanner_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createScanner_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createScanner_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createScanner_resultTupleSchemeFactory());
    }

    public String success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createScanner_result.class, metaDataMap);
    }

    public createScanner_result() {
    }

    public createScanner_result(
      String success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public createScanner_result(createScanner_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public createScanner_result deepCopy() {
      return new createScanner_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public createScanner_result setSuccess(String 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public createScanner_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createScanner_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public createScanner_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createScanner_result)
        return this.equals((createScanner_result)that);
      return false;
    }

    public boolean equals(createScanner_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createScanner_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createScanner_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 createScanner_resultStandardSchemeFactory implements SchemeFactory {
      public createScanner_resultStandardScheme getScheme() {
        return new createScanner_resultStandardScheme();
      }
    }

    private static class createScanner_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createScanner_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.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createScanner_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createScanner_resultTupleSchemeFactory implements SchemeFactory {
      public createScanner_resultTupleScheme getScheme() {
        return new createScanner_resultTupleScheme();
      }
    }

    private static class createScanner_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class hasNext_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasNext_args");

    private static final org.apache.thrift.protocol.TField SCANNER_FIELD_DESC = new org.apache.thrift.protocol.TField("scanner", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasNext_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasNext_argsTupleSchemeFactory());
    }

    public String scanner; // 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 {
      SCANNER((short)1, "scanner");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCANNER
            return SCANNER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCANNER, new org.apache.thrift.meta_data.FieldMetaData("scanner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasNext_args.class, metaDataMap);
    }

    public hasNext_args() {
    }

    public hasNext_args(
      String scanner)
    {
      this();
      this.scanner = scanner;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasNext_args(hasNext_args other) {
      if (other.isSetScanner()) {
        this.scanner = other.scanner;
      }
    }

    public hasNext_args deepCopy() {
      return new hasNext_args(this);
    }

    @Override
    public void clear() {
      this.scanner = null;
    }

    public String getScanner() {
      return this.scanner;
    }

    public hasNext_args setScanner(String scanner) {
      this.scanner = scanner;
      return this;
    }

    public void unsetScanner() {
      this.scanner = null;
    }

    /** Returns true if field scanner is set (has been assigned a value) and false otherwise */
    public boolean isSetScanner() {
      return this.scanner != null;
    }

    public void setScannerIsSet(boolean value) {
      if (!value) {
        this.scanner = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SCANNER:
        if (value == null) {
          unsetScanner();
        } else {
          setScanner((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SCANNER:
        return getScanner();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SCANNER:
        return isSetScanner();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasNext_args)
        return this.equals((hasNext_args)that);
      return false;
    }

    public boolean equals(hasNext_args that) {
      if (that == null)
        return false;

      boolean this_present_scanner = true && this.isSetScanner();
      boolean that_present_scanner = true && that.isSetScanner();
      if (this_present_scanner || that_present_scanner) {
        if (!(this_present_scanner && that_present_scanner))
          return false;
        if (!this.scanner.equals(that.scanner))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasNext_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetScanner()).compareTo(other.isSetScanner());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanner()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanner, other.scanner);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasNext_args(");
      boolean first = true;

      sb.append("scanner:");
      if (this.scanner == null) {
        sb.append("null");
      } else {
        sb.append(this.scanner);
      }
      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, 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 hasNext_argsStandardSchemeFactory implements SchemeFactory {
      public hasNext_argsStandardScheme getScheme() {
        return new hasNext_argsStandardScheme();
      }
    }

    private static class hasNext_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasNext_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 1: // SCANNER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.scanner = iprot.readString();
                struct.setScannerIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasNext_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.scanner != null) {
          oprot.writeFieldBegin(SCANNER_FIELD_DESC);
          oprot.writeString(struct.scanner);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasNext_argsTupleSchemeFactory implements SchemeFactory {
      public hasNext_argsTupleScheme getScheme() {
        return new hasNext_argsTupleScheme();
      }
    }

    private static class hasNext_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasNext_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetScanner()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetScanner()) {
          oprot.writeString(struct.scanner);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasNext_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.scanner = iprot.readString();
          struct.setScannerIsSet(true);
        }
      }
    }

  }

  public static class hasNext_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("hasNext_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new hasNext_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new hasNext_resultTupleSchemeFactory());
    }

    public boolean success; // required
    public UnknownScanner ouch1; // 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"),
      OUCH1((short)1, "ouch1");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(hasNext_result.class, metaDataMap);
    }

    public hasNext_result() {
    }

    public hasNext_result(
      boolean success,
      UnknownScanner ouch1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ouch1 = ouch1;
    }

    /**
     * Performs a deep copy on other.
     */
    public hasNext_result(hasNext_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetOuch1()) {
        this.ouch1 = new UnknownScanner(other.ouch1);
      }
    }

    public hasNext_result deepCopy() {
      return new hasNext_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ouch1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public hasNext_result setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public UnknownScanner getOuch1() {
      return this.ouch1;
    }

    public hasNext_result setOuch1(UnknownScanner ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((UnknownScanner)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      case OUCH1:
        return getOuch1();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof hasNext_result)
        return this.equals((hasNext_result)that);
      return false;
    }

    public boolean equals(hasNext_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(hasNext_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("hasNext_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      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, 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 hasNext_resultStandardSchemeFactory implements SchemeFactory {
      public hasNext_resultStandardScheme getScheme() {
        return new hasNext_resultStandardScheme();
      }
    }

    private static class hasNext_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, hasNext_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.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new UnknownScanner();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, hasNext_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class hasNext_resultTupleSchemeFactory implements SchemeFactory {
      public hasNext_resultTupleScheme getScheme() {
        return new hasNext_resultTupleScheme();
      }
    }

    private static class hasNext_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, hasNext_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, hasNext_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new UnknownScanner();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
      }
    }

  }

  public static class nextEntry_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("nextEntry_args");

    private static final org.apache.thrift.protocol.TField SCANNER_FIELD_DESC = new org.apache.thrift.protocol.TField("scanner", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new nextEntry_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new nextEntry_argsTupleSchemeFactory());
    }

    public String scanner; // 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 {
      SCANNER((short)1, "scanner");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCANNER
            return SCANNER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCANNER, new org.apache.thrift.meta_data.FieldMetaData("scanner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(nextEntry_args.class, metaDataMap);
    }

    public nextEntry_args() {
    }

    public nextEntry_args(
      String scanner)
    {
      this();
      this.scanner = scanner;
    }

    /**
     * Performs a deep copy on other.
     */
    public nextEntry_args(nextEntry_args other) {
      if (other.isSetScanner()) {
        this.scanner = other.scanner;
      }
    }

    public nextEntry_args deepCopy() {
      return new nextEntry_args(this);
    }

    @Override
    public void clear() {
      this.scanner = null;
    }

    public String getScanner() {
      return this.scanner;
    }

    public nextEntry_args setScanner(String scanner) {
      this.scanner = scanner;
      return this;
    }

    public void unsetScanner() {
      this.scanner = null;
    }

    /** Returns true if field scanner is set (has been assigned a value) and false otherwise */
    public boolean isSetScanner() {
      return this.scanner != null;
    }

    public void setScannerIsSet(boolean value) {
      if (!value) {
        this.scanner = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SCANNER:
        if (value == null) {
          unsetScanner();
        } else {
          setScanner((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SCANNER:
        return getScanner();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SCANNER:
        return isSetScanner();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof nextEntry_args)
        return this.equals((nextEntry_args)that);
      return false;
    }

    public boolean equals(nextEntry_args that) {
      if (that == null)
        return false;

      boolean this_present_scanner = true && this.isSetScanner();
      boolean that_present_scanner = true && that.isSetScanner();
      if (this_present_scanner || that_present_scanner) {
        if (!(this_present_scanner && that_present_scanner))
          return false;
        if (!this.scanner.equals(that.scanner))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(nextEntry_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetScanner()).compareTo(other.isSetScanner());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanner()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanner, other.scanner);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("nextEntry_args(");
      boolean first = true;

      sb.append("scanner:");
      if (this.scanner == null) {
        sb.append("null");
      } else {
        sb.append(this.scanner);
      }
      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, 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 nextEntry_argsStandardSchemeFactory implements SchemeFactory {
      public nextEntry_argsStandardScheme getScheme() {
        return new nextEntry_argsStandardScheme();
      }
    }

    private static class nextEntry_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, nextEntry_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 1: // SCANNER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.scanner = iprot.readString();
                struct.setScannerIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, nextEntry_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.scanner != null) {
          oprot.writeFieldBegin(SCANNER_FIELD_DESC);
          oprot.writeString(struct.scanner);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class nextEntry_argsTupleSchemeFactory implements SchemeFactory {
      public nextEntry_argsTupleScheme getScheme() {
        return new nextEntry_argsTupleScheme();
      }
    }

    private static class nextEntry_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, nextEntry_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetScanner()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetScanner()) {
          oprot.writeString(struct.scanner);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, nextEntry_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.scanner = iprot.readString();
          struct.setScannerIsSet(true);
        }
      }
    }

  }

  public static class nextEntry_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("nextEntry_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new nextEntry_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new nextEntry_resultTupleSchemeFactory());
    }

    public KeyValueAndPeek success; // required
    public NoMoreEntriesException ouch1; // required
    public UnknownScanner ouch2; // required
    public AccumuloSecurityException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, KeyValueAndPeek.class)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(nextEntry_result.class, metaDataMap);
    }

    public nextEntry_result() {
    }

    public nextEntry_result(
      KeyValueAndPeek success,
      NoMoreEntriesException ouch1,
      UnknownScanner ouch2,
      AccumuloSecurityException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public nextEntry_result(nextEntry_result other) {
      if (other.isSetSuccess()) {
        this.success = new KeyValueAndPeek(other.success);
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new NoMoreEntriesException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new UnknownScanner(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloSecurityException(other.ouch3);
      }
    }

    public nextEntry_result deepCopy() {
      return new nextEntry_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public KeyValueAndPeek getSuccess() {
      return this.success;
    }

    public nextEntry_result setSuccess(KeyValueAndPeek 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;
      }
    }

    public NoMoreEntriesException getOuch1() {
      return this.ouch1;
    }

    public nextEntry_result setOuch1(NoMoreEntriesException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public UnknownScanner getOuch2() {
      return this.ouch2;
    }

    public nextEntry_result setOuch2(UnknownScanner ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloSecurityException getOuch3() {
      return this.ouch3;
    }

    public nextEntry_result setOuch3(AccumuloSecurityException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((KeyValueAndPeek)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((NoMoreEntriesException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((UnknownScanner)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof nextEntry_result)
        return this.equals((nextEntry_result)that);
      return false;
    }

    public boolean equals(nextEntry_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(nextEntry_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("nextEntry_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 nextEntry_resultStandardSchemeFactory implements SchemeFactory {
      public nextEntry_resultStandardScheme getScheme() {
        return new nextEntry_resultStandardScheme();
      }
    }

    private static class nextEntry_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, nextEntry_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 KeyValueAndPeek();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new NoMoreEntriesException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new UnknownScanner();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloSecurityException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, nextEntry_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.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class nextEntry_resultTupleSchemeFactory implements SchemeFactory {
      public nextEntry_resultTupleScheme getScheme() {
        return new nextEntry_resultTupleScheme();
      }
    }

    private static class nextEntry_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, nextEntry_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, nextEntry_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new KeyValueAndPeek();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new NoMoreEntriesException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new UnknownScanner();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new AccumuloSecurityException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class nextK_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("nextK_args");

    private static final org.apache.thrift.protocol.TField SCANNER_FIELD_DESC = new org.apache.thrift.protocol.TField("scanner", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField K_FIELD_DESC = new org.apache.thrift.protocol.TField("k", org.apache.thrift.protocol.TType.I32, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new nextK_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new nextK_argsTupleSchemeFactory());
    }

    public String scanner; // required
    public int k; // 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 {
      SCANNER((short)1, "scanner"),
      K((short)2, "k");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCANNER
            return SCANNER;
          case 2: // K
            return K;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __K_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCANNER, new org.apache.thrift.meta_data.FieldMetaData("scanner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.K, new org.apache.thrift.meta_data.FieldMetaData("k", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(nextK_args.class, metaDataMap);
    }

    public nextK_args() {
    }

    public nextK_args(
      String scanner,
      int k)
    {
      this();
      this.scanner = scanner;
      this.k = k;
      setKIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public nextK_args(nextK_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetScanner()) {
        this.scanner = other.scanner;
      }
      this.k = other.k;
    }

    public nextK_args deepCopy() {
      return new nextK_args(this);
    }

    @Override
    public void clear() {
      this.scanner = null;
      setKIsSet(false);
      this.k = 0;
    }

    public String getScanner() {
      return this.scanner;
    }

    public nextK_args setScanner(String scanner) {
      this.scanner = scanner;
      return this;
    }

    public void unsetScanner() {
      this.scanner = null;
    }

    /** Returns true if field scanner is set (has been assigned a value) and false otherwise */
    public boolean isSetScanner() {
      return this.scanner != null;
    }

    public void setScannerIsSet(boolean value) {
      if (!value) {
        this.scanner = null;
      }
    }

    public int getK() {
      return this.k;
    }

    public nextK_args setK(int k) {
      this.k = k;
      setKIsSet(true);
      return this;
    }

    public void unsetK() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __K_ISSET_ID);
    }

    /** Returns true if field k is set (has been assigned a value) and false otherwise */
    public boolean isSetK() {
      return EncodingUtils.testBit(__isset_bitfield, __K_ISSET_ID);
    }

    public void setKIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __K_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SCANNER:
        if (value == null) {
          unsetScanner();
        } else {
          setScanner((String)value);
        }
        break;

      case K:
        if (value == null) {
          unsetK();
        } else {
          setK((Integer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SCANNER:
        return getScanner();

      case K:
        return Integer.valueOf(getK());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SCANNER:
        return isSetScanner();
      case K:
        return isSetK();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof nextK_args)
        return this.equals((nextK_args)that);
      return false;
    }

    public boolean equals(nextK_args that) {
      if (that == null)
        return false;

      boolean this_present_scanner = true && this.isSetScanner();
      boolean that_present_scanner = true && that.isSetScanner();
      if (this_present_scanner || that_present_scanner) {
        if (!(this_present_scanner && that_present_scanner))
          return false;
        if (!this.scanner.equals(that.scanner))
          return false;
      }

      boolean this_present_k = true;
      boolean that_present_k = true;
      if (this_present_k || that_present_k) {
        if (!(this_present_k && that_present_k))
          return false;
        if (this.k != that.k)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(nextK_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetScanner()).compareTo(other.isSetScanner());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanner()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanner, other.scanner);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetK()).compareTo(other.isSetK());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetK()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.k, other.k);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("nextK_args(");
      boolean first = true;

      sb.append("scanner:");
      if (this.scanner == null) {
        sb.append("null");
      } else {
        sb.append(this.scanner);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("k:");
      sb.append(this.k);
      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, 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 nextK_argsStandardSchemeFactory implements SchemeFactory {
      public nextK_argsStandardScheme getScheme() {
        return new nextK_argsStandardScheme();
      }
    }

    private static class nextK_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, nextK_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 1: // SCANNER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.scanner = iprot.readString();
                struct.setScannerIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // K
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.k = iprot.readI32();
                struct.setKIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, nextK_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.scanner != null) {
          oprot.writeFieldBegin(SCANNER_FIELD_DESC);
          oprot.writeString(struct.scanner);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(K_FIELD_DESC);
        oprot.writeI32(struct.k);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class nextK_argsTupleSchemeFactory implements SchemeFactory {
      public nextK_argsTupleScheme getScheme() {
        return new nextK_argsTupleScheme();
      }
    }

    private static class nextK_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, nextK_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetScanner()) {
          optionals.set(0);
        }
        if (struct.isSetK()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetScanner()) {
          oprot.writeString(struct.scanner);
        }
        if (struct.isSetK()) {
          oprot.writeI32(struct.k);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, nextK_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.scanner = iprot.readString();
          struct.setScannerIsSet(true);
        }
        if (incoming.get(1)) {
          struct.k = iprot.readI32();
          struct.setKIsSet(true);
        }
      }
    }

  }

  public static class nextK_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("nextK_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 OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new nextK_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new nextK_resultTupleSchemeFactory());
    }

    public ScanResult success; // required
    public NoMoreEntriesException ouch1; // required
    public UnknownScanner ouch2; // required
    public AccumuloSecurityException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, ScanResult.class)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(nextK_result.class, metaDataMap);
    }

    public nextK_result() {
    }

    public nextK_result(
      ScanResult success,
      NoMoreEntriesException ouch1,
      UnknownScanner ouch2,
      AccumuloSecurityException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public nextK_result(nextK_result other) {
      if (other.isSetSuccess()) {
        this.success = new ScanResult(other.success);
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new NoMoreEntriesException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new UnknownScanner(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloSecurityException(other.ouch3);
      }
    }

    public nextK_result deepCopy() {
      return new nextK_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public ScanResult getSuccess() {
      return this.success;
    }

    public nextK_result setSuccess(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;
      }
    }

    public NoMoreEntriesException getOuch1() {
      return this.ouch1;
    }

    public nextK_result setOuch1(NoMoreEntriesException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public UnknownScanner getOuch2() {
      return this.ouch2;
    }

    public nextK_result setOuch2(UnknownScanner ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloSecurityException getOuch3() {
      return this.ouch3;
    }

    public nextK_result setOuch3(AccumuloSecurityException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ScanResult)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((NoMoreEntriesException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((UnknownScanner)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof nextK_result)
        return this.equals((nextK_result)that);
      return false;
    }

    public boolean equals(nextK_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(nextK_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("nextK_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 nextK_resultStandardSchemeFactory implements SchemeFactory {
      public nextK_resultStandardScheme getScheme() {
        return new nextK_resultStandardScheme();
      }
    }

    private static class nextK_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, nextK_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 ScanResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new NoMoreEntriesException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new UnknownScanner();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloSecurityException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, nextK_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.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class nextK_resultTupleSchemeFactory implements SchemeFactory {
      public nextK_resultTupleScheme getScheme() {
        return new nextK_resultTupleScheme();
      }
    }

    private static class nextK_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, nextK_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, nextK_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new ScanResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new NoMoreEntriesException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new UnknownScanner();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new AccumuloSecurityException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class closeScanner_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeScanner_args");

    private static final org.apache.thrift.protocol.TField SCANNER_FIELD_DESC = new org.apache.thrift.protocol.TField("scanner", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeScanner_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeScanner_argsTupleSchemeFactory());
    }

    public String scanner; // 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 {
      SCANNER((short)1, "scanner");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCANNER
            return SCANNER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCANNER, new org.apache.thrift.meta_data.FieldMetaData("scanner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeScanner_args.class, metaDataMap);
    }

    public closeScanner_args() {
    }

    public closeScanner_args(
      String scanner)
    {
      this();
      this.scanner = scanner;
    }

    /**
     * Performs a deep copy on other.
     */
    public closeScanner_args(closeScanner_args other) {
      if (other.isSetScanner()) {
        this.scanner = other.scanner;
      }
    }

    public closeScanner_args deepCopy() {
      return new closeScanner_args(this);
    }

    @Override
    public void clear() {
      this.scanner = null;
    }

    public String getScanner() {
      return this.scanner;
    }

    public closeScanner_args setScanner(String scanner) {
      this.scanner = scanner;
      return this;
    }

    public void unsetScanner() {
      this.scanner = null;
    }

    /** Returns true if field scanner is set (has been assigned a value) and false otherwise */
    public boolean isSetScanner() {
      return this.scanner != null;
    }

    public void setScannerIsSet(boolean value) {
      if (!value) {
        this.scanner = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SCANNER:
        if (value == null) {
          unsetScanner();
        } else {
          setScanner((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SCANNER:
        return getScanner();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SCANNER:
        return isSetScanner();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeScanner_args)
        return this.equals((closeScanner_args)that);
      return false;
    }

    public boolean equals(closeScanner_args that) {
      if (that == null)
        return false;

      boolean this_present_scanner = true && this.isSetScanner();
      boolean that_present_scanner = true && that.isSetScanner();
      if (this_present_scanner || that_present_scanner) {
        if (!(this_present_scanner && that_present_scanner))
          return false;
        if (!this.scanner.equals(that.scanner))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeScanner_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetScanner()).compareTo(other.isSetScanner());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetScanner()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scanner, other.scanner);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeScanner_args(");
      boolean first = true;

      sb.append("scanner:");
      if (this.scanner == null) {
        sb.append("null");
      } else {
        sb.append(this.scanner);
      }
      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, 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 closeScanner_argsStandardSchemeFactory implements SchemeFactory {
      public closeScanner_argsStandardScheme getScheme() {
        return new closeScanner_argsStandardScheme();
      }
    }

    private static class closeScanner_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeScanner_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 1: // SCANNER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.scanner = iprot.readString();
                struct.setScannerIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeScanner_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.scanner != null) {
          oprot.writeFieldBegin(SCANNER_FIELD_DESC);
          oprot.writeString(struct.scanner);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeScanner_argsTupleSchemeFactory implements SchemeFactory {
      public closeScanner_argsTupleScheme getScheme() {
        return new closeScanner_argsTupleScheme();
      }
    }

    private static class closeScanner_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetScanner()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetScanner()) {
          oprot.writeString(struct.scanner);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeScanner_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.scanner = iprot.readString();
          struct.setScannerIsSet(true);
        }
      }
    }

  }

  public static class closeScanner_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeScanner_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeScanner_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeScanner_resultTupleSchemeFactory());
    }

    public UnknownScanner ouch1; // 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 {
      OUCH1((short)1, "ouch1");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeScanner_result.class, metaDataMap);
    }

    public closeScanner_result() {
    }

    public closeScanner_result(
      UnknownScanner ouch1)
    {
      this();
      this.ouch1 = ouch1;
    }

    /**
     * Performs a deep copy on other.
     */
    public closeScanner_result(closeScanner_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new UnknownScanner(other.ouch1);
      }
    }

    public closeScanner_result deepCopy() {
      return new closeScanner_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
    }

    public UnknownScanner getOuch1() {
      return this.ouch1;
    }

    public closeScanner_result setOuch1(UnknownScanner ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((UnknownScanner)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeScanner_result)
        return this.equals((closeScanner_result)that);
      return false;
    }

    public boolean equals(closeScanner_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeScanner_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeScanner_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      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, 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 closeScanner_resultStandardSchemeFactory implements SchemeFactory {
      public closeScanner_resultStandardScheme getScheme() {
        return new closeScanner_resultStandardScheme();
      }
    }

    private static class closeScanner_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeScanner_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new UnknownScanner();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeScanner_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeScanner_resultTupleSchemeFactory implements SchemeFactory {
      public closeScanner_resultTupleScheme getScheme() {
        return new closeScanner_resultTupleScheme();
      }
    }

    private static class closeScanner_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeScanner_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.ouch1 = new UnknownScanner();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
      }
    }

  }

  public static class updateAndFlush_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAndFlush_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField CELLS_FIELD_DESC = new org.apache.thrift.protocol.TField("cells", org.apache.thrift.protocol.TType.MAP, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateAndFlush_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateAndFlush_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public Map> cells; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      CELLS((short)3, "cells");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // CELLS
            return CELLS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CELLS, new org.apache.thrift.meta_data.FieldMetaData("cells", 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              , true), 
              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, ColumnUpdate.class)))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAndFlush_args.class, metaDataMap);
    }

    public updateAndFlush_args() {
    }

    public updateAndFlush_args(
      ByteBuffer login,
      String tableName,
      Map> cells)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.cells = cells;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateAndFlush_args(updateAndFlush_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetCells()) {
        Map> __this__cells = new HashMap>(other.cells.size());
        for (Map.Entry> other_element : other.cells.entrySet()) {

          ByteBuffer other_element_key = other_element.getKey();
          List other_element_value = other_element.getValue();

          ByteBuffer __this__cells_copy_key = org.apache.thrift.TBaseHelper.copyBinary(other_element_key);
;

          List __this__cells_copy_value = new ArrayList(other_element_value.size());
          for (ColumnUpdate other_element_value_element : other_element_value) {
            __this__cells_copy_value.add(new ColumnUpdate(other_element_value_element));
          }

          __this__cells.put(__this__cells_copy_key, __this__cells_copy_value);
        }
        this.cells = __this__cells;
      }
    }

    public updateAndFlush_args deepCopy() {
      return new updateAndFlush_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.cells = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public updateAndFlush_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public updateAndFlush_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public updateAndFlush_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public int getCellsSize() {
      return (this.cells == null) ? 0 : this.cells.size();
    }

    public void putToCells(ByteBuffer key, List val) {
      if (this.cells == null) {
        this.cells = new HashMap>();
      }
      this.cells.put(key, val);
    }

    public Map> getCells() {
      return this.cells;
    }

    public updateAndFlush_args setCells(Map> cells) {
      this.cells = cells;
      return this;
    }

    public void unsetCells() {
      this.cells = null;
    }

    /** Returns true if field cells is set (has been assigned a value) and false otherwise */
    public boolean isSetCells() {
      return this.cells != null;
    }

    public void setCellsIsSet(boolean value) {
      if (!value) {
        this.cells = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case CELLS:
        if (value == null) {
          unsetCells();
        } else {
          setCells((Map>)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case CELLS:
        return getCells();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case CELLS:
        return isSetCells();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAndFlush_args)
        return this.equals((updateAndFlush_args)that);
      return false;
    }

    public boolean equals(updateAndFlush_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_cells = true && this.isSetCells();
      boolean that_present_cells = true && that.isSetCells();
      if (this_present_cells || that_present_cells) {
        if (!(this_present_cells && that_present_cells))
          return false;
        if (!this.cells.equals(that.cells))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateAndFlush_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCells()).compareTo(other.isSetCells());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCells()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cells, other.cells);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAndFlush_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("cells:");
      if (this.cells == null) {
        sb.append("null");
      } else {
        sb.append(this.cells);
      }
      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, 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 updateAndFlush_argsStandardSchemeFactory implements SchemeFactory {
      public updateAndFlush_argsStandardScheme getScheme() {
        return new updateAndFlush_argsStandardScheme();
      }
    }

    private static class updateAndFlush_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateAndFlush_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // CELLS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map442 = iprot.readMapBegin();
                  struct.cells = new HashMap>(2*_map442.size);
                  for (int _i443 = 0; _i443 < _map442.size; ++_i443)
                  {
                    ByteBuffer _key444;
                    List _val445;
                    _key444 = iprot.readBinary();
                    {
                      org.apache.thrift.protocol.TList _list446 = iprot.readListBegin();
                      _val445 = new ArrayList(_list446.size);
                      for (int _i447 = 0; _i447 < _list446.size; ++_i447)
                      {
                        ColumnUpdate _elem448;
                        _elem448 = new ColumnUpdate();
                        _elem448.read(iprot);
                        _val445.add(_elem448);
                      }
                      iprot.readListEnd();
                    }
                    struct.cells.put(_key444, _val445);
                  }
                  iprot.readMapEnd();
                }
                struct.setCellsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateAndFlush_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.cells != null) {
          oprot.writeFieldBegin(CELLS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.cells.size()));
            for (Map.Entry> _iter449 : struct.cells.entrySet())
            {
              oprot.writeBinary(_iter449.getKey());
              {
                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter449.getValue().size()));
                for (ColumnUpdate _iter450 : _iter449.getValue())
                {
                  _iter450.write(oprot);
                }
                oprot.writeListEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateAndFlush_argsTupleSchemeFactory implements SchemeFactory {
      public updateAndFlush_argsTupleScheme getScheme() {
        return new updateAndFlush_argsTupleScheme();
      }
    }

    private static class updateAndFlush_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateAndFlush_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetCells()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetCells()) {
          {
            oprot.writeI32(struct.cells.size());
            for (Map.Entry> _iter451 : struct.cells.entrySet())
            {
              oprot.writeBinary(_iter451.getKey());
              {
                oprot.writeI32(_iter451.getValue().size());
                for (ColumnUpdate _iter452 : _iter451.getValue())
                {
                  _iter452.write(oprot);
                }
              }
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateAndFlush_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map453 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
            struct.cells = new HashMap>(2*_map453.size);
            for (int _i454 = 0; _i454 < _map453.size; ++_i454)
            {
              ByteBuffer _key455;
              List _val456;
              _key455 = iprot.readBinary();
              {
                org.apache.thrift.protocol.TList _list457 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
                _val456 = new ArrayList(_list457.size);
                for (int _i458 = 0; _i458 < _list457.size; ++_i458)
                {
                  ColumnUpdate _elem459;
                  _elem459 = new ColumnUpdate();
                  _elem459.read(iprot);
                  _val456.add(_elem459);
                }
              }
              struct.cells.put(_key455, _val456);
            }
          }
          struct.setCellsIsSet(true);
        }
      }
    }

  }

  public static class updateAndFlush_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAndFlush_result");

    private static final org.apache.thrift.protocol.TField OUTCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("outch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField OUCH4_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateAndFlush_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateAndFlush_resultTupleSchemeFactory());
    }

    public AccumuloException outch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // required
    public MutationsRejectedException ouch4; // 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 {
      OUTCH1((short)1, "outch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3"),
      OUCH4((short)4, "ouch4");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUTCH1
            return OUTCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          case 4: // OUCH4
            return OUCH4;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUTCH1, new org.apache.thrift.meta_data.FieldMetaData("outch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH4, new org.apache.thrift.meta_data.FieldMetaData("ouch4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAndFlush_result.class, metaDataMap);
    }

    public updateAndFlush_result() {
    }

    public updateAndFlush_result(
      AccumuloException outch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3,
      MutationsRejectedException ouch4)
    {
      this();
      this.outch1 = outch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
      this.ouch4 = ouch4;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateAndFlush_result(updateAndFlush_result other) {
      if (other.isSetOutch1()) {
        this.outch1 = new AccumuloException(other.outch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
      if (other.isSetOuch4()) {
        this.ouch4 = new MutationsRejectedException(other.ouch4);
      }
    }

    public updateAndFlush_result deepCopy() {
      return new updateAndFlush_result(this);
    }

    @Override
    public void clear() {
      this.outch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
      this.ouch4 = null;
    }

    public AccumuloException getOutch1() {
      return this.outch1;
    }

    public updateAndFlush_result setOutch1(AccumuloException outch1) {
      this.outch1 = outch1;
      return this;
    }

    public void unsetOutch1() {
      this.outch1 = null;
    }

    /** Returns true if field outch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOutch1() {
      return this.outch1 != null;
    }

    public void setOutch1IsSet(boolean value) {
      if (!value) {
        this.outch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public updateAndFlush_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public updateAndFlush_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public MutationsRejectedException getOuch4() {
      return this.ouch4;
    }

    public updateAndFlush_result setOuch4(MutationsRejectedException ouch4) {
      this.ouch4 = ouch4;
      return this;
    }

    public void unsetOuch4() {
      this.ouch4 = null;
    }

    /** Returns true if field ouch4 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch4() {
      return this.ouch4 != null;
    }

    public void setOuch4IsSet(boolean value) {
      if (!value) {
        this.ouch4 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUTCH1:
        if (value == null) {
          unsetOutch1();
        } else {
          setOutch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      case OUCH4:
        if (value == null) {
          unsetOuch4();
        } else {
          setOuch4((MutationsRejectedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUTCH1:
        return getOutch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      case OUCH4:
        return getOuch4();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUTCH1:
        return isSetOutch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      case OUCH4:
        return isSetOuch4();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAndFlush_result)
        return this.equals((updateAndFlush_result)that);
      return false;
    }

    public boolean equals(updateAndFlush_result that) {
      if (that == null)
        return false;

      boolean this_present_outch1 = true && this.isSetOutch1();
      boolean that_present_outch1 = true && that.isSetOutch1();
      if (this_present_outch1 || that_present_outch1) {
        if (!(this_present_outch1 && that_present_outch1))
          return false;
        if (!this.outch1.equals(that.outch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      boolean this_present_ouch4 = true && this.isSetOuch4();
      boolean that_present_ouch4 = true && that.isSetOuch4();
      if (this_present_ouch4 || that_present_ouch4) {
        if (!(this_present_ouch4 && that_present_ouch4))
          return false;
        if (!this.ouch4.equals(that.ouch4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateAndFlush_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOutch1()).compareTo(other.isSetOutch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOutch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.outch1, other.outch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch4()).compareTo(other.isSetOuch4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch4, other.ouch4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAndFlush_result(");
      boolean first = true;

      sb.append("outch1:");
      if (this.outch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.outch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch4:");
      if (this.ouch4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch4);
      }
      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, 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 updateAndFlush_resultStandardSchemeFactory implements SchemeFactory {
      public updateAndFlush_resultStandardScheme getScheme() {
        return new updateAndFlush_resultStandardScheme();
      }
    }

    private static class updateAndFlush_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateAndFlush_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: // OUTCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.outch1 = new AccumuloException();
                struct.outch1.read(iprot);
                struct.setOutch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // OUCH4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch4 = new MutationsRejectedException();
                struct.ouch4.read(iprot);
                struct.setOuch4IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateAndFlush_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.outch1 != null) {
          oprot.writeFieldBegin(OUTCH1_FIELD_DESC);
          struct.outch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch4 != null) {
          oprot.writeFieldBegin(OUCH4_FIELD_DESC);
          struct.ouch4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateAndFlush_resultTupleSchemeFactory implements SchemeFactory {
      public updateAndFlush_resultTupleScheme getScheme() {
        return new updateAndFlush_resultTupleScheme();
      }
    }

    private static class updateAndFlush_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateAndFlush_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOutch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        if (struct.isSetOuch3()) {
          optionals.set(2);
        }
        if (struct.isSetOuch4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetOutch1()) {
          struct.outch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
        if (struct.isSetOuch4()) {
          struct.ouch4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateAndFlush_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.outch1 = new AccumuloException();
          struct.outch1.read(iprot);
          struct.setOutch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch4 = new MutationsRejectedException();
          struct.ouch4.read(iprot);
          struct.setOuch4IsSet(true);
        }
      }
    }

  }

  public static class createWriter_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createWriter_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField OPTS_FIELD_DESC = new org.apache.thrift.protocol.TField("opts", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createWriter_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createWriter_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public WriterOptions opts; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      OPTS((short)3, "opts");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // OPTS
            return OPTS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OPTS, new org.apache.thrift.meta_data.FieldMetaData("opts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WriterOptions.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createWriter_args.class, metaDataMap);
    }

    public createWriter_args() {
    }

    public createWriter_args(
      ByteBuffer login,
      String tableName,
      WriterOptions opts)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.opts = opts;
    }

    /**
     * Performs a deep copy on other.
     */
    public createWriter_args(createWriter_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetOpts()) {
        this.opts = new WriterOptions(other.opts);
      }
    }

    public createWriter_args deepCopy() {
      return new createWriter_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.opts = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createWriter_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createWriter_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public createWriter_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public WriterOptions getOpts() {
      return this.opts;
    }

    public createWriter_args setOpts(WriterOptions opts) {
      this.opts = opts;
      return this;
    }

    public void unsetOpts() {
      this.opts = null;
    }

    /** Returns true if field opts is set (has been assigned a value) and false otherwise */
    public boolean isSetOpts() {
      return this.opts != null;
    }

    public void setOptsIsSet(boolean value) {
      if (!value) {
        this.opts = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case OPTS:
        if (value == null) {
          unsetOpts();
        } else {
          setOpts((WriterOptions)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case OPTS:
        return getOpts();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case OPTS:
        return isSetOpts();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createWriter_args)
        return this.equals((createWriter_args)that);
      return false;
    }

    public boolean equals(createWriter_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_opts = true && this.isSetOpts();
      boolean that_present_opts = true && that.isSetOpts();
      if (this_present_opts || that_present_opts) {
        if (!(this_present_opts && that_present_opts))
          return false;
        if (!this.opts.equals(that.opts))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createWriter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOpts()).compareTo(other.isSetOpts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOpts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.opts, other.opts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createWriter_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("opts:");
      if (this.opts == null) {
        sb.append("null");
      } else {
        sb.append(this.opts);
      }
      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 (opts != null) {
        opts.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, 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 createWriter_argsStandardSchemeFactory implements SchemeFactory {
      public createWriter_argsStandardScheme getScheme() {
        return new createWriter_argsStandardScheme();
      }
    }

    private static class createWriter_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createWriter_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OPTS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.opts = new WriterOptions();
                struct.opts.read(iprot);
                struct.setOptsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createWriter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.opts != null) {
          oprot.writeFieldBegin(OPTS_FIELD_DESC);
          struct.opts.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createWriter_argsTupleSchemeFactory implements SchemeFactory {
      public createWriter_argsTupleScheme getScheme() {
        return new createWriter_argsTupleScheme();
      }
    }

    private static class createWriter_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetOpts()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetOpts()) {
          struct.opts.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.opts = new WriterOptions();
          struct.opts.read(iprot);
          struct.setOptsIsSet(true);
        }
      }
    }

  }

  public static class createWriter_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createWriter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUTCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("outch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createWriter_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createWriter_resultTupleSchemeFactory());
    }

    public String success; // required
    public AccumuloException outch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUTCH1((short)1, "outch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUTCH1
            return OUTCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OUTCH1, new org.apache.thrift.meta_data.FieldMetaData("outch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createWriter_result.class, metaDataMap);
    }

    public createWriter_result() {
    }

    public createWriter_result(
      String success,
      AccumuloException outch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.outch1 = outch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public createWriter_result(createWriter_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetOutch1()) {
        this.outch1 = new AccumuloException(other.outch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public createWriter_result deepCopy() {
      return new createWriter_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.outch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public createWriter_result setSuccess(String 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;
      }
    }

    public AccumuloException getOutch1() {
      return this.outch1;
    }

    public createWriter_result setOutch1(AccumuloException outch1) {
      this.outch1 = outch1;
      return this;
    }

    public void unsetOutch1() {
      this.outch1 = null;
    }

    /** Returns true if field outch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOutch1() {
      return this.outch1 != null;
    }

    public void setOutch1IsSet(boolean value) {
      if (!value) {
        this.outch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createWriter_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public createWriter_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case OUTCH1:
        if (value == null) {
          unsetOutch1();
        } else {
          setOutch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUTCH1:
        return getOutch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUTCH1:
        return isSetOutch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createWriter_result)
        return this.equals((createWriter_result)that);
      return false;
    }

    public boolean equals(createWriter_result that) {
      if (that == null)
        return false;

      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_outch1 = true && this.isSetOutch1();
      boolean that_present_outch1 = true && that.isSetOutch1();
      if (this_present_outch1 || that_present_outch1) {
        if (!(this_present_outch1 && that_present_outch1))
          return false;
        if (!this.outch1.equals(that.outch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createWriter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOutch1()).compareTo(other.isSetOutch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOutch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.outch1, other.outch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createWriter_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("outch1:");
      if (this.outch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.outch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 createWriter_resultStandardSchemeFactory implements SchemeFactory {
      public createWriter_resultStandardScheme getScheme() {
        return new createWriter_resultStandardScheme();
      }
    }

    private static class createWriter_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createWriter_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.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUTCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.outch1 = new AccumuloException();
                struct.outch1.read(iprot);
                struct.setOutch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createWriter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.outch1 != null) {
          oprot.writeFieldBegin(OUTCH1_FIELD_DESC);
          struct.outch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createWriter_resultTupleSchemeFactory implements SchemeFactory {
      public createWriter_resultTupleScheme getScheme() {
        return new createWriter_resultTupleScheme();
      }
    }

    private static class createWriter_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOutch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetOutch1()) {
          struct.outch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.outch1 = new AccumuloException();
          struct.outch1.read(iprot);
          struct.setOutch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class update_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_args");

    private static final org.apache.thrift.protocol.TField WRITER_FIELD_DESC = new org.apache.thrift.protocol.TField("writer", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField CELLS_FIELD_DESC = new org.apache.thrift.protocol.TField("cells", org.apache.thrift.protocol.TType.MAP, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new update_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new update_argsTupleSchemeFactory());
    }

    public String writer; // required
    public Map> cells; // 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 {
      WRITER((short)1, "writer"),
      CELLS((short)2, "cells");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // WRITER
            return WRITER;
          case 2: // CELLS
            return CELLS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.WRITER, new org.apache.thrift.meta_data.FieldMetaData("writer", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CELLS, new org.apache.thrift.meta_data.FieldMetaData("cells", 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              , true), 
              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, ColumnUpdate.class)))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_args.class, metaDataMap);
    }

    public update_args() {
    }

    public update_args(
      String writer,
      Map> cells)
    {
      this();
      this.writer = writer;
      this.cells = cells;
    }

    /**
     * Performs a deep copy on other.
     */
    public update_args(update_args other) {
      if (other.isSetWriter()) {
        this.writer = other.writer;
      }
      if (other.isSetCells()) {
        Map> __this__cells = new HashMap>(other.cells.size());
        for (Map.Entry> other_element : other.cells.entrySet()) {

          ByteBuffer other_element_key = other_element.getKey();
          List other_element_value = other_element.getValue();

          ByteBuffer __this__cells_copy_key = org.apache.thrift.TBaseHelper.copyBinary(other_element_key);
;

          List __this__cells_copy_value = new ArrayList(other_element_value.size());
          for (ColumnUpdate other_element_value_element : other_element_value) {
            __this__cells_copy_value.add(new ColumnUpdate(other_element_value_element));
          }

          __this__cells.put(__this__cells_copy_key, __this__cells_copy_value);
        }
        this.cells = __this__cells;
      }
    }

    public update_args deepCopy() {
      return new update_args(this);
    }

    @Override
    public void clear() {
      this.writer = null;
      this.cells = null;
    }

    public String getWriter() {
      return this.writer;
    }

    public update_args setWriter(String writer) {
      this.writer = writer;
      return this;
    }

    public void unsetWriter() {
      this.writer = null;
    }

    /** Returns true if field writer is set (has been assigned a value) and false otherwise */
    public boolean isSetWriter() {
      return this.writer != null;
    }

    public void setWriterIsSet(boolean value) {
      if (!value) {
        this.writer = null;
      }
    }

    public int getCellsSize() {
      return (this.cells == null) ? 0 : this.cells.size();
    }

    public void putToCells(ByteBuffer key, List val) {
      if (this.cells == null) {
        this.cells = new HashMap>();
      }
      this.cells.put(key, val);
    }

    public Map> getCells() {
      return this.cells;
    }

    public update_args setCells(Map> cells) {
      this.cells = cells;
      return this;
    }

    public void unsetCells() {
      this.cells = null;
    }

    /** Returns true if field cells is set (has been assigned a value) and false otherwise */
    public boolean isSetCells() {
      return this.cells != null;
    }

    public void setCellsIsSet(boolean value) {
      if (!value) {
        this.cells = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case WRITER:
        if (value == null) {
          unsetWriter();
        } else {
          setWriter((String)value);
        }
        break;

      case CELLS:
        if (value == null) {
          unsetCells();
        } else {
          setCells((Map>)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case WRITER:
        return getWriter();

      case CELLS:
        return getCells();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case WRITER:
        return isSetWriter();
      case CELLS:
        return isSetCells();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof update_args)
        return this.equals((update_args)that);
      return false;
    }

    public boolean equals(update_args that) {
      if (that == null)
        return false;

      boolean this_present_writer = true && this.isSetWriter();
      boolean that_present_writer = true && that.isSetWriter();
      if (this_present_writer || that_present_writer) {
        if (!(this_present_writer && that_present_writer))
          return false;
        if (!this.writer.equals(that.writer))
          return false;
      }

      boolean this_present_cells = true && this.isSetCells();
      boolean that_present_cells = true && that.isSetCells();
      if (this_present_cells || that_present_cells) {
        if (!(this_present_cells && that_present_cells))
          return false;
        if (!this.cells.equals(that.cells))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(update_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetWriter()).compareTo(other.isSetWriter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWriter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.writer, other.writer);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCells()).compareTo(other.isSetCells());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCells()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cells, other.cells);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("update_args(");
      boolean first = true;

      sb.append("writer:");
      if (this.writer == null) {
        sb.append("null");
      } else {
        sb.append(this.writer);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("cells:");
      if (this.cells == null) {
        sb.append("null");
      } else {
        sb.append(this.cells);
      }
      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, 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 update_argsStandardSchemeFactory implements SchemeFactory {
      public update_argsStandardScheme getScheme() {
        return new update_argsStandardScheme();
      }
    }

    private static class update_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_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 1: // WRITER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.writer = iprot.readString();
                struct.setWriterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // CELLS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map460 = iprot.readMapBegin();
                  struct.cells = new HashMap>(2*_map460.size);
                  for (int _i461 = 0; _i461 < _map460.size; ++_i461)
                  {
                    ByteBuffer _key462;
                    List _val463;
                    _key462 = iprot.readBinary();
                    {
                      org.apache.thrift.protocol.TList _list464 = iprot.readListBegin();
                      _val463 = new ArrayList(_list464.size);
                      for (int _i465 = 0; _i465 < _list464.size; ++_i465)
                      {
                        ColumnUpdate _elem466;
                        _elem466 = new ColumnUpdate();
                        _elem466.read(iprot);
                        _val463.add(_elem466);
                      }
                      iprot.readListEnd();
                    }
                    struct.cells.put(_key462, _val463);
                  }
                  iprot.readMapEnd();
                }
                struct.setCellsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.writer != null) {
          oprot.writeFieldBegin(WRITER_FIELD_DESC);
          oprot.writeString(struct.writer);
          oprot.writeFieldEnd();
        }
        if (struct.cells != null) {
          oprot.writeFieldBegin(CELLS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.cells.size()));
            for (Map.Entry> _iter467 : struct.cells.entrySet())
            {
              oprot.writeBinary(_iter467.getKey());
              {
                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter467.getValue().size()));
                for (ColumnUpdate _iter468 : _iter467.getValue())
                {
                  _iter468.write(oprot);
                }
                oprot.writeListEnd();
              }
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_argsTupleSchemeFactory implements SchemeFactory {
      public update_argsTupleScheme getScheme() {
        return new update_argsTupleScheme();
      }
    }

    private static class update_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetWriter()) {
          optionals.set(0);
        }
        if (struct.isSetCells()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetWriter()) {
          oprot.writeString(struct.writer);
        }
        if (struct.isSetCells()) {
          {
            oprot.writeI32(struct.cells.size());
            for (Map.Entry> _iter469 : struct.cells.entrySet())
            {
              oprot.writeBinary(_iter469.getKey());
              {
                oprot.writeI32(_iter469.getValue().size());
                for (ColumnUpdate _iter470 : _iter469.getValue())
                {
                  _iter470.write(oprot);
                }
              }
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.writer = iprot.readString();
          struct.setWriterIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TMap _map471 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
            struct.cells = new HashMap>(2*_map471.size);
            for (int _i472 = 0; _i472 < _map471.size; ++_i472)
            {
              ByteBuffer _key473;
              List _val474;
              _key473 = iprot.readBinary();
              {
                org.apache.thrift.protocol.TList _list475 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
                _val474 = new ArrayList(_list475.size);
                for (int _i476 = 0; _i476 < _list475.size; ++_i476)
                {
                  ColumnUpdate _elem477;
                  _elem477 = new ColumnUpdate();
                  _elem477.read(iprot);
                  _val474.add(_elem477);
                }
              }
              struct.cells.put(_key473, _val474);
            }
          }
          struct.setCellsIsSet(true);
        }
      }
    }

  }

  public static class flush_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flush_args");

    private static final org.apache.thrift.protocol.TField WRITER_FIELD_DESC = new org.apache.thrift.protocol.TField("writer", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new flush_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new flush_argsTupleSchemeFactory());
    }

    public String writer; // 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 {
      WRITER((short)1, "writer");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // WRITER
            return WRITER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.WRITER, new org.apache.thrift.meta_data.FieldMetaData("writer", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flush_args.class, metaDataMap);
    }

    public flush_args() {
    }

    public flush_args(
      String writer)
    {
      this();
      this.writer = writer;
    }

    /**
     * Performs a deep copy on other.
     */
    public flush_args(flush_args other) {
      if (other.isSetWriter()) {
        this.writer = other.writer;
      }
    }

    public flush_args deepCopy() {
      return new flush_args(this);
    }

    @Override
    public void clear() {
      this.writer = null;
    }

    public String getWriter() {
      return this.writer;
    }

    public flush_args setWriter(String writer) {
      this.writer = writer;
      return this;
    }

    public void unsetWriter() {
      this.writer = null;
    }

    /** Returns true if field writer is set (has been assigned a value) and false otherwise */
    public boolean isSetWriter() {
      return this.writer != null;
    }

    public void setWriterIsSet(boolean value) {
      if (!value) {
        this.writer = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case WRITER:
        if (value == null) {
          unsetWriter();
        } else {
          setWriter((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case WRITER:
        return getWriter();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case WRITER:
        return isSetWriter();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof flush_args)
        return this.equals((flush_args)that);
      return false;
    }

    public boolean equals(flush_args that) {
      if (that == null)
        return false;

      boolean this_present_writer = true && this.isSetWriter();
      boolean that_present_writer = true && that.isSetWriter();
      if (this_present_writer || that_present_writer) {
        if (!(this_present_writer && that_present_writer))
          return false;
        if (!this.writer.equals(that.writer))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(flush_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetWriter()).compareTo(other.isSetWriter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWriter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.writer, other.writer);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("flush_args(");
      boolean first = true;

      sb.append("writer:");
      if (this.writer == null) {
        sb.append("null");
      } else {
        sb.append(this.writer);
      }
      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, 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 flush_argsStandardSchemeFactory implements SchemeFactory {
      public flush_argsStandardScheme getScheme() {
        return new flush_argsStandardScheme();
      }
    }

    private static class flush_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flush_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 1: // WRITER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.writer = iprot.readString();
                struct.setWriterIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, flush_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.writer != null) {
          oprot.writeFieldBegin(WRITER_FIELD_DESC);
          oprot.writeString(struct.writer);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flush_argsTupleSchemeFactory implements SchemeFactory {
      public flush_argsTupleScheme getScheme() {
        return new flush_argsTupleScheme();
      }
    }

    private static class flush_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flush_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetWriter()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetWriter()) {
          oprot.writeString(struct.writer);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flush_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.writer = iprot.readString();
          struct.setWriterIsSet(true);
        }
      }
    }

  }

  public static class flush_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flush_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new flush_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new flush_resultTupleSchemeFactory());
    }

    public UnknownWriter ouch1; // required
    public MutationsRejectedException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flush_result.class, metaDataMap);
    }

    public flush_result() {
    }

    public flush_result(
      UnknownWriter ouch1,
      MutationsRejectedException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public flush_result(flush_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new UnknownWriter(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new MutationsRejectedException(other.ouch2);
      }
    }

    public flush_result deepCopy() {
      return new flush_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public UnknownWriter getOuch1() {
      return this.ouch1;
    }

    public flush_result setOuch1(UnknownWriter ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public MutationsRejectedException getOuch2() {
      return this.ouch2;
    }

    public flush_result setOuch2(MutationsRejectedException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((UnknownWriter)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((MutationsRejectedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof flush_result)
        return this.equals((flush_result)that);
      return false;
    }

    public boolean equals(flush_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(flush_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("flush_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 flush_resultStandardSchemeFactory implements SchemeFactory {
      public flush_resultStandardScheme getScheme() {
        return new flush_resultStandardScheme();
      }
    }

    private static class flush_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flush_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new UnknownWriter();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new MutationsRejectedException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, flush_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flush_resultTupleSchemeFactory implements SchemeFactory {
      public flush_resultTupleScheme getScheme() {
        return new flush_resultTupleScheme();
      }
    }

    private static class flush_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flush_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flush_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new UnknownWriter();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new MutationsRejectedException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class closeWriter_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeWriter_args");

    private static final org.apache.thrift.protocol.TField WRITER_FIELD_DESC = new org.apache.thrift.protocol.TField("writer", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeWriter_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeWriter_argsTupleSchemeFactory());
    }

    public String writer; // 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 {
      WRITER((short)1, "writer");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // WRITER
            return WRITER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.WRITER, new org.apache.thrift.meta_data.FieldMetaData("writer", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeWriter_args.class, metaDataMap);
    }

    public closeWriter_args() {
    }

    public closeWriter_args(
      String writer)
    {
      this();
      this.writer = writer;
    }

    /**
     * Performs a deep copy on other.
     */
    public closeWriter_args(closeWriter_args other) {
      if (other.isSetWriter()) {
        this.writer = other.writer;
      }
    }

    public closeWriter_args deepCopy() {
      return new closeWriter_args(this);
    }

    @Override
    public void clear() {
      this.writer = null;
    }

    public String getWriter() {
      return this.writer;
    }

    public closeWriter_args setWriter(String writer) {
      this.writer = writer;
      return this;
    }

    public void unsetWriter() {
      this.writer = null;
    }

    /** Returns true if field writer is set (has been assigned a value) and false otherwise */
    public boolean isSetWriter() {
      return this.writer != null;
    }

    public void setWriterIsSet(boolean value) {
      if (!value) {
        this.writer = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case WRITER:
        if (value == null) {
          unsetWriter();
        } else {
          setWriter((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case WRITER:
        return getWriter();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case WRITER:
        return isSetWriter();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeWriter_args)
        return this.equals((closeWriter_args)that);
      return false;
    }

    public boolean equals(closeWriter_args that) {
      if (that == null)
        return false;

      boolean this_present_writer = true && this.isSetWriter();
      boolean that_present_writer = true && that.isSetWriter();
      if (this_present_writer || that_present_writer) {
        if (!(this_present_writer && that_present_writer))
          return false;
        if (!this.writer.equals(that.writer))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeWriter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetWriter()).compareTo(other.isSetWriter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWriter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.writer, other.writer);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeWriter_args(");
      boolean first = true;

      sb.append("writer:");
      if (this.writer == null) {
        sb.append("null");
      } else {
        sb.append(this.writer);
      }
      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, 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 closeWriter_argsStandardSchemeFactory implements SchemeFactory {
      public closeWriter_argsStandardScheme getScheme() {
        return new closeWriter_argsStandardScheme();
      }
    }

    private static class closeWriter_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeWriter_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 1: // WRITER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.writer = iprot.readString();
                struct.setWriterIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeWriter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.writer != null) {
          oprot.writeFieldBegin(WRITER_FIELD_DESC);
          oprot.writeString(struct.writer);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeWriter_argsTupleSchemeFactory implements SchemeFactory {
      public closeWriter_argsTupleScheme getScheme() {
        return new closeWriter_argsTupleScheme();
      }
    }

    private static class closeWriter_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetWriter()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetWriter()) {
          oprot.writeString(struct.writer);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.writer = iprot.readString();
          struct.setWriterIsSet(true);
        }
      }
    }

  }

  public static class closeWriter_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeWriter_result");

    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeWriter_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeWriter_resultTupleSchemeFactory());
    }

    public UnknownWriter ouch1; // required
    public MutationsRejectedException ouch2; // 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 {
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeWriter_result.class, metaDataMap);
    }

    public closeWriter_result() {
    }

    public closeWriter_result(
      UnknownWriter ouch1,
      MutationsRejectedException ouch2)
    {
      this();
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
    }

    /**
     * Performs a deep copy on other.
     */
    public closeWriter_result(closeWriter_result other) {
      if (other.isSetOuch1()) {
        this.ouch1 = new UnknownWriter(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new MutationsRejectedException(other.ouch2);
      }
    }

    public closeWriter_result deepCopy() {
      return new closeWriter_result(this);
    }

    @Override
    public void clear() {
      this.ouch1 = null;
      this.ouch2 = null;
    }

    public UnknownWriter getOuch1() {
      return this.ouch1;
    }

    public closeWriter_result setOuch1(UnknownWriter ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public MutationsRejectedException getOuch2() {
      return this.ouch2;
    }

    public closeWriter_result setOuch2(MutationsRejectedException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((UnknownWriter)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((MutationsRejectedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeWriter_result)
        return this.equals((closeWriter_result)that);
      return false;
    }

    public boolean equals(closeWriter_result that) {
      if (that == null)
        return false;

      boolean this_present_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeWriter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeWriter_result(");
      boolean first = true;

      sb.append("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      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, 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 closeWriter_resultStandardSchemeFactory implements SchemeFactory {
      public closeWriter_resultStandardScheme getScheme() {
        return new closeWriter_resultStandardScheme();
      }
    }

    private static class closeWriter_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeWriter_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: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new UnknownWriter();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new MutationsRejectedException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeWriter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeWriter_resultTupleSchemeFactory implements SchemeFactory {
      public closeWriter_resultTupleScheme getScheme() {
        return new closeWriter_resultTupleScheme();
      }
    }

    private static class closeWriter_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetOuch1()) {
          optionals.set(0);
        }
        if (struct.isSetOuch2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.ouch1 = new UnknownWriter();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch2 = new MutationsRejectedException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
      }
    }

  }

  public static class updateRowConditionally_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateRowConditionally_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("row", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField UPDATES_FIELD_DESC = new org.apache.thrift.protocol.TField("updates", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateRowConditionally_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateRowConditionally_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ByteBuffer row; // required
    public ConditionalUpdates updates; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      ROW((short)3, "row"),
      UPDATES((short)4, "updates");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // ROW
            return ROW;
          case 4: // UPDATES
            return UPDATES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ROW, new org.apache.thrift.meta_data.FieldMetaData("row", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.UPDATES, new org.apache.thrift.meta_data.FieldMetaData("updates", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ConditionalUpdates.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateRowConditionally_args.class, metaDataMap);
    }

    public updateRowConditionally_args() {
    }

    public updateRowConditionally_args(
      ByteBuffer login,
      String tableName,
      ByteBuffer row,
      ConditionalUpdates updates)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.row = row;
      this.updates = updates;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateRowConditionally_args(updateRowConditionally_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetRow()) {
        this.row = org.apache.thrift.TBaseHelper.copyBinary(other.row);
;
      }
      if (other.isSetUpdates()) {
        this.updates = new ConditionalUpdates(other.updates);
      }
    }

    public updateRowConditionally_args deepCopy() {
      return new updateRowConditionally_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.row = null;
      this.updates = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public updateRowConditionally_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public updateRowConditionally_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public updateRowConditionally_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public byte[] getRow() {
      setRow(org.apache.thrift.TBaseHelper.rightSize(row));
      return row == null ? null : row.array();
    }

    public ByteBuffer bufferForRow() {
      return row;
    }

    public updateRowConditionally_args setRow(byte[] row) {
      setRow(row == null ? (ByteBuffer)null : ByteBuffer.wrap(row));
      return this;
    }

    public updateRowConditionally_args setRow(ByteBuffer row) {
      this.row = row;
      return this;
    }

    public void unsetRow() {
      this.row = null;
    }

    /** Returns true if field row is set (has been assigned a value) and false otherwise */
    public boolean isSetRow() {
      return this.row != null;
    }

    public void setRowIsSet(boolean value) {
      if (!value) {
        this.row = null;
      }
    }

    public ConditionalUpdates getUpdates() {
      return this.updates;
    }

    public updateRowConditionally_args setUpdates(ConditionalUpdates updates) {
      this.updates = updates;
      return this;
    }

    public void unsetUpdates() {
      this.updates = null;
    }

    /** Returns true if field updates is set (has been assigned a value) and false otherwise */
    public boolean isSetUpdates() {
      return this.updates != null;
    }

    public void setUpdatesIsSet(boolean value) {
      if (!value) {
        this.updates = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case ROW:
        if (value == null) {
          unsetRow();
        } else {
          setRow((ByteBuffer)value);
        }
        break;

      case UPDATES:
        if (value == null) {
          unsetUpdates();
        } else {
          setUpdates((ConditionalUpdates)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case ROW:
        return getRow();

      case UPDATES:
        return getUpdates();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case ROW:
        return isSetRow();
      case UPDATES:
        return isSetUpdates();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateRowConditionally_args)
        return this.equals((updateRowConditionally_args)that);
      return false;
    }

    public boolean equals(updateRowConditionally_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_row = true && this.isSetRow();
      boolean that_present_row = true && that.isSetRow();
      if (this_present_row || that_present_row) {
        if (!(this_present_row && that_present_row))
          return false;
        if (!this.row.equals(that.row))
          return false;
      }

      boolean this_present_updates = true && this.isSetUpdates();
      boolean that_present_updates = true && that.isSetUpdates();
      if (this_present_updates || that_present_updates) {
        if (!(this_present_updates && that_present_updates))
          return false;
        if (!this.updates.equals(that.updates))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateRowConditionally_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetRow()).compareTo(other.isSetRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.row, other.row);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUpdates()).compareTo(other.isSetUpdates());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUpdates()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updates, other.updates);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateRowConditionally_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("row:");
      if (this.row == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.row, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("updates:");
      if (this.updates == null) {
        sb.append("null");
      } else {
        sb.append(this.updates);
      }
      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 (updates != null) {
        updates.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, 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 updateRowConditionally_argsStandardSchemeFactory implements SchemeFactory {
      public updateRowConditionally_argsStandardScheme getScheme() {
        return new updateRowConditionally_argsStandardScheme();
      }
    }

    private static class updateRowConditionally_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateRowConditionally_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.row = iprot.readBinary();
                struct.setRowIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // UPDATES
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.updates = new ConditionalUpdates();
                struct.updates.read(iprot);
                struct.setUpdatesIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateRowConditionally_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.row != null) {
          oprot.writeFieldBegin(ROW_FIELD_DESC);
          oprot.writeBinary(struct.row);
          oprot.writeFieldEnd();
        }
        if (struct.updates != null) {
          oprot.writeFieldBegin(UPDATES_FIELD_DESC);
          struct.updates.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateRowConditionally_argsTupleSchemeFactory implements SchemeFactory {
      public updateRowConditionally_argsTupleScheme getScheme() {
        return new updateRowConditionally_argsTupleScheme();
      }
    }

    private static class updateRowConditionally_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateRowConditionally_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetRow()) {
          optionals.set(2);
        }
        if (struct.isSetUpdates()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetRow()) {
          oprot.writeBinary(struct.row);
        }
        if (struct.isSetUpdates()) {
          struct.updates.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateRowConditionally_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.row = iprot.readBinary();
          struct.setRowIsSet(true);
        }
        if (incoming.get(3)) {
          struct.updates = new ConditionalUpdates();
          struct.updates.read(iprot);
          struct.setUpdatesIsSet(true);
        }
      }
    }

  }

  public static class updateRowConditionally_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateRowConditionally_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateRowConditionally_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateRowConditionally_resultTupleSchemeFactory());
    }

    /**
     * 
     * @see ConditionalStatus
     */
    public ConditionalStatus success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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 {
      /**
       * 
       * @see ConditionalStatus
       */
      SUCCESS((short)0, "success"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ConditionalStatus.class)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateRowConditionally_result.class, metaDataMap);
    }

    public updateRowConditionally_result() {
    }

    public updateRowConditionally_result(
      ConditionalStatus success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateRowConditionally_result(updateRowConditionally_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public updateRowConditionally_result deepCopy() {
      return new updateRowConditionally_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    /**
     * 
     * @see ConditionalStatus
     */
    public ConditionalStatus getSuccess() {
      return this.success;
    }

    /**
     * 
     * @see ConditionalStatus
     */
    public updateRowConditionally_result setSuccess(ConditionalStatus 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public updateRowConditionally_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public updateRowConditionally_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public updateRowConditionally_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ConditionalStatus)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateRowConditionally_result)
        return this.equals((updateRowConditionally_result)that);
      return false;
    }

    public boolean equals(updateRowConditionally_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateRowConditionally_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateRowConditionally_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 updateRowConditionally_resultStandardSchemeFactory implements SchemeFactory {
      public updateRowConditionally_resultStandardScheme getScheme() {
        return new updateRowConditionally_resultStandardScheme();
      }
    }

    private static class updateRowConditionally_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateRowConditionally_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.I32) {
                struct.success = ConditionalStatus.findByValue(iprot.readI32());
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateRowConditionally_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success.getValue());
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateRowConditionally_resultTupleSchemeFactory implements SchemeFactory {
      public updateRowConditionally_resultTupleScheme getScheme() {
        return new updateRowConditionally_resultTupleScheme();
      }
    }

    private static class updateRowConditionally_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateRowConditionally_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success.getValue());
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateRowConditionally_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = ConditionalStatus.findByValue(iprot.readI32());
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class createConditionalWriter_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createConditionalWriter_args");

    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createConditionalWriter_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createConditionalWriter_argsTupleSchemeFactory());
    }

    public ByteBuffer login; // required
    public String tableName; // required
    public ConditionalWriterOptions options; // 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 {
      LOGIN((short)1, "login"),
      TABLE_NAME((short)2, "tableName"),
      OPTIONS((short)3, "options");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGIN
            return LOGIN;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // OPTIONS
            return OPTIONS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ConditionalWriterOptions.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createConditionalWriter_args.class, metaDataMap);
    }

    public createConditionalWriter_args() {
    }

    public createConditionalWriter_args(
      ByteBuffer login,
      String tableName,
      ConditionalWriterOptions options)
    {
      this();
      this.login = login;
      this.tableName = tableName;
      this.options = options;
    }

    /**
     * Performs a deep copy on other.
     */
    public createConditionalWriter_args(createConditionalWriter_args other) {
      if (other.isSetLogin()) {
        this.login = org.apache.thrift.TBaseHelper.copyBinary(other.login);
;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetOptions()) {
        this.options = new ConditionalWriterOptions(other.options);
      }
    }

    public createConditionalWriter_args deepCopy() {
      return new createConditionalWriter_args(this);
    }

    @Override
    public void clear() {
      this.login = null;
      this.tableName = null;
      this.options = null;
    }

    public byte[] getLogin() {
      setLogin(org.apache.thrift.TBaseHelper.rightSize(login));
      return login == null ? null : login.array();
    }

    public ByteBuffer bufferForLogin() {
      return login;
    }

    public createConditionalWriter_args setLogin(byte[] login) {
      setLogin(login == null ? (ByteBuffer)null : ByteBuffer.wrap(login));
      return this;
    }

    public createConditionalWriter_args setLogin(ByteBuffer login) {
      this.login = login;
      return this;
    }

    public void unsetLogin() {
      this.login = null;
    }

    /** Returns true if field login is set (has been assigned a value) and false otherwise */
    public boolean isSetLogin() {
      return this.login != null;
    }

    public void setLoginIsSet(boolean value) {
      if (!value) {
        this.login = null;
      }
    }

    public String getTableName() {
      return this.tableName;
    }

    public createConditionalWriter_args setTableName(String tableName) {
      this.tableName = tableName;
      return this;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public ConditionalWriterOptions getOptions() {
      return this.options;
    }

    public createConditionalWriter_args setOptions(ConditionalWriterOptions options) {
      this.options = options;
      return this;
    }

    public void unsetOptions() {
      this.options = null;
    }

    /** Returns true if field options is set (has been assigned a value) and false otherwise */
    public boolean isSetOptions() {
      return this.options != null;
    }

    public void setOptionsIsSet(boolean value) {
      if (!value) {
        this.options = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGIN:
        if (value == null) {
          unsetLogin();
        } else {
          setLogin((ByteBuffer)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((String)value);
        }
        break;

      case OPTIONS:
        if (value == null) {
          unsetOptions();
        } else {
          setOptions((ConditionalWriterOptions)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGIN:
        return getLogin();

      case TABLE_NAME:
        return getTableName();

      case OPTIONS:
        return getOptions();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case LOGIN:
        return isSetLogin();
      case TABLE_NAME:
        return isSetTableName();
      case OPTIONS:
        return isSetOptions();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createConditionalWriter_args)
        return this.equals((createConditionalWriter_args)that);
      return false;
    }

    public boolean equals(createConditionalWriter_args that) {
      if (that == null)
        return false;

      boolean this_present_login = true && this.isSetLogin();
      boolean that_present_login = true && that.isSetLogin();
      if (this_present_login || that_present_login) {
        if (!(this_present_login && that_present_login))
          return false;
        if (!this.login.equals(that.login))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_options = true && this.isSetOptions();
      boolean that_present_options = true && that.isSetOptions();
      if (this_present_options || that_present_options) {
        if (!(this_present_options && that_present_options))
          return false;
        if (!this.options.equals(that.options))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createConditionalWriter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(other.isSetLogin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, other.login);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOptions()).compareTo(other.isSetOptions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOptions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, other.options);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createConditionalWriter_args(");
      boolean first = true;

      sb.append("login:");
      if (this.login == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.login, sb);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("options:");
      if (this.options == null) {
        sb.append("null");
      } else {
        sb.append(this.options);
      }
      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 (options != null) {
        options.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, 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 createConditionalWriter_argsStandardSchemeFactory implements SchemeFactory {
      public createConditionalWriter_argsStandardScheme getScheme() {
        return new createConditionalWriter_argsStandardScheme();
      }
    }

    private static class createConditionalWriter_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createConditionalWriter_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 1: // LOGIN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.login = iprot.readBinary();
                struct.setLoginIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OPTIONS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.options = new ConditionalWriterOptions();
                struct.options.read(iprot);
                struct.setOptionsIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createConditionalWriter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.login != null) {
          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
          oprot.writeBinary(struct.login);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.options != null) {
          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
          struct.options.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createConditionalWriter_argsTupleSchemeFactory implements SchemeFactory {
      public createConditionalWriter_argsTupleScheme getScheme() {
        return new createConditionalWriter_argsTupleScheme();
      }
    }

    private static class createConditionalWriter_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createConditionalWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetLogin()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetOptions()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetLogin()) {
          oprot.writeBinary(struct.login);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetOptions()) {
          struct.options.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createConditionalWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.login = iprot.readBinary();
          struct.setLoginIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.options = new ConditionalWriterOptions();
          struct.options.read(iprot);
          struct.setOptionsIsSet(true);
        }
      }
    }

  }

  public static class createConditionalWriter_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createConditionalWriter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new createConditionalWriter_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new createConditionalWriter_resultTupleSchemeFactory());
    }

    public String success; // required
    public AccumuloException ouch1; // required
    public AccumuloSecurityException ouch2; // required
    public TableNotFoundException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createConditionalWriter_result.class, metaDataMap);
    }

    public createConditionalWriter_result() {
    }

    public createConditionalWriter_result(
      String success,
      AccumuloException ouch1,
      AccumuloSecurityException ouch2,
      TableNotFoundException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public createConditionalWriter_result(createConditionalWriter_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new AccumuloException(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloSecurityException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new TableNotFoundException(other.ouch3);
      }
    }

    public createConditionalWriter_result deepCopy() {
      return new createConditionalWriter_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public createConditionalWriter_result setSuccess(String 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;
      }
    }

    public AccumuloException getOuch1() {
      return this.ouch1;
    }

    public createConditionalWriter_result setOuch1(AccumuloException ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloSecurityException getOuch2() {
      return this.ouch2;
    }

    public createConditionalWriter_result setOuch2(AccumuloSecurityException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public TableNotFoundException getOuch3() {
      return this.ouch3;
    }

    public createConditionalWriter_result setOuch3(TableNotFoundException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((AccumuloException)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloSecurityException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((TableNotFoundException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof createConditionalWriter_result)
        return this.equals((createConditionalWriter_result)that);
      return false;
    }

    public boolean equals(createConditionalWriter_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(createConditionalWriter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("createConditionalWriter_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 createConditionalWriter_resultStandardSchemeFactory implements SchemeFactory {
      public createConditionalWriter_resultStandardScheme getScheme() {
        return new createConditionalWriter_resultStandardScheme();
      }
    }

    private static class createConditionalWriter_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, createConditionalWriter_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.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new AccumuloException();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloSecurityException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new TableNotFoundException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, createConditionalWriter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class createConditionalWriter_resultTupleSchemeFactory implements SchemeFactory {
      public createConditionalWriter_resultTupleScheme getScheme() {
        return new createConditionalWriter_resultTupleScheme();
      }
    }

    private static class createConditionalWriter_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, createConditionalWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, createConditionalWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new AccumuloException();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloSecurityException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new TableNotFoundException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class updateRowsConditionally_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateRowsConditionally_args");

    private static final org.apache.thrift.protocol.TField CONDITIONAL_WRITER_FIELD_DESC = new org.apache.thrift.protocol.TField("conditionalWriter", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField UPDATES_FIELD_DESC = new org.apache.thrift.protocol.TField("updates", org.apache.thrift.protocol.TType.MAP, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateRowsConditionally_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateRowsConditionally_argsTupleSchemeFactory());
    }

    public String conditionalWriter; // required
    public Map updates; // 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 {
      CONDITIONAL_WRITER((short)1, "conditionalWriter"),
      UPDATES((short)2, "updates");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CONDITIONAL_WRITER
            return CONDITIONAL_WRITER;
          case 2: // UPDATES
            return UPDATES;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CONDITIONAL_WRITER, new org.apache.thrift.meta_data.FieldMetaData("conditionalWriter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.UPDATES, new org.apache.thrift.meta_data.FieldMetaData("updates", 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              , true), 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ConditionalUpdates.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateRowsConditionally_args.class, metaDataMap);
    }

    public updateRowsConditionally_args() {
    }

    public updateRowsConditionally_args(
      String conditionalWriter,
      Map updates)
    {
      this();
      this.conditionalWriter = conditionalWriter;
      this.updates = updates;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateRowsConditionally_args(updateRowsConditionally_args other) {
      if (other.isSetConditionalWriter()) {
        this.conditionalWriter = other.conditionalWriter;
      }
      if (other.isSetUpdates()) {
        Map __this__updates = new HashMap(other.updates.size());
        for (Map.Entry other_element : other.updates.entrySet()) {

          ByteBuffer other_element_key = other_element.getKey();
          ConditionalUpdates other_element_value = other_element.getValue();

          ByteBuffer __this__updates_copy_key = org.apache.thrift.TBaseHelper.copyBinary(other_element_key);
;

          ConditionalUpdates __this__updates_copy_value = new ConditionalUpdates(other_element_value);

          __this__updates.put(__this__updates_copy_key, __this__updates_copy_value);
        }
        this.updates = __this__updates;
      }
    }

    public updateRowsConditionally_args deepCopy() {
      return new updateRowsConditionally_args(this);
    }

    @Override
    public void clear() {
      this.conditionalWriter = null;
      this.updates = null;
    }

    public String getConditionalWriter() {
      return this.conditionalWriter;
    }

    public updateRowsConditionally_args setConditionalWriter(String conditionalWriter) {
      this.conditionalWriter = conditionalWriter;
      return this;
    }

    public void unsetConditionalWriter() {
      this.conditionalWriter = null;
    }

    /** Returns true if field conditionalWriter is set (has been assigned a value) and false otherwise */
    public boolean isSetConditionalWriter() {
      return this.conditionalWriter != null;
    }

    public void setConditionalWriterIsSet(boolean value) {
      if (!value) {
        this.conditionalWriter = null;
      }
    }

    public int getUpdatesSize() {
      return (this.updates == null) ? 0 : this.updates.size();
    }

    public void putToUpdates(ByteBuffer key, ConditionalUpdates val) {
      if (this.updates == null) {
        this.updates = new HashMap();
      }
      this.updates.put(key, val);
    }

    public Map getUpdates() {
      return this.updates;
    }

    public updateRowsConditionally_args setUpdates(Map updates) {
      this.updates = updates;
      return this;
    }

    public void unsetUpdates() {
      this.updates = null;
    }

    /** Returns true if field updates is set (has been assigned a value) and false otherwise */
    public boolean isSetUpdates() {
      return this.updates != null;
    }

    public void setUpdatesIsSet(boolean value) {
      if (!value) {
        this.updates = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CONDITIONAL_WRITER:
        if (value == null) {
          unsetConditionalWriter();
        } else {
          setConditionalWriter((String)value);
        }
        break;

      case UPDATES:
        if (value == null) {
          unsetUpdates();
        } else {
          setUpdates((Map)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CONDITIONAL_WRITER:
        return getConditionalWriter();

      case UPDATES:
        return getUpdates();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CONDITIONAL_WRITER:
        return isSetConditionalWriter();
      case UPDATES:
        return isSetUpdates();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateRowsConditionally_args)
        return this.equals((updateRowsConditionally_args)that);
      return false;
    }

    public boolean equals(updateRowsConditionally_args that) {
      if (that == null)
        return false;

      boolean this_present_conditionalWriter = true && this.isSetConditionalWriter();
      boolean that_present_conditionalWriter = true && that.isSetConditionalWriter();
      if (this_present_conditionalWriter || that_present_conditionalWriter) {
        if (!(this_present_conditionalWriter && that_present_conditionalWriter))
          return false;
        if (!this.conditionalWriter.equals(that.conditionalWriter))
          return false;
      }

      boolean this_present_updates = true && this.isSetUpdates();
      boolean that_present_updates = true && that.isSetUpdates();
      if (this_present_updates || that_present_updates) {
        if (!(this_present_updates && that_present_updates))
          return false;
        if (!this.updates.equals(that.updates))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateRowsConditionally_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetConditionalWriter()).compareTo(other.isSetConditionalWriter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConditionalWriter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.conditionalWriter, other.conditionalWriter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUpdates()).compareTo(other.isSetUpdates());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUpdates()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updates, other.updates);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateRowsConditionally_args(");
      boolean first = true;

      sb.append("conditionalWriter:");
      if (this.conditionalWriter == null) {
        sb.append("null");
      } else {
        sb.append(this.conditionalWriter);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("updates:");
      if (this.updates == null) {
        sb.append("null");
      } else {
        sb.append(this.updates);
      }
      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, 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 updateRowsConditionally_argsStandardSchemeFactory implements SchemeFactory {
      public updateRowsConditionally_argsStandardScheme getScheme() {
        return new updateRowsConditionally_argsStandardScheme();
      }
    }

    private static class updateRowsConditionally_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateRowsConditionally_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 1: // CONDITIONAL_WRITER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.conditionalWriter = iprot.readString();
                struct.setConditionalWriterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // UPDATES
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map478 = iprot.readMapBegin();
                  struct.updates = new HashMap(2*_map478.size);
                  for (int _i479 = 0; _i479 < _map478.size; ++_i479)
                  {
                    ByteBuffer _key480;
                    ConditionalUpdates _val481;
                    _key480 = iprot.readBinary();
                    _val481 = new ConditionalUpdates();
                    _val481.read(iprot);
                    struct.updates.put(_key480, _val481);
                  }
                  iprot.readMapEnd();
                }
                struct.setUpdatesIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateRowsConditionally_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.conditionalWriter != null) {
          oprot.writeFieldBegin(CONDITIONAL_WRITER_FIELD_DESC);
          oprot.writeString(struct.conditionalWriter);
          oprot.writeFieldEnd();
        }
        if (struct.updates != null) {
          oprot.writeFieldBegin(UPDATES_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.updates.size()));
            for (Map.Entry _iter482 : struct.updates.entrySet())
            {
              oprot.writeBinary(_iter482.getKey());
              _iter482.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateRowsConditionally_argsTupleSchemeFactory implements SchemeFactory {
      public updateRowsConditionally_argsTupleScheme getScheme() {
        return new updateRowsConditionally_argsTupleScheme();
      }
    }

    private static class updateRowsConditionally_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateRowsConditionally_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetConditionalWriter()) {
          optionals.set(0);
        }
        if (struct.isSetUpdates()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetConditionalWriter()) {
          oprot.writeString(struct.conditionalWriter);
        }
        if (struct.isSetUpdates()) {
          {
            oprot.writeI32(struct.updates.size());
            for (Map.Entry _iter483 : struct.updates.entrySet())
            {
              oprot.writeBinary(_iter483.getKey());
              _iter483.getValue().write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateRowsConditionally_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.conditionalWriter = iprot.readString();
          struct.setConditionalWriterIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TMap _map484 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
            struct.updates = new HashMap(2*_map484.size);
            for (int _i485 = 0; _i485 < _map484.size; ++_i485)
            {
              ByteBuffer _key486;
              ConditionalUpdates _val487;
              _key486 = iprot.readBinary();
              _val487 = new ConditionalUpdates();
              _val487.read(iprot);
              struct.updates.put(_key486, _val487);
            }
          }
          struct.setUpdatesIsSet(true);
        }
      }
    }

  }

  public static class updateRowsConditionally_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateRowsConditionally_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField OUCH1_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField OUCH3_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateRowsConditionally_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateRowsConditionally_resultTupleSchemeFactory());
    }

    public Map success; // required
    public UnknownWriter ouch1; // required
    public AccumuloException ouch2; // required
    public AccumuloSecurityException ouch3; // 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"),
      OUCH1((short)1, "ouch1"),
      OUCH2((short)2, "ouch2"),
      OUCH3((short)3, "ouch3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // OUCH1
            return OUCH1;
          case 2: // OUCH2
            return OUCH2;
          case 3: // OUCH3
            return OUCH3;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true), 
              new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ConditionalStatus.class))));
      tmpMap.put(_Fields.OUCH1, new org.apache.thrift.meta_data.FieldMetaData("ouch1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      tmpMap.put(_Fields.OUCH3, new org.apache.thrift.meta_data.FieldMetaData("ouch3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateRowsConditionally_result.class, metaDataMap);
    }

    public updateRowsConditionally_result() {
    }

    public updateRowsConditionally_result(
      Map success,
      UnknownWriter ouch1,
      AccumuloException ouch2,
      AccumuloSecurityException ouch3)
    {
      this();
      this.success = success;
      this.ouch1 = ouch1;
      this.ouch2 = ouch2;
      this.ouch3 = ouch3;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateRowsConditionally_result(updateRowsConditionally_result other) {
      if (other.isSetSuccess()) {
        Map __this__success = new HashMap(other.success.size());
        for (Map.Entry other_element : other.success.entrySet()) {

          ByteBuffer other_element_key = other_element.getKey();
          ConditionalStatus other_element_value = other_element.getValue();

          ByteBuffer __this__success_copy_key = org.apache.thrift.TBaseHelper.copyBinary(other_element_key);
;

          ConditionalStatus __this__success_copy_value = other_element_value;

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
      if (other.isSetOuch1()) {
        this.ouch1 = new UnknownWriter(other.ouch1);
      }
      if (other.isSetOuch2()) {
        this.ouch2 = new AccumuloException(other.ouch2);
      }
      if (other.isSetOuch3()) {
        this.ouch3 = new AccumuloSecurityException(other.ouch3);
      }
    }

    public updateRowsConditionally_result deepCopy() {
      return new updateRowsConditionally_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ouch1 = null;
      this.ouch2 = null;
      this.ouch3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public void putToSuccess(ByteBuffer key, ConditionalStatus val) {
      if (this.success == null) {
        this.success = new HashMap();
      }
      this.success.put(key, val);
    }

    public Map getSuccess() {
      return this.success;
    }

    public updateRowsConditionally_result setSuccess(Map 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;
      }
    }

    public UnknownWriter getOuch1() {
      return this.ouch1;
    }

    public updateRowsConditionally_result setOuch1(UnknownWriter ouch1) {
      this.ouch1 = ouch1;
      return this;
    }

    public void unsetOuch1() {
      this.ouch1 = null;
    }

    /** Returns true if field ouch1 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch1() {
      return this.ouch1 != null;
    }

    public void setOuch1IsSet(boolean value) {
      if (!value) {
        this.ouch1 = null;
      }
    }

    public AccumuloException getOuch2() {
      return this.ouch2;
    }

    public updateRowsConditionally_result setOuch2(AccumuloException ouch2) {
      this.ouch2 = ouch2;
      return this;
    }

    public void unsetOuch2() {
      this.ouch2 = null;
    }

    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch2() {
      return this.ouch2 != null;
    }

    public void setOuch2IsSet(boolean value) {
      if (!value) {
        this.ouch2 = null;
      }
    }

    public AccumuloSecurityException getOuch3() {
      return this.ouch3;
    }

    public updateRowsConditionally_result setOuch3(AccumuloSecurityException ouch3) {
      this.ouch3 = ouch3;
      return this;
    }

    public void unsetOuch3() {
      this.ouch3 = null;
    }

    /** Returns true if field ouch3 is set (has been assigned a value) and false otherwise */
    public boolean isSetOuch3() {
      return this.ouch3 != null;
    }

    public void setOuch3IsSet(boolean value) {
      if (!value) {
        this.ouch3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map)value);
        }
        break;

      case OUCH1:
        if (value == null) {
          unsetOuch1();
        } else {
          setOuch1((UnknownWriter)value);
        }
        break;

      case OUCH2:
        if (value == null) {
          unsetOuch2();
        } else {
          setOuch2((AccumuloException)value);
        }
        break;

      case OUCH3:
        if (value == null) {
          unsetOuch3();
        } else {
          setOuch3((AccumuloSecurityException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case OUCH1:
        return getOuch1();

      case OUCH2:
        return getOuch2();

      case OUCH3:
        return getOuch3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case OUCH1:
        return isSetOuch1();
      case OUCH2:
        return isSetOuch2();
      case OUCH3:
        return isSetOuch3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateRowsConditionally_result)
        return this.equals((updateRowsConditionally_result)that);
      return false;
    }

    public boolean equals(updateRowsConditionally_result that) {
      if (that == null)
        return false;

      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_ouch1 = true && this.isSetOuch1();
      boolean that_present_ouch1 = true && that.isSetOuch1();
      if (this_present_ouch1 || that_present_ouch1) {
        if (!(this_present_ouch1 && that_present_ouch1))
          return false;
        if (!this.ouch1.equals(that.ouch1))
          return false;
      }

      boolean this_present_ouch2 = true && this.isSetOuch2();
      boolean that_present_ouch2 = true && that.isSetOuch2();
      if (this_present_ouch2 || that_present_ouch2) {
        if (!(this_present_ouch2 && that_present_ouch2))
          return false;
        if (!this.ouch2.equals(that.ouch2))
          return false;
      }

      boolean this_present_ouch3 = true && this.isSetOuch3();
      boolean that_present_ouch3 = true && that.isSetOuch3();
      if (this_present_ouch3 || that_present_ouch3) {
        if (!(this_present_ouch3 && that_present_ouch3))
          return false;
        if (!this.ouch3.equals(that.ouch3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(updateRowsConditionally_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(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 = Boolean.valueOf(isSetOuch1()).compareTo(other.isSetOuch1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch1, other.ouch1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(other.isSetOuch2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, other.ouch2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOuch3()).compareTo(other.isSetOuch3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOuch3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch3, other.ouch3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateRowsConditionally_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("ouch1:");
      if (this.ouch1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch2:");
      if (this.ouch2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ouch3:");
      if (this.ouch3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ouch3);
      }
      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, 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 updateRowsConditionally_resultStandardSchemeFactory implements SchemeFactory {
      public updateRowsConditionally_resultStandardScheme getScheme() {
        return new updateRowsConditionally_resultStandardScheme();
      }
    }

    private static class updateRowsConditionally_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateRowsConditionally_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.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map488 = iprot.readMapBegin();
                  struct.success = new HashMap(2*_map488.size);
                  for (int _i489 = 0; _i489 < _map488.size; ++_i489)
                  {
                    ByteBuffer _key490;
                    ConditionalStatus _val491;
                    _key490 = iprot.readBinary();
                    _val491 = ConditionalStatus.findByValue(iprot.readI32());
                    struct.success.put(_key490, _val491);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // OUCH1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch1 = new UnknownWriter();
                struct.ouch1.read(iprot);
                struct.setOuch1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // OUCH2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch2 = new AccumuloException();
                struct.ouch2.read(iprot);
                struct.setOuch2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OUCH3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ouch3 = new AccumuloSecurityException();
                struct.ouch3.read(iprot);
                struct.setOuch3IsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateRowsConditionally_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.success.size()));
            for (Map.Entry _iter492 : struct.success.entrySet())
            {
              oprot.writeBinary(_iter492.getKey());
              oprot.writeI32(_iter492.getValue().getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.ouch1 != null) {
          oprot.writeFieldBegin(OUCH1_FIELD_DESC);
          struct.ouch1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch2 != null) {
          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
          struct.ouch2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ouch3 != null) {
          oprot.writeFieldBegin(OUCH3_FIELD_DESC);
          struct.ouch3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateRowsConditionally_resultTupleSchemeFactory implements SchemeFactory {
      public updateRowsConditionally_resultTupleScheme getScheme() {
        return new updateRowsConditionally_resultTupleScheme();
      }
    }

    private static class updateRowsConditionally_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateRowsConditionally_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetOuch1()) {
          optionals.set(1);
        }
        if (struct.isSetOuch2()) {
          optionals.set(2);
        }
        if (struct.isSetOuch3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Map.Entry _iter493 : struct.success.entrySet())
            {
              oprot.writeBinary(_iter493.getKey());
              oprot.writeI32(_iter493.getValue().getValue());
            }
          }
        }
        if (struct.isSetOuch1()) {
          struct.ouch1.write(oprot);
        }
        if (struct.isSetOuch2()) {
          struct.ouch2.write(oprot);
        }
        if (struct.isSetOuch3()) {
          struct.ouch3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateRowsConditionally_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map494 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
            struct.success = new HashMap(2*_map494.size);
            for (int _i495 = 0; _i495 < _map494.size; ++_i495)
            {
              ByteBuffer _key496;
              ConditionalStatus _val497;
              _key496 = iprot.readBinary();
              _val497 = ConditionalStatus.findByValue(iprot.readI32());
              struct.success.put(_key496, _val497);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ouch1 = new UnknownWriter();
          struct.ouch1.read(iprot);
          struct.setOuch1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ouch2 = new AccumuloException();
          struct.ouch2.read(iprot);
          struct.setOuch2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ouch3 = new AccumuloSecurityException();
          struct.ouch3.read(iprot);
          struct.setOuch3IsSet(true);
        }
      }
    }

  }

  public static class closeConditionalWriter_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeConditionalWriter_args");

    private static final org.apache.thrift.protocol.TField CONDITIONAL_WRITER_FIELD_DESC = new org.apache.thrift.protocol.TField("conditionalWriter", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeConditionalWriter_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeConditionalWriter_argsTupleSchemeFactory());
    }

    public String conditionalWriter; // 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 {
      CONDITIONAL_WRITER((short)1, "conditionalWriter");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CONDITIONAL_WRITER
            return CONDITIONAL_WRITER;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CONDITIONAL_WRITER, new org.apache.thrift.meta_data.FieldMetaData("conditionalWriter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeConditionalWriter_args.class, metaDataMap);
    }

    public closeConditionalWriter_args() {
    }

    public closeConditionalWriter_args(
      String conditionalWriter)
    {
      this();
      this.conditionalWriter = conditionalWriter;
    }

    /**
     * Performs a deep copy on other.
     */
    public closeConditionalWriter_args(closeConditionalWriter_args other) {
      if (other.isSetConditionalWriter()) {
        this.conditionalWriter = other.conditionalWriter;
      }
    }

    public closeConditionalWriter_args deepCopy() {
      return new closeConditionalWriter_args(this);
    }

    @Override
    public void clear() {
      this.conditionalWriter = null;
    }

    public String getConditionalWriter() {
      return this.conditionalWriter;
    }

    public closeConditionalWriter_args setConditionalWriter(String conditionalWriter) {
      this.conditionalWriter = conditionalWriter;
      return this;
    }

    public void unsetConditionalWriter() {
      this.conditionalWriter = null;
    }

    /** Returns true if field conditionalWriter is set (has been assigned a value) and false otherwise */
    public boolean isSetConditionalWriter() {
      return this.conditionalWriter != null;
    }

    public void setConditionalWriterIsSet(boolean value) {
      if (!value) {
        this.conditionalWriter = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CONDITIONAL_WRITER:
        if (value == null) {
          unsetConditionalWriter();
        } else {
          setConditionalWriter((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CONDITIONAL_WRITER:
        return getConditionalWriter();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CONDITIONAL_WRITER:
        return isSetConditionalWriter();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeConditionalWriter_args)
        return this.equals((closeConditionalWriter_args)that);
      return false;
    }

    public boolean equals(closeConditionalWriter_args that) {
      if (that == null)
        return false;

      boolean this_present_conditionalWriter = true && this.isSetConditionalWriter();
      boolean that_present_conditionalWriter = true && that.isSetConditionalWriter();
      if (this_present_conditionalWriter || that_present_conditionalWriter) {
        if (!(this_present_conditionalWriter && that_present_conditionalWriter))
          return false;
        if (!this.conditionalWriter.equals(that.conditionalWriter))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeConditionalWriter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetConditionalWriter()).compareTo(other.isSetConditionalWriter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConditionalWriter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.conditionalWriter, other.conditionalWriter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeConditionalWriter_args(");
      boolean first = true;

      sb.append("conditionalWriter:");
      if (this.conditionalWriter == null) {
        sb.append("null");
      } else {
        sb.append(this.conditionalWriter);
      }
      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, 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 closeConditionalWriter_argsStandardSchemeFactory implements SchemeFactory {
      public closeConditionalWriter_argsStandardScheme getScheme() {
        return new closeConditionalWriter_argsStandardScheme();
      }
    }

    private static class closeConditionalWriter_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeConditionalWriter_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 1: // CONDITIONAL_WRITER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.conditionalWriter = iprot.readString();
                struct.setConditionalWriterIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeConditionalWriter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.conditionalWriter != null) {
          oprot.writeFieldBegin(CONDITIONAL_WRITER_FIELD_DESC);
          oprot.writeString(struct.conditionalWriter);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeConditionalWriter_argsTupleSchemeFactory implements SchemeFactory {
      public closeConditionalWriter_argsTupleScheme getScheme() {
        return new closeConditionalWriter_argsTupleScheme();
      }
    }

    private static class closeConditionalWriter_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeConditionalWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetConditionalWriter()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetConditionalWriter()) {
          oprot.writeString(struct.conditionalWriter);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeConditionalWriter_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.conditionalWriter = iprot.readString();
          struct.setConditionalWriterIsSet(true);
        }
      }
    }

  }

  public static class closeConditionalWriter_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("closeConditionalWriter_result");


    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new closeConditionalWriter_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new closeConditionalWriter_resultTupleSchemeFactory());
    }


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(closeConditionalWriter_result.class, metaDataMap);
    }

    public closeConditionalWriter_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public closeConditionalWriter_result(closeConditionalWriter_result other) {
    }

    public closeConditionalWriter_result deepCopy() {
      return new closeConditionalWriter_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof closeConditionalWriter_result)
        return this.equals((closeConditionalWriter_result)that);
      return false;
    }

    public boolean equals(closeConditionalWriter_result that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(closeConditionalWriter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("closeConditionalWriter_result(");
      boolean first = true;

      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, 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 closeConditionalWriter_resultStandardSchemeFactory implements SchemeFactory {
      public closeConditionalWriter_resultStandardScheme getScheme() {
        return new closeConditionalWriter_resultStandardScheme();
      }
    }

    private static class closeConditionalWriter_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, closeConditionalWriter_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) {
            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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, closeConditionalWriter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class closeConditionalWriter_resultTupleSchemeFactory implements SchemeFactory {
      public closeConditionalWriter_resultTupleScheme getScheme() {
        return new closeConditionalWriter_resultTupleScheme();
      }
    }

    private static class closeConditionalWriter_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, closeConditionalWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, closeConditionalWriter_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
      }
    }

  }

  public static class getRowRange_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getRowRange_args");

    private static final org.apache.thrift.protocol.TField ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("row", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getRowRange_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getRowRange_argsTupleSchemeFactory());
    }

    public ByteBuffer row; // 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 {
      ROW((short)1, "row");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ROW
            return ROW;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ROW, new org.apache.thrift.meta_data.FieldMetaData("row", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getRowRange_args.class, metaDataMap);
    }

    public getRowRange_args() {
    }

    public getRowRange_args(
      ByteBuffer row)
    {
      this();
      this.row = row;
    }

    /**
     * Performs a deep copy on other.
     */
    public getRowRange_args(getRowRange_args other) {
      if (other.isSetRow()) {
        this.row = org.apache.thrift.TBaseHelper.copyBinary(other.row);
;
      }
    }

    public getRowRange_args deepCopy() {
      return new getRowRange_args(this);
    }

    @Override
    public void clear() {
      this.row = null;
    }

    public byte[] getRow() {
      setRow(org.apache.thrift.TBaseHelper.rightSize(row));
      return row == null ? null : row.array();
    }

    public ByteBuffer bufferForRow() {
      return row;
    }

    public getRowRange_args setRow(byte[] row) {
      setRow(row == null ? (ByteBuffer)null : ByteBuffer.wrap(row));
      return this;
    }

    public getRowRange_args setRow(ByteBuffer row) {
      this.row = row;
      return this;
    }

    public void unsetRow() {
      this.row = null;
    }

    /** Returns true if field row is set (has been assigned a value) and false otherwise */
    public boolean isSetRow() {
      return this.row != null;
    }

    public void setRowIsSet(boolean value) {
      if (!value) {
        this.row = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ROW:
        if (value == null) {
          unsetRow();
        } else {
          setRow((ByteBuffer)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ROW:
        return getRow();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ROW:
        return isSetRow();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getRowRange_args)
        return this.equals((getRowRange_args)that);
      return false;
    }

    public boolean equals(getRowRange_args that) {
      if (that == null)
        return false;

      boolean this_present_row = true && this.isSetRow();
      boolean that_present_row = true && that.isSetRow();
      if (this_present_row || that_present_row) {
        if (!(this_present_row && that_present_row))
          return false;
        if (!this.row.equals(that.row))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getRowRange_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRow()).compareTo(other.isSetRow());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRow()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.row, other.row);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getRowRange_args(");
      boolean first = true;

      sb.append("row:");
      if (this.row == null) {
        sb.append("null");
      } else {
        org.apache.thrift.TBaseHelper.toString(this.row, sb);
      }
      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, 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 getRowRange_argsStandardSchemeFactory implements SchemeFactory {
      public getRowRange_argsStandardScheme getScheme() {
        return new getRowRange_argsStandardScheme();
      }
    }

    private static class getRowRange_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getRowRange_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 1: // ROW
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.row = iprot.readBinary();
                struct.setRowIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getRowRange_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.row != null) {
          oprot.writeFieldBegin(ROW_FIELD_DESC);
          oprot.writeBinary(struct.row);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getRowRange_argsTupleSchemeFactory implements SchemeFactory {
      public getRowRange_argsTupleScheme getScheme() {
        return new getRowRange_argsTupleScheme();
      }
    }

    private static class getRowRange_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getRowRange_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRow()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRow()) {
          oprot.writeBinary(struct.row);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getRowRange_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.row = iprot.readBinary();
          struct.setRowIsSet(true);
        }
      }
    }

  }

  public static class getRowRange_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getRowRange_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 Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getRowRange_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getRowRange_resultTupleSchemeFactory());
    }

    public Range success; // 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");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, Range.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getRowRange_result.class, metaDataMap);
    }

    public getRowRange_result() {
    }

    public getRowRange_result(
      Range success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on other.
     */
    public getRowRange_result(getRowRange_result other) {
      if (other.isSetSuccess()) {
        this.success = new Range(other.success);
      }
    }

    public getRowRange_result deepCopy() {
      return new getRowRange_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public Range getSuccess() {
      return this.success;
    }

    public getRowRange_result setSuccess(Range 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;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Range)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getRowRange_result)
        return this.equals((getRowRange_result)that);
      return false;
    }

    public boolean equals(getRowRange_result that) {
      if (that == null)
        return false;

      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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getRowRange_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getRowRange_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      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, 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 getRowRange_resultStandardSchemeFactory implements SchemeFactory {
      public getRowRange_resultStandardScheme getScheme() {
        return new getRowRange_resultStandardScheme();
      }
    }

    private static class getRowRange_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getRowRange_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 Range();
                struct.success.read(iprot);
                struct.setSuccessIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getRowRange_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();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getRowRange_resultTupleSchemeFactory implements SchemeFactory {
      public getRowRange_resultTupleScheme getScheme() {
        return new getRowRange_resultTupleScheme();
      }
    }

    private static class getRowRange_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getRowRange_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getRowRange_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new Range();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

  public static class getFollowing_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFollowing_args");

    private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField PART_FIELD_DESC = new org.apache.thrift.protocol.TField("part", org.apache.thrift.protocol.TType.I32, (short)2);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getFollowing_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getFollowing_argsTupleSchemeFactory());
    }

    public Key key; // required
    /**
     * 
     * @see PartialKey
     */
    public PartialKey part; // 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 {
      KEY((short)1, "key"),
      /**
       * 
       * @see PartialKey
       */
      PART((short)2, "part");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // KEY
            return KEY;
          case 2: // PART
            return PART;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Key.class)));
      tmpMap.put(_Fields.PART, new org.apache.thrift.meta_data.FieldMetaData("part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PartialKey.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFollowing_args.class, metaDataMap);
    }

    public getFollowing_args() {
    }

    public getFollowing_args(
      Key key,
      PartialKey part)
    {
      this();
      this.key = key;
      this.part = part;
    }

    /**
     * Performs a deep copy on other.
     */
    public getFollowing_args(getFollowing_args other) {
      if (other.isSetKey()) {
        this.key = new Key(other.key);
      }
      if (other.isSetPart()) {
        this.part = other.part;
      }
    }

    public getFollowing_args deepCopy() {
      return new getFollowing_args(this);
    }

    @Override
    public void clear() {
      this.key = null;
      this.part = null;
    }

    public Key getKey() {
      return this.key;
    }

    public getFollowing_args setKey(Key key) {
      this.key = key;
      return this;
    }

    public void unsetKey() {
      this.key = null;
    }

    /** Returns true if field key is set (has been assigned a value) and false otherwise */
    public boolean isSetKey() {
      return this.key != null;
    }

    public void setKeyIsSet(boolean value) {
      if (!value) {
        this.key = null;
      }
    }

    /**
     * 
     * @see PartialKey
     */
    public PartialKey getPart() {
      return this.part;
    }

    /**
     * 
     * @see PartialKey
     */
    public getFollowing_args setPart(PartialKey part) {
      this.part = part;
      return this;
    }

    public void unsetPart() {
      this.part = null;
    }

    /** Returns true if field part is set (has been assigned a value) and false otherwise */
    public boolean isSetPart() {
      return this.part != null;
    }

    public void setPartIsSet(boolean value) {
      if (!value) {
        this.part = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case KEY:
        if (value == null) {
          unsetKey();
        } else {
          setKey((Key)value);
        }
        break;

      case PART:
        if (value == null) {
          unsetPart();
        } else {
          setPart((PartialKey)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case KEY:
        return getKey();

      case PART:
        return getPart();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case KEY:
        return isSetKey();
      case PART:
        return isSetPart();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getFollowing_args)
        return this.equals((getFollowing_args)that);
      return false;
    }

    public boolean equals(getFollowing_args that) {
      if (that == null)
        return false;

      boolean this_present_key = true && this.isSetKey();
      boolean that_present_key = true && that.isSetKey();
      if (this_present_key || that_present_key) {
        if (!(this_present_key && that_present_key))
          return false;
        if (!this.key.equals(that.key))
          return false;
      }

      boolean this_present_part = true && this.isSetPart();
      boolean that_present_part = true && that.isSetPart();
      if (this_present_part || that_present_part) {
        if (!(this_present_part && that_present_part))
          return false;
        if (!this.part.equals(that.part))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getFollowing_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetKey()).compareTo(other.isSetKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPart()).compareTo(other.isSetPart());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part, other.part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFollowing_args(");
      boolean first = true;

      sb.append("key:");
      if (this.key == null) {
        sb.append("null");
      } else {
        sb.append(this.key);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part:");
      if (this.part == null) {
        sb.append("null");
      } else {
        sb.append(this.part);
      }
      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 (key != null) {
        key.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, 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 getFollowing_argsStandardSchemeFactory implements SchemeFactory {
      public getFollowing_argsStandardScheme getScheme() {
        return new getFollowing_argsStandardScheme();
      }
    }

    private static class getFollowing_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getFollowing_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 1: // KEY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.key = new Key();
                struct.key.read(iprot);
                struct.setKeyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PART
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.part = PartialKey.findByValue(iprot.readI32());
                struct.setPartIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getFollowing_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.key != null) {
          oprot.writeFieldBegin(KEY_FIELD_DESC);
          struct.key.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.part != null) {
          oprot.writeFieldBegin(PART_FIELD_DESC);
          oprot.writeI32(struct.part.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getFollowing_argsTupleSchemeFactory implements SchemeFactory {
      public getFollowing_argsTupleScheme getScheme() {
        return new getFollowing_argsTupleScheme();
      }
    }

    private static class getFollowing_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getFollowing_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetKey()) {
          optionals.set(0);
        }
        if (struct.isSetPart()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetKey()) {
          struct.key.write(oprot);
        }
        if (struct.isSetPart()) {
          oprot.writeI32(struct.part.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getFollowing_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.key = new Key();
          struct.key.read(iprot);
          struct.setKeyIsSet(true);
        }
        if (incoming.get(1)) {
          struct.part = PartialKey.findByValue(iprot.readI32());
          struct.setPartIsSet(true);
        }
      }
    }

  }

  public static class getFollowing_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFollowing_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 Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getFollowing_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getFollowing_resultTupleSchemeFactory());
    }

    public Key success; // 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");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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, Key.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFollowing_result.class, metaDataMap);
    }

    public getFollowing_result() {
    }

    public getFollowing_result(
      Key success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on other.
     */
    public getFollowing_result(getFollowing_result other) {
      if (other.isSetSuccess()) {
        this.success = new Key(other.success);
      }
    }

    public getFollowing_result deepCopy() {
      return new getFollowing_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public Key getSuccess() {
      return this.success;
    }

    public getFollowing_result setSuccess(Key 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;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Key)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getFollowing_result)
        return this.equals((getFollowing_result)that);
      return false;
    }

    public boolean equals(getFollowing_result that) {
      if (that == null)
        return false;

      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;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public int compareTo(getFollowing_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFollowing_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      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, 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 getFollowing_resultStandardSchemeFactory implements SchemeFactory {
      public getFollowing_resultStandardScheme getScheme() {
        return new getFollowing_resultStandardScheme();
      }
    }

    private static class getFollowing_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getFollowing_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 Key();
                struct.success.read(iprot);
                struct.setSuccessIsSet(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();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getFollowing_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();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getFollowing_resultTupleSchemeFactory implements SchemeFactory {
      public getFollowing_resultTupleScheme getScheme() {
        return new getFollowing_resultTupleScheme();
      }
    }

    private static class getFollowing_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getFollowing_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getFollowing_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new Key();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

}