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

com.splout.db.thrift.DNodeService Maven / Gradle / Ivy

Go to download

Splout SQL is a read only, horizontally scalable and partitioned SQL database that plays well with Hadoop.

There is a newer version: 0.3.0
Show newest version
/**
 * Autogenerated by Thrift Compiler (0.7.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
package com.splout.db.thrift;

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;

public class DNodeService {

  public interface Iface {

    public String sqlQuery(String tablespace, long version, int partition, String query) throws DNodeException, org.apache.thrift.TException;

    public String deleteOldVersions(List versions) throws DNodeException, org.apache.thrift.TException;

    public String deploy(List deployActions, long version) throws DNodeException, org.apache.thrift.TException;

    public String rollback(List rollbackActions, String distributedBarrier) throws DNodeException, org.apache.thrift.TException;

    public String status() throws DNodeException, org.apache.thrift.TException;

    public String abortDeploy(long version) throws DNodeException, org.apache.thrift.TException;

    public String testCommand(String command) throws DNodeException, org.apache.thrift.TException;

  }

  public interface AsyncIface {

    public void sqlQuery(String tablespace, long version, int partition, String query, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void deleteOldVersions(List versions, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void deploy(List deployActions, long version, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void rollback(List rollbackActions, String distributedBarrier, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void status(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void abortDeploy(long version, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void testCommand(String command, 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 String sqlQuery(String tablespace, long version, int partition, String query) throws DNodeException, org.apache.thrift.TException
    {
      send_sqlQuery(tablespace, version, partition, query);
      return recv_sqlQuery();
    }

    public void send_sqlQuery(String tablespace, long version, int partition, String query) throws org.apache.thrift.TException
    {
      sqlQuery_args args = new sqlQuery_args();
      args.setTablespace(tablespace);
      args.setVersion(version);
      args.setPartition(partition);
      args.setQuery(query);
      sendBase("sqlQuery", args);
    }

    public String recv_sqlQuery() throws DNodeException, org.apache.thrift.TException
    {
      sqlQuery_result result = new sqlQuery_result();
      receiveBase(result, "sqlQuery");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "sqlQuery failed: unknown result");
    }

    public String deleteOldVersions(List versions) throws DNodeException, org.apache.thrift.TException
    {
      send_deleteOldVersions(versions);
      return recv_deleteOldVersions();
    }

    public void send_deleteOldVersions(List versions) throws org.apache.thrift.TException
    {
      deleteOldVersions_args args = new deleteOldVersions_args();
      args.setVersions(versions);
      sendBase("deleteOldVersions", args);
    }

    public String recv_deleteOldVersions() throws DNodeException, org.apache.thrift.TException
    {
      deleteOldVersions_result result = new deleteOldVersions_result();
      receiveBase(result, "deleteOldVersions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteOldVersions failed: unknown result");
    }

    public String deploy(List deployActions, long version) throws DNodeException, org.apache.thrift.TException
    {
      send_deploy(deployActions, version);
      return recv_deploy();
    }

    public void send_deploy(List deployActions, long version) throws org.apache.thrift.TException
    {
      deploy_args args = new deploy_args();
      args.setDeployActions(deployActions);
      args.setVersion(version);
      sendBase("deploy", args);
    }

    public String recv_deploy() throws DNodeException, org.apache.thrift.TException
    {
      deploy_result result = new deploy_result();
      receiveBase(result, "deploy");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deploy failed: unknown result");
    }

    public String rollback(List rollbackActions, String distributedBarrier) throws DNodeException, org.apache.thrift.TException
    {
      send_rollback(rollbackActions, distributedBarrier);
      return recv_rollback();
    }

    public void send_rollback(List rollbackActions, String distributedBarrier) throws org.apache.thrift.TException
    {
      rollback_args args = new rollback_args();
      args.setRollbackActions(rollbackActions);
      args.setDistributedBarrier(distributedBarrier);
      sendBase("rollback", args);
    }

    public String recv_rollback() throws DNodeException, org.apache.thrift.TException
    {
      rollback_result result = new rollback_result();
      receiveBase(result, "rollback");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "rollback failed: unknown result");
    }

    public String status() throws DNodeException, org.apache.thrift.TException
    {
      send_status();
      return recv_status();
    }

    public void send_status() throws org.apache.thrift.TException
    {
      status_args args = new status_args();
      sendBase("status", args);
    }

    public String recv_status() throws DNodeException, org.apache.thrift.TException
    {
      status_result result = new status_result();
      receiveBase(result, "status");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "status failed: unknown result");
    }

    public String abortDeploy(long version) throws DNodeException, org.apache.thrift.TException
    {
      send_abortDeploy(version);
      return recv_abortDeploy();
    }

    public void send_abortDeploy(long version) throws org.apache.thrift.TException
    {
      abortDeploy_args args = new abortDeploy_args();
      args.setVersion(version);
      sendBase("abortDeploy", args);
    }

    public String recv_abortDeploy() throws DNodeException, org.apache.thrift.TException
    {
      abortDeploy_result result = new abortDeploy_result();
      receiveBase(result, "abortDeploy");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "abortDeploy failed: unknown result");
    }

    public String testCommand(String command) throws DNodeException, org.apache.thrift.TException
    {
      send_testCommand(command);
      return recv_testCommand();
    }

    public void send_testCommand(String command) throws org.apache.thrift.TException
    {
      testCommand_args args = new testCommand_args();
      args.setCommand(command);
      sendBase("testCommand", args);
    }

    public String recv_testCommand() throws DNodeException, org.apache.thrift.TException
    {
      testCommand_result result = new testCommand_result();
      receiveBase(result, "testCommand");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.excep != null) {
        throw result.excep;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "testCommand 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 sqlQuery(String tablespace, long version, int partition, String query, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      sqlQuery_call method_call = new sqlQuery_call(tablespace, version, partition, query, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class sqlQuery_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String tablespace;
      private long version;
      private int partition;
      private String query;
      public sqlQuery_call(String tablespace, long version, int partition, String query, 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.tablespace = tablespace;
        this.version = version;
        this.partition = partition;
        this.query = query;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("sqlQuery", org.apache.thrift.protocol.TMessageType.CALL, 0));
        sqlQuery_args args = new sqlQuery_args();
        args.setTablespace(tablespace);
        args.setVersion(version);
        args.setPartition(partition);
        args.setQuery(query);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_sqlQuery();
      }
    }

    public void deleteOldVersions(List versions, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteOldVersions_call method_call = new deleteOldVersions_call(versions, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteOldVersions_call extends org.apache.thrift.async.TAsyncMethodCall {
      private List versions;
      public deleteOldVersions_call(List versions, 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.versions = versions;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteOldVersions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteOldVersions_args args = new deleteOldVersions_args();
        args.setVersions(versions);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_deleteOldVersions();
      }
    }

    public void deploy(List deployActions, long version, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deploy_call method_call = new deploy_call(deployActions, version, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deploy_call extends org.apache.thrift.async.TAsyncMethodCall {
      private List deployActions;
      private long version;
      public deploy_call(List deployActions, long version, 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.deployActions = deployActions;
        this.version = version;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deploy", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deploy_args args = new deploy_args();
        args.setDeployActions(deployActions);
        args.setVersion(version);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_deploy();
      }
    }

    public void rollback(List rollbackActions, String distributedBarrier, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      rollback_call method_call = new rollback_call(rollbackActions, distributedBarrier, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class rollback_call extends org.apache.thrift.async.TAsyncMethodCall {
      private List rollbackActions;
      private String distributedBarrier;
      public rollback_call(List rollbackActions, String distributedBarrier, 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.rollbackActions = rollbackActions;
        this.distributedBarrier = distributedBarrier;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("rollback", org.apache.thrift.protocol.TMessageType.CALL, 0));
        rollback_args args = new rollback_args();
        args.setRollbackActions(rollbackActions);
        args.setDistributedBarrier(distributedBarrier);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_rollback();
      }
    }

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

    public static class status_call extends org.apache.thrift.async.TAsyncMethodCall {
      public status_call(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);
      }

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

      public String getResult() throws DNodeException, 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_status();
      }
    }

    public void abortDeploy(long version, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
      checkReady();
      abortDeploy_call method_call = new abortDeploy_call(version, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class abortDeploy_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long version;
      public abortDeploy_call(long version, 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.version = version;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("abortDeploy", org.apache.thrift.protocol.TMessageType.CALL, 0));
        abortDeploy_args args = new abortDeploy_args();
        args.setVersion(version);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_abortDeploy();
      }
    }

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

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

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("testCommand", org.apache.thrift.protocol.TMessageType.CALL, 0));
        testCommand_args args = new testCommand_args();
        args.setCommand(command);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public String getResult() throws DNodeException, 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_testCommand();
      }
    }

  }

  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("sqlQuery", new sqlQuery());
      processMap.put("deleteOldVersions", new deleteOldVersions());
      processMap.put("deploy", new deploy());
      processMap.put("rollback", new rollback());
      processMap.put("status", new status());
      processMap.put("abortDeploy", new abortDeploy());
      processMap.put("testCommand", new testCommand());
      return processMap;
    }

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

      protected sqlQuery_args getEmptyArgsInstance() {
        return new sqlQuery_args();
      }

      protected sqlQuery_result getResult(I iface, sqlQuery_args args) throws org.apache.thrift.TException {
        sqlQuery_result result = new sqlQuery_result();
        try {
          result.success = iface.sqlQuery(args.tablespace, args.version, args.partition, args.query);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected deleteOldVersions_args getEmptyArgsInstance() {
        return new deleteOldVersions_args();
      }

      protected deleteOldVersions_result getResult(I iface, deleteOldVersions_args args) throws org.apache.thrift.TException {
        deleteOldVersions_result result = new deleteOldVersions_result();
        try {
          result.success = iface.deleteOldVersions(args.versions);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected deploy_args getEmptyArgsInstance() {
        return new deploy_args();
      }

      protected deploy_result getResult(I iface, deploy_args args) throws org.apache.thrift.TException {
        deploy_result result = new deploy_result();
        try {
          result.success = iface.deploy(args.deployActions, args.version);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected rollback_args getEmptyArgsInstance() {
        return new rollback_args();
      }

      protected rollback_result getResult(I iface, rollback_args args) throws org.apache.thrift.TException {
        rollback_result result = new rollback_result();
        try {
          result.success = iface.rollback(args.rollbackActions, args.distributedBarrier);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected status_args getEmptyArgsInstance() {
        return new status_args();
      }

      protected status_result getResult(I iface, status_args args) throws org.apache.thrift.TException {
        status_result result = new status_result();
        try {
          result.success = iface.status();
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected abortDeploy_args getEmptyArgsInstance() {
        return new abortDeploy_args();
      }

      protected abortDeploy_result getResult(I iface, abortDeploy_args args) throws org.apache.thrift.TException {
        abortDeploy_result result = new abortDeploy_result();
        try {
          result.success = iface.abortDeploy(args.version);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

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

      protected testCommand_args getEmptyArgsInstance() {
        return new testCommand_args();
      }

      protected testCommand_result getResult(I iface, testCommand_args args) throws org.apache.thrift.TException {
        testCommand_result result = new testCommand_result();
        try {
          result.success = iface.testCommand(args.command);
        } catch (DNodeException excep) {
          result.excep = excep;
        }
        return result;
      }
    }

  }

  public static class sqlQuery_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("sqlQuery_args");

    private static final org.apache.thrift.protocol.TField TABLESPACE_FIELD_DESC = new org.apache.thrift.protocol.TField("tablespace", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)2);
    private static final org.apache.thrift.protocol.TField PARTITION_FIELD_DESC = new org.apache.thrift.protocol.TField("partition", org.apache.thrift.protocol.TType.I32, (short)3);
    private static final org.apache.thrift.protocol.TField QUERY_FIELD_DESC = new org.apache.thrift.protocol.TField("query", org.apache.thrift.protocol.TType.STRING, (short)4);

    public String tablespace; // required
    public long version; // required
    public int partition; // required
    public String query; // 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 {
      TABLESPACE((short)1, "tablespace"),
      VERSION((short)2, "version"),
      PARTITION((short)3, "partition"),
      QUERY((short)4, "query");

      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: // TABLESPACE
            return TABLESPACE;
          case 2: // VERSION
            return VERSION;
          case 3: // PARTITION
            return PARTITION;
          case 4: // QUERY
            return QUERY;
          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 __VERSION_ISSET_ID = 0;
    private static final int __PARTITION_ISSET_ID = 1;
    private BitSet __isset_bit_vector = new BitSet(2);

    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.TABLESPACE, new org.apache.thrift.meta_data.FieldMetaData("tablespace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.PARTITION, new org.apache.thrift.meta_data.FieldMetaData("partition", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.QUERY, new org.apache.thrift.meta_data.FieldMetaData("query", 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(sqlQuery_args.class, metaDataMap);
    }

    public sqlQuery_args() {
    }

    public sqlQuery_args(
      String tablespace,
      long version,
      int partition,
      String query)
    {
      this();
      this.tablespace = tablespace;
      this.version = version;
      setVersionIsSet(true);
      this.partition = partition;
      setPartitionIsSet(true);
      this.query = query;
    }

    /**
     * Performs a deep copy on other.
     */
    public sqlQuery_args(sqlQuery_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetTablespace()) {
        this.tablespace = other.tablespace;
      }
      this.version = other.version;
      this.partition = other.partition;
      if (other.isSetQuery()) {
        this.query = other.query;
      }
    }

    public sqlQuery_args deepCopy() {
      return new sqlQuery_args(this);
    }

    @Override
    public void clear() {
      this.tablespace = null;
      setVersionIsSet(false);
      this.version = 0;
      setPartitionIsSet(false);
      this.partition = 0;
      this.query = null;
    }

    public String getTablespace() {
      return this.tablespace;
    }

    public sqlQuery_args setTablespace(String tablespace) {
      this.tablespace = tablespace;
      return this;
    }

    public void unsetTablespace() {
      this.tablespace = null;
    }

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

    public void setTablespaceIsSet(boolean value) {
      if (!value) {
        this.tablespace = null;
      }
    }

    public long getVersion() {
      return this.version;
    }

    public sqlQuery_args setVersion(long version) {
      this.version = version;
      setVersionIsSet(true);
      return this;
    }

    public void unsetVersion() {
      __isset_bit_vector.clear(__VERSION_ISSET_ID);
    }

    /** Returns true if field version is set (has been assigned a value) and false otherwise */
    public boolean isSetVersion() {
      return __isset_bit_vector.get(__VERSION_ISSET_ID);
    }

    public void setVersionIsSet(boolean value) {
      __isset_bit_vector.set(__VERSION_ISSET_ID, value);
    }

    public int getPartition() {
      return this.partition;
    }

    public sqlQuery_args setPartition(int partition) {
      this.partition = partition;
      setPartitionIsSet(true);
      return this;
    }

    public void unsetPartition() {
      __isset_bit_vector.clear(__PARTITION_ISSET_ID);
    }

    /** Returns true if field partition is set (has been assigned a value) and false otherwise */
    public boolean isSetPartition() {
      return __isset_bit_vector.get(__PARTITION_ISSET_ID);
    }

    public void setPartitionIsSet(boolean value) {
      __isset_bit_vector.set(__PARTITION_ISSET_ID, value);
    }

    public String getQuery() {
      return this.query;
    }

    public sqlQuery_args setQuery(String query) {
      this.query = query;
      return this;
    }

    public void unsetQuery() {
      this.query = null;
    }

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

    public void setQueryIsSet(boolean value) {
      if (!value) {
        this.query = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case TABLESPACE:
        if (value == null) {
          unsetTablespace();
        } else {
          setTablespace((String)value);
        }
        break;

      case VERSION:
        if (value == null) {
          unsetVersion();
        } else {
          setVersion((Long)value);
        }
        break;

      case PARTITION:
        if (value == null) {
          unsetPartition();
        } else {
          setPartition((Integer)value);
        }
        break;

      case QUERY:
        if (value == null) {
          unsetQuery();
        } else {
          setQuery((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case TABLESPACE:
        return getTablespace();

      case VERSION:
        return Long.valueOf(getVersion());

      case PARTITION:
        return Integer.valueOf(getPartition());

      case QUERY:
        return getQuery();

      }
      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 TABLESPACE:
        return isSetTablespace();
      case VERSION:
        return isSetVersion();
      case PARTITION:
        return isSetPartition();
      case QUERY:
        return isSetQuery();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof sqlQuery_args)
        return this.equals((sqlQuery_args)that);
      return false;
    }

    public boolean equals(sqlQuery_args that) {
      if (that == null)
        return false;

      boolean this_present_tablespace = true && this.isSetTablespace();
      boolean that_present_tablespace = true && that.isSetTablespace();
      if (this_present_tablespace || that_present_tablespace) {
        if (!(this_present_tablespace && that_present_tablespace))
          return false;
        if (!this.tablespace.equals(that.tablespace))
          return false;
      }

      boolean this_present_version = true;
      boolean that_present_version = true;
      if (this_present_version || that_present_version) {
        if (!(this_present_version && that_present_version))
          return false;
        if (this.version != that.version)
          return false;
      }

      boolean this_present_partition = true;
      boolean that_present_partition = true;
      if (this_present_partition || that_present_partition) {
        if (!(this_present_partition && that_present_partition))
          return false;
        if (this.partition != that.partition)
          return false;
      }

      boolean this_present_query = true && this.isSetQuery();
      boolean that_present_query = true && that.isSetQuery();
      if (this_present_query || that_present_query) {
        if (!(this_present_query && that_present_query))
          return false;
        if (!this.query.equals(that.query))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      sqlQuery_args typedOther = (sqlQuery_args)other;

      lastComparison = Boolean.valueOf(isSetTablespace()).compareTo(typedOther.isSetTablespace());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTablespace()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tablespace, typedOther.tablespace);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetVersion()).compareTo(typedOther.isSetVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, typedOther.version);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPartition()).compareTo(typedOther.isSetPartition());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPartition()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition, typedOther.partition);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetQuery()).compareTo(typedOther.isSetQuery());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetQuery()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.query, typedOther.query);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // TABLESPACE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.tablespace = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // VERSION
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.version = iprot.readI64();
              setVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // PARTITION
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.partition = iprot.readI32();
              setPartitionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // QUERY
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.query = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.tablespace != null) {
        oprot.writeFieldBegin(TABLESPACE_FIELD_DESC);
        oprot.writeString(this.tablespace);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(VERSION_FIELD_DESC);
      oprot.writeI64(this.version);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(PARTITION_FIELD_DESC);
      oprot.writeI32(this.partition);
      oprot.writeFieldEnd();
      if (this.query != null) {
        oprot.writeFieldBegin(QUERY_FIELD_DESC);
        oprot.writeString(this.query);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("sqlQuery_args(");
      boolean first = true;

      sb.append("tablespace:");
      if (this.tablespace == null) {
        sb.append("null");
      } else {
        sb.append(this.tablespace);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("version:");
      sb.append(this.version);
      first = false;
      if (!first) sb.append(", ");
      sb.append("partition:");
      sb.append(this.partition);
      first = false;
      if (!first) sb.append(", ");
      sb.append("query:");
      if (this.query == null) {
        sb.append("null");
      } else {
        sb.append(this.query);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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_bit_vector = new BitSet(1);
        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);
      }
    }

  }

  public static class sqlQuery_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("sqlQuery_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(sqlQuery_result.class, metaDataMap);
    }

    public sqlQuery_result() {
    }

    public sqlQuery_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public sqlQuery_result(sqlQuery_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public sqlQuery_result deepCopy() {
      return new sqlQuery_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public sqlQuery_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 DNodeException getExcep() {
      return this.excep;
    }

    public sqlQuery_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof sqlQuery_result)
        return this.equals((sqlQuery_result)that);
      return false;
    }

    public boolean equals(sqlQuery_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      sqlQuery_result typedOther = (sqlQuery_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("sqlQuery_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class deleteOldVersions_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteOldVersions_args");

    private static final org.apache.thrift.protocol.TField VERSIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("versions", org.apache.thrift.protocol.TType.LIST, (short)1);

    public List versions; // 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 {
      VERSIONS((short)1, "versions");

      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: // VERSIONS
            return VERSIONS;
          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.VERSIONS, new org.apache.thrift.meta_data.FieldMetaData("versions", 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, TablespaceVersion.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteOldVersions_args.class, metaDataMap);
    }

    public deleteOldVersions_args() {
    }

    public deleteOldVersions_args(
      List versions)
    {
      this();
      this.versions = versions;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteOldVersions_args(deleteOldVersions_args other) {
      if (other.isSetVersions()) {
        List __this__versions = new ArrayList();
        for (TablespaceVersion other_element : other.versions) {
          __this__versions.add(new TablespaceVersion(other_element));
        }
        this.versions = __this__versions;
      }
    }

    public deleteOldVersions_args deepCopy() {
      return new deleteOldVersions_args(this);
    }

    @Override
    public void clear() {
      this.versions = null;
    }

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

    public java.util.Iterator getVersionsIterator() {
      return (this.versions == null) ? null : this.versions.iterator();
    }

    public void addToVersions(TablespaceVersion elem) {
      if (this.versions == null) {
        this.versions = new ArrayList();
      }
      this.versions.add(elem);
    }

    public List getVersions() {
      return this.versions;
    }

    public deleteOldVersions_args setVersions(List versions) {
      this.versions = versions;
      return this;
    }

    public void unsetVersions() {
      this.versions = null;
    }

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

    public void setVersionsIsSet(boolean value) {
      if (!value) {
        this.versions = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case VERSIONS:
        if (value == null) {
          unsetVersions();
        } else {
          setVersions((List)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case VERSIONS:
        return getVersions();

      }
      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 VERSIONS:
        return isSetVersions();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteOldVersions_args)
        return this.equals((deleteOldVersions_args)that);
      return false;
    }

    public boolean equals(deleteOldVersions_args that) {
      if (that == null)
        return false;

      boolean this_present_versions = true && this.isSetVersions();
      boolean that_present_versions = true && that.isSetVersions();
      if (this_present_versions || that_present_versions) {
        if (!(this_present_versions && that_present_versions))
          return false;
        if (!this.versions.equals(that.versions))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      deleteOldVersions_args typedOther = (deleteOldVersions_args)other;

      lastComparison = Boolean.valueOf(isSetVersions()).compareTo(typedOther.isSetVersions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetVersions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.versions, typedOther.versions);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // VERSIONS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
                this.versions = new ArrayList(_list4.size);
                for (int _i5 = 0; _i5 < _list4.size; ++_i5)
                {
                  TablespaceVersion _elem6; // required
                  _elem6 = new TablespaceVersion();
                  _elem6.read(iprot);
                  this.versions.add(_elem6);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.versions != null) {
        oprot.writeFieldBegin(VERSIONS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.versions.size()));
          for (TablespaceVersion _iter7 : this.versions)
          {
            _iter7.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteOldVersions_args(");
      boolean first = true;

      sb.append("versions:");
      if (this.versions == null) {
        sb.append("null");
      } else {
        sb.append(this.versions);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class deleteOldVersions_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteOldVersions_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(deleteOldVersions_result.class, metaDataMap);
    }

    public deleteOldVersions_result() {
    }

    public deleteOldVersions_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteOldVersions_result(deleteOldVersions_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public deleteOldVersions_result deepCopy() {
      return new deleteOldVersions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public deleteOldVersions_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 DNodeException getExcep() {
      return this.excep;
    }

    public deleteOldVersions_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteOldVersions_result)
        return this.equals((deleteOldVersions_result)that);
      return false;
    }

    public boolean equals(deleteOldVersions_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      deleteOldVersions_result typedOther = (deleteOldVersions_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteOldVersions_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class deploy_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deploy_args");

    private static final org.apache.thrift.protocol.TField DEPLOY_ACTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("deployActions", org.apache.thrift.protocol.TType.LIST, (short)1);
    private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)2);

    public List deployActions; // required
    public long version; // 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 {
      DEPLOY_ACTIONS((short)1, "deployActions"),
      VERSION((short)2, "version");

      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: // DEPLOY_ACTIONS
            return DEPLOY_ACTIONS;
          case 2: // VERSION
            return VERSION;
          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 __VERSION_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    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.DEPLOY_ACTIONS, new org.apache.thrift.meta_data.FieldMetaData("deployActions", 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, DeployAction.class))));
      tmpMap.put(_Fields.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deploy_args.class, metaDataMap);
    }

    public deploy_args() {
    }

    public deploy_args(
      List deployActions,
      long version)
    {
      this();
      this.deployActions = deployActions;
      this.version = version;
      setVersionIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public deploy_args(deploy_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetDeployActions()) {
        List __this__deployActions = new ArrayList();
        for (DeployAction other_element : other.deployActions) {
          __this__deployActions.add(new DeployAction(other_element));
        }
        this.deployActions = __this__deployActions;
      }
      this.version = other.version;
    }

    public deploy_args deepCopy() {
      return new deploy_args(this);
    }

    @Override
    public void clear() {
      this.deployActions = null;
      setVersionIsSet(false);
      this.version = 0;
    }

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

    public java.util.Iterator getDeployActionsIterator() {
      return (this.deployActions == null) ? null : this.deployActions.iterator();
    }

    public void addToDeployActions(DeployAction elem) {
      if (this.deployActions == null) {
        this.deployActions = new ArrayList();
      }
      this.deployActions.add(elem);
    }

    public List getDeployActions() {
      return this.deployActions;
    }

    public deploy_args setDeployActions(List deployActions) {
      this.deployActions = deployActions;
      return this;
    }

    public void unsetDeployActions() {
      this.deployActions = null;
    }

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

    public void setDeployActionsIsSet(boolean value) {
      if (!value) {
        this.deployActions = null;
      }
    }

    public long getVersion() {
      return this.version;
    }

    public deploy_args setVersion(long version) {
      this.version = version;
      setVersionIsSet(true);
      return this;
    }

    public void unsetVersion() {
      __isset_bit_vector.clear(__VERSION_ISSET_ID);
    }

    /** Returns true if field version is set (has been assigned a value) and false otherwise */
    public boolean isSetVersion() {
      return __isset_bit_vector.get(__VERSION_ISSET_ID);
    }

    public void setVersionIsSet(boolean value) {
      __isset_bit_vector.set(__VERSION_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case DEPLOY_ACTIONS:
        if (value == null) {
          unsetDeployActions();
        } else {
          setDeployActions((List)value);
        }
        break;

      case VERSION:
        if (value == null) {
          unsetVersion();
        } else {
          setVersion((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case DEPLOY_ACTIONS:
        return getDeployActions();

      case VERSION:
        return Long.valueOf(getVersion());

      }
      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 DEPLOY_ACTIONS:
        return isSetDeployActions();
      case VERSION:
        return isSetVersion();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deploy_args)
        return this.equals((deploy_args)that);
      return false;
    }

    public boolean equals(deploy_args that) {
      if (that == null)
        return false;

      boolean this_present_deployActions = true && this.isSetDeployActions();
      boolean that_present_deployActions = true && that.isSetDeployActions();
      if (this_present_deployActions || that_present_deployActions) {
        if (!(this_present_deployActions && that_present_deployActions))
          return false;
        if (!this.deployActions.equals(that.deployActions))
          return false;
      }

      boolean this_present_version = true;
      boolean that_present_version = true;
      if (this_present_version || that_present_version) {
        if (!(this_present_version && that_present_version))
          return false;
        if (this.version != that.version)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      deploy_args typedOther = (deploy_args)other;

      lastComparison = Boolean.valueOf(isSetDeployActions()).compareTo(typedOther.isSetDeployActions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeployActions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deployActions, typedOther.deployActions);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetVersion()).compareTo(typedOther.isSetVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, typedOther.version);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // DEPLOY_ACTIONS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
                this.deployActions = new ArrayList(_list8.size);
                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
                {
                  DeployAction _elem10; // required
                  _elem10 = new DeployAction();
                  _elem10.read(iprot);
                  this.deployActions.add(_elem10);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // VERSION
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.version = iprot.readI64();
              setVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.deployActions != null) {
        oprot.writeFieldBegin(DEPLOY_ACTIONS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.deployActions.size()));
          for (DeployAction _iter11 : this.deployActions)
          {
            _iter11.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(VERSION_FIELD_DESC);
      oprot.writeI64(this.version);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deploy_args(");
      boolean first = true;

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

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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_bit_vector = new BitSet(1);
        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);
      }
    }

  }

  public static class deploy_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deploy_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(deploy_result.class, metaDataMap);
    }

    public deploy_result() {
    }

    public deploy_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public deploy_result(deploy_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public deploy_result deepCopy() {
      return new deploy_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public deploy_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 DNodeException getExcep() {
      return this.excep;
    }

    public deploy_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deploy_result)
        return this.equals((deploy_result)that);
      return false;
    }

    public boolean equals(deploy_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      deploy_result typedOther = (deploy_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deploy_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class rollback_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rollback_args");

    private static final org.apache.thrift.protocol.TField ROLLBACK_ACTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("rollbackActions", org.apache.thrift.protocol.TType.LIST, (short)1);
    private static final org.apache.thrift.protocol.TField DISTRIBUTED_BARRIER_FIELD_DESC = new org.apache.thrift.protocol.TField("distributedBarrier", org.apache.thrift.protocol.TType.STRING, (short)2);

    public List rollbackActions; // required
    public String distributedBarrier; // 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 {
      ROLLBACK_ACTIONS((short)1, "rollbackActions"),
      DISTRIBUTED_BARRIER((short)2, "distributedBarrier");

      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: // ROLLBACK_ACTIONS
            return ROLLBACK_ACTIONS;
          case 2: // DISTRIBUTED_BARRIER
            return DISTRIBUTED_BARRIER;
          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.ROLLBACK_ACTIONS, new org.apache.thrift.meta_data.FieldMetaData("rollbackActions", 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, RollbackAction.class))));
      tmpMap.put(_Fields.DISTRIBUTED_BARRIER, new org.apache.thrift.meta_data.FieldMetaData("distributedBarrier", 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(rollback_args.class, metaDataMap);
    }

    public rollback_args() {
    }

    public rollback_args(
      List rollbackActions,
      String distributedBarrier)
    {
      this();
      this.rollbackActions = rollbackActions;
      this.distributedBarrier = distributedBarrier;
    }

    /**
     * Performs a deep copy on other.
     */
    public rollback_args(rollback_args other) {
      if (other.isSetRollbackActions()) {
        List __this__rollbackActions = new ArrayList();
        for (RollbackAction other_element : other.rollbackActions) {
          __this__rollbackActions.add(new RollbackAction(other_element));
        }
        this.rollbackActions = __this__rollbackActions;
      }
      if (other.isSetDistributedBarrier()) {
        this.distributedBarrier = other.distributedBarrier;
      }
    }

    public rollback_args deepCopy() {
      return new rollback_args(this);
    }

    @Override
    public void clear() {
      this.rollbackActions = null;
      this.distributedBarrier = null;
    }

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

    public java.util.Iterator getRollbackActionsIterator() {
      return (this.rollbackActions == null) ? null : this.rollbackActions.iterator();
    }

    public void addToRollbackActions(RollbackAction elem) {
      if (this.rollbackActions == null) {
        this.rollbackActions = new ArrayList();
      }
      this.rollbackActions.add(elem);
    }

    public List getRollbackActions() {
      return this.rollbackActions;
    }

    public rollback_args setRollbackActions(List rollbackActions) {
      this.rollbackActions = rollbackActions;
      return this;
    }

    public void unsetRollbackActions() {
      this.rollbackActions = null;
    }

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

    public void setRollbackActionsIsSet(boolean value) {
      if (!value) {
        this.rollbackActions = null;
      }
    }

    public String getDistributedBarrier() {
      return this.distributedBarrier;
    }

    public rollback_args setDistributedBarrier(String distributedBarrier) {
      this.distributedBarrier = distributedBarrier;
      return this;
    }

    public void unsetDistributedBarrier() {
      this.distributedBarrier = null;
    }

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

    public void setDistributedBarrierIsSet(boolean value) {
      if (!value) {
        this.distributedBarrier = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ROLLBACK_ACTIONS:
        if (value == null) {
          unsetRollbackActions();
        } else {
          setRollbackActions((List)value);
        }
        break;

      case DISTRIBUTED_BARRIER:
        if (value == null) {
          unsetDistributedBarrier();
        } else {
          setDistributedBarrier((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ROLLBACK_ACTIONS:
        return getRollbackActions();

      case DISTRIBUTED_BARRIER:
        return getDistributedBarrier();

      }
      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 ROLLBACK_ACTIONS:
        return isSetRollbackActions();
      case DISTRIBUTED_BARRIER:
        return isSetDistributedBarrier();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof rollback_args)
        return this.equals((rollback_args)that);
      return false;
    }

    public boolean equals(rollback_args that) {
      if (that == null)
        return false;

      boolean this_present_rollbackActions = true && this.isSetRollbackActions();
      boolean that_present_rollbackActions = true && that.isSetRollbackActions();
      if (this_present_rollbackActions || that_present_rollbackActions) {
        if (!(this_present_rollbackActions && that_present_rollbackActions))
          return false;
        if (!this.rollbackActions.equals(that.rollbackActions))
          return false;
      }

      boolean this_present_distributedBarrier = true && this.isSetDistributedBarrier();
      boolean that_present_distributedBarrier = true && that.isSetDistributedBarrier();
      if (this_present_distributedBarrier || that_present_distributedBarrier) {
        if (!(this_present_distributedBarrier && that_present_distributedBarrier))
          return false;
        if (!this.distributedBarrier.equals(that.distributedBarrier))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      rollback_args typedOther = (rollback_args)other;

      lastComparison = Boolean.valueOf(isSetRollbackActions()).compareTo(typedOther.isSetRollbackActions());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRollbackActions()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rollbackActions, typedOther.rollbackActions);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDistributedBarrier()).compareTo(typedOther.isSetDistributedBarrier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDistributedBarrier()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.distributedBarrier, typedOther.distributedBarrier);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ROLLBACK_ACTIONS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
                this.rollbackActions = new ArrayList(_list12.size);
                for (int _i13 = 0; _i13 < _list12.size; ++_i13)
                {
                  RollbackAction _elem14; // required
                  _elem14 = new RollbackAction();
                  _elem14.read(iprot);
                  this.rollbackActions.add(_elem14);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // DISTRIBUTED_BARRIER
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.distributedBarrier = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.rollbackActions != null) {
        oprot.writeFieldBegin(ROLLBACK_ACTIONS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.rollbackActions.size()));
          for (RollbackAction _iter15 : this.rollbackActions)
          {
            _iter15.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (this.distributedBarrier != null) {
        oprot.writeFieldBegin(DISTRIBUTED_BARRIER_FIELD_DESC);
        oprot.writeString(this.distributedBarrier);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("rollback_args(");
      boolean first = true;

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

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class rollback_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rollback_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(rollback_result.class, metaDataMap);
    }

    public rollback_result() {
    }

    public rollback_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public rollback_result(rollback_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public rollback_result deepCopy() {
      return new rollback_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public rollback_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 DNodeException getExcep() {
      return this.excep;
    }

    public rollback_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof rollback_result)
        return this.equals((rollback_result)that);
      return false;
    }

    public boolean equals(rollback_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      rollback_result typedOther = (rollback_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("rollback_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class status_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("status_args");



    /** 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(status_args.class, metaDataMap);
    }

    public status_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public status_args(status_args other) {
    }

    public status_args deepCopy() {
      return new status_args(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 status_args)
        return this.equals((status_args)that);
      return false;
    }

    public boolean equals(status_args that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      status_args typedOther = (status_args)other;

      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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("status_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class status_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("status_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(status_result.class, metaDataMap);
    }

    public status_result() {
    }

    public status_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public status_result(status_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public status_result deepCopy() {
      return new status_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public status_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 DNodeException getExcep() {
      return this.excep;
    }

    public status_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof status_result)
        return this.equals((status_result)that);
      return false;
    }

    public boolean equals(status_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      status_result typedOther = (status_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("status_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class abortDeploy_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abortDeploy_args");

    private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)1);

    public long version; // 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 {
      VERSION((short)1, "version");

      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: // VERSION
            return VERSION;
          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 __VERSION_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    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.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(abortDeploy_args.class, metaDataMap);
    }

    public abortDeploy_args() {
    }

    public abortDeploy_args(
      long version)
    {
      this();
      this.version = version;
      setVersionIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public abortDeploy_args(abortDeploy_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.version = other.version;
    }

    public abortDeploy_args deepCopy() {
      return new abortDeploy_args(this);
    }

    @Override
    public void clear() {
      setVersionIsSet(false);
      this.version = 0;
    }

    public long getVersion() {
      return this.version;
    }

    public abortDeploy_args setVersion(long version) {
      this.version = version;
      setVersionIsSet(true);
      return this;
    }

    public void unsetVersion() {
      __isset_bit_vector.clear(__VERSION_ISSET_ID);
    }

    /** Returns true if field version is set (has been assigned a value) and false otherwise */
    public boolean isSetVersion() {
      return __isset_bit_vector.get(__VERSION_ISSET_ID);
    }

    public void setVersionIsSet(boolean value) {
      __isset_bit_vector.set(__VERSION_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case VERSION:
        if (value == null) {
          unsetVersion();
        } else {
          setVersion((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case VERSION:
        return Long.valueOf(getVersion());

      }
      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 VERSION:
        return isSetVersion();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof abortDeploy_args)
        return this.equals((abortDeploy_args)that);
      return false;
    }

    public boolean equals(abortDeploy_args that) {
      if (that == null)
        return false;

      boolean this_present_version = true;
      boolean that_present_version = true;
      if (this_present_version || that_present_version) {
        if (!(this_present_version && that_present_version))
          return false;
        if (this.version != that.version)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      abortDeploy_args typedOther = (abortDeploy_args)other;

      lastComparison = Boolean.valueOf(isSetVersion()).compareTo(typedOther.isSetVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, typedOther.version);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // VERSION
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.version = iprot.readI64();
              setVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(VERSION_FIELD_DESC);
      oprot.writeI64(this.version);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("abortDeploy_args(");
      boolean first = true;

      sb.append("version:");
      sb.append(this.version);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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_bit_vector = new BitSet(1);
        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);
      }
    }

  }

  public static class abortDeploy_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abortDeploy_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(abortDeploy_result.class, metaDataMap);
    }

    public abortDeploy_result() {
    }

    public abortDeploy_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public abortDeploy_result(abortDeploy_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public abortDeploy_result deepCopy() {
      return new abortDeploy_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public abortDeploy_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 DNodeException getExcep() {
      return this.excep;
    }

    public abortDeploy_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof abortDeploy_result)
        return this.equals((abortDeploy_result)that);
      return false;
    }

    public boolean equals(abortDeploy_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      abortDeploy_result typedOther = (abortDeploy_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("abortDeploy_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class testCommand_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testCommand_args");

    private static final org.apache.thrift.protocol.TField COMMAND_FIELD_DESC = new org.apache.thrift.protocol.TField("command", org.apache.thrift.protocol.TType.STRING, (short)1);

    public String command; // 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 {
      COMMAND((short)1, "command");

      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: // COMMAND
            return COMMAND;
          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.COMMAND, new org.apache.thrift.meta_data.FieldMetaData("command", 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(testCommand_args.class, metaDataMap);
    }

    public testCommand_args() {
    }

    public testCommand_args(
      String command)
    {
      this();
      this.command = command;
    }

    /**
     * Performs a deep copy on other.
     */
    public testCommand_args(testCommand_args other) {
      if (other.isSetCommand()) {
        this.command = other.command;
      }
    }

    public testCommand_args deepCopy() {
      return new testCommand_args(this);
    }

    @Override
    public void clear() {
      this.command = null;
    }

    public String getCommand() {
      return this.command;
    }

    public testCommand_args setCommand(String command) {
      this.command = command;
      return this;
    }

    public void unsetCommand() {
      this.command = null;
    }

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

    public void setCommandIsSet(boolean value) {
      if (!value) {
        this.command = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case COMMAND:
        if (value == null) {
          unsetCommand();
        } else {
          setCommand((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case COMMAND:
        return getCommand();

      }
      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 COMMAND:
        return isSetCommand();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testCommand_args)
        return this.equals((testCommand_args)that);
      return false;
    }

    public boolean equals(testCommand_args that) {
      if (that == null)
        return false;

      boolean this_present_command = true && this.isSetCommand();
      boolean that_present_command = true && that.isSetCommand();
      if (this_present_command || that_present_command) {
        if (!(this_present_command && that_present_command))
          return false;
        if (!this.command.equals(that.command))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      testCommand_args typedOther = (testCommand_args)other;

      lastComparison = Boolean.valueOf(isSetCommand()).compareTo(typedOther.isSetCommand());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCommand()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.command, typedOther.command);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // COMMAND
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.command = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.command != null) {
        oprot.writeFieldBegin(COMMAND_FIELD_DESC);
        oprot.writeString(this.command);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testCommand_args(");
      boolean first = true;

      sb.append("command:");
      if (this.command == null) {
        sb.append("null");
      } else {
        sb.append(this.command);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

  public static class testCommand_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("testCommand_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 EXCEP_FIELD_DESC = new org.apache.thrift.protocol.TField("excep", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    public String success; // required
    public DNodeException excep; // 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"),
      EXCEP((short)1, "excep");

      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: // EXCEP
            return EXCEP;
          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.EXCEP, new org.apache.thrift.meta_data.FieldMetaData("excep", 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(testCommand_result.class, metaDataMap);
    }

    public testCommand_result() {
    }

    public testCommand_result(
      String success,
      DNodeException excep)
    {
      this();
      this.success = success;
      this.excep = excep;
    }

    /**
     * Performs a deep copy on other.
     */
    public testCommand_result(testCommand_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetExcep()) {
        this.excep = new DNodeException(other.excep);
      }
    }

    public testCommand_result deepCopy() {
      return new testCommand_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.excep = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public testCommand_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 DNodeException getExcep() {
      return this.excep;
    }

    public testCommand_result setExcep(DNodeException excep) {
      this.excep = excep;
      return this;
    }

    public void unsetExcep() {
      this.excep = null;
    }

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

    public void setExcepIsSet(boolean value) {
      if (!value) {
        this.excep = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case EXCEP:
        if (value == null) {
          unsetExcep();
        } else {
          setExcep((DNodeException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EXCEP:
        return getExcep();

      }
      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 EXCEP:
        return isSetExcep();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof testCommand_result)
        return this.equals((testCommand_result)that);
      return false;
    }

    public boolean equals(testCommand_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_excep = true && this.isSetExcep();
      boolean that_present_excep = true && that.isSetExcep();
      if (this_present_excep || that_present_excep) {
        if (!(this_present_excep && that_present_excep))
          return false;
        if (!this.excep.equals(that.excep))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

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

      int lastComparison = 0;
      testCommand_result typedOther = (testCommand_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExcep()).compareTo(typedOther.isSetExcep());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExcep()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.excep, typedOther.excep);
        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 {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // EXCEP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.excep = new DNodeException();
              this.excep.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetExcep()) {
        oprot.writeFieldBegin(EXCEP_FIELD_DESC);
        this.excep.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("testCommand_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("excep:");
      if (this.excep == null) {
        sb.append("null");
      } else {
        sb.append(this.excep);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    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);
      }
    }

  }

}