content: /**
   * Autogenerated by Thrift Compiler (0.7.0)
   *
   * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
   */
  package backtype.storm.generated;
  
  import org.apache.commons.lang.builder.HashCodeBuilder;
  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 Nimbus {
  
    public interface Iface {
  
      public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift7.TException;
  
      public void killTopology(String name) throws NotAliveException, org.apache.thrift7.TException;
  
      public void killTopologyWithOpts(String name, KillOptions options) throws NotAliveException, org.apache.thrift7.TException;
  
      public void activate(String name) throws NotAliveException, org.apache.thrift7.TException;
  
      public void deactivate(String name) throws NotAliveException, org.apache.thrift7.TException;
  
      public void rebalance(String name, RebalanceOptions options) throws NotAliveException, org.apache.thrift7.TException;
  
      public String beginFileUpload() throws org.apache.thrift7.TException;
  
      public void uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift7.TException;
  
      public void finishFileUpload(String location) throws org.apache.thrift7.TException;
  
      public String beginFileDownload(String file) throws org.apache.thrift7.TException;
  
      public ByteBuffer downloadChunk(String id) throws org.apache.thrift7.TException;
  
      public ClusterSummary getClusterInfo() throws org.apache.thrift7.TException;
  
      public TopologyInfo getTopologyInfo(String id) throws NotAliveException, org.apache.thrift7.TException;
  
      public String getTopologyConf(String id) throws NotAliveException, org.apache.thrift7.TException;
  
      public StormTopology getTopology(String id) throws NotAliveException, org.apache.thrift7.TException;
  
    }
  
    public interface AsyncIface {
  
      public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.submitTopology_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void killTopology(String name, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.killTopology_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void killTopologyWithOpts(String name, KillOptions options, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.killTopologyWithOpts_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void activate(String name, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.activate_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void deactivate(String name, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.deactivate_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void rebalance(String name, RebalanceOptions options, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.rebalance_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void beginFileUpload(org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.beginFileUpload_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void uploadChunk(String location, ByteBuffer chunk, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.uploadChunk_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void finishFileUpload(String location, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.finishFileUpload_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void beginFileDownload(String file, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.beginFileDownload_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void downloadChunk(String id, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.downloadChunk_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void getClusterInfo(org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.getClusterInfo_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void getTopologyInfo(String id, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.getTopologyInfo_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void getTopologyConf(String id, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.getTopologyConf_call> resultHandler) throws org.apache.thrift7.TException;
  
      public void getTopology(String id, org.apache.thrift7.async.AsyncMethodCallback<AsyncClient.getTopology_call> resultHandler) throws org.apache.thrift7.TException;
  
    }
  
    public static class Client extends org.apache.thrift7.TServiceClient implements Iface {
      public static class Factory implements org.apache.thrift7.TServiceClientFactory<Client> {
        public Factory() {}
        public Client getClient(org.apache.thrift7.protocol.TProtocol prot) {
          return new Client(prot);
        }
        public Client getClient(org.apache.thrift7.protocol.TProtocol iprot, org.apache.thrift7.protocol.TProtocol oprot) {
          return new Client(iprot, oprot);
        }
      }
  
      public Client(org.apache.thrift7.protocol.TProtocol prot)
      {
        super(prot, prot);
      }
  
      public Client(org.apache.thrift7.protocol.TProtocol iprot, org.apache.thrift7.protocol.TProtocol oprot) {
        super(iprot, oprot);
      }
  
      public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift7.TException
      {
        send_submitTopology(name, uploadedJarLocation, jsonConf, topology);
        recv_submitTopology();
      }
  
      public void send_submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws org.apache.thrift7.TException
      {
        submitTopology_args args = new submitTopology_args();
        args.set_name(name);
        args.set_uploadedJarLocation(uploadedJarLocation);
        args.set_jsonConf(jsonConf);
        args.set_topology(topology);
        sendBase("submitTopology", args);
      }
  
      public void recv_submitTopology() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift7.TException
      {
        submitTopology_result result = new submitTopology_result();
        receiveBase(result, "submitTopology");
        if (result.e != null) {
          throw result.e;
        }
        if (result.ite != null) {
          throw result.ite;
        }
        return;
      }
  
      public void killTopology(String name) throws NotAliveException, org.apache.thrift7.TException
      {
        send_killTopology(name);
        recv_killTopology();
      }
  
      public void send_killTopology(String name) throws org.apache.thrift7.TException
      {
        killTopology_args args = new killTopology_args();
        args.set_name(name);
        sendBase("killTopology", args);
      }
  
      public void recv_killTopology() throws NotAliveException, org.apache.thrift7.TException
      {
        killTopology_result result = new killTopology_result();
        receiveBase(result, "killTopology");
        if (result.e != null) {
          throw result.e;
        }
        return;
      }
  
      public void killTopologyWithOpts(String name, KillOptions options) throws NotAliveException, org.apache.thrift7.TException
      {
        send_killTopologyWithOpts(name, options);
        recv_killTopologyWithOpts();
      }
  
      public void send_killTopologyWithOpts(String name, KillOptions options) throws org.apache.thrift7.TException
      {
        killTopologyWithOpts_args args = new killTopologyWithOpts_args();
        args.set_name(name);
        args.set_options(options);
        sendBase("killTopologyWithOpts", args);
      }
  
      public void recv_killTopologyWithOpts() throws NotAliveException, org.apache.thrift7.TException
      {
        killTopologyWithOpts_result result = new killTopologyWithOpts_result();
        receiveBase(result, "killTopologyWithOpts");
        if (result.e != null) {
          throw result.e;
        }
        return;
      }
  
      public void activate(String name) throws NotAliveException, org.apache.thrift7.TException
      {
        send_activate(name);
        recv_activate();
      }
  
      public void send_activate(String name) throws org.apache.thrift7.TException
      {
        activate_args args = new activate_args();
        args.set_name(name);
        sendBase("activate", args);
      }
  
      public void recv_activate() throws NotAliveException, org.apache.thrift7.TException
      {
        activate_result result = new activate_result();
        receiveBase(result, "activate");
        if (result.e != null) {
          throw result.e;
        }
        return;
      }
  
      public void deactivate(String name) throws NotAliveException, org.apache.thrift7.TException
      {
        send_deactivate(name);
        recv_deactivate();
      }
  
      public void send_deactivate(String name) throws org.apache.thrift7.TException
      {
        deactivate_args args = new deactivate_args();
        args.set_name(name);
        sendBase("deactivate", args);
      }
  
      public void recv_deactivate() throws NotAliveException, org.apache.thrift7.TException
      {
        deactivate_result result = new deactivate_result();
        receiveBase(result, "deactivate");
        if (result.e != null) {
          throw result.e;
        }
        return;
      }
  
      public void rebalance(String name, RebalanceOptions options) throws NotAliveException, org.apache.thrift7.TException
      {
        send_rebalance(name, options);
        recv_rebalance();
      }
  
      public void send_rebalance(String name, RebalanceOptions options) throws org.apache.thrift7.TException
      {
        rebalance_args args = new rebalance_args();
        args.set_name(name);
        args.set_options(options);
        sendBase("rebalance", args);
      }
  
      public void recv_rebalance() throws NotAliveException, org.apache.thrift7.TException
      {
        rebalance_result result = new rebalance_result();
        receiveBase(result, "rebalance");
        if (result.e != null) {
          throw result.e;
        }
        return;
      }
  
      public String beginFileUpload() throws org.apache.thrift7.TException
      {
        send_beginFileUpload();
        return recv_beginFileUpload();
      }
  
      public void send_beginFileUpload() throws org.apache.thrift7.TException
      {
        beginFileUpload_args args = new beginFileUpload_args();
        sendBase("beginFileUpload", args);
      }
  
      public String recv_beginFileUpload() throws org.apache.thrift7.TException
      {
        beginFileUpload_result result = new beginFileUpload_result();
        receiveBase(result, "beginFileUpload");
        if (result.is_set_success()) {
          return result.success;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "beginFileUpload failed: unknown result");
      }
  
      public void uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift7.TException
      {
        send_uploadChunk(location, chunk);
        recv_uploadChunk();
      }
  
      public void send_uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift7.TException
      {
        uploadChunk_args args = new uploadChunk_args();
        args.set_location(location);
        args.set_chunk(chunk);
        sendBase("uploadChunk", args);
      }
  
      public void recv_uploadChunk() throws org.apache.thrift7.TException
      {
        uploadChunk_result result = new uploadChunk_result();
        receiveBase(result, "uploadChunk");
        return;
      }
  
      public void finishFileUpload(String location) throws org.apache.thrift7.TException
      {
        send_finishFileUpload(location);
        recv_finishFileUpload();
      }
  
      public void send_finishFileUpload(String location) throws org.apache.thrift7.TException
      {
        finishFileUpload_args args = new finishFileUpload_args();
        args.set_location(location);
        sendBase("finishFileUpload", args);
      }
  
      public void recv_finishFileUpload() throws org.apache.thrift7.TException
      {
        finishFileUpload_result result = new finishFileUpload_result();
        receiveBase(result, "finishFileUpload");
        return;
      }
  
      public String beginFileDownload(String file) throws org.apache.thrift7.TException
      {
        send_beginFileDownload(file);
        return recv_beginFileDownload();
      }
  
      public void send_beginFileDownload(String file) throws org.apache.thrift7.TException
      {
        beginFileDownload_args args = new beginFileDownload_args();
        args.set_file(file);
        sendBase("beginFileDownload", args);
      }
  
      public String recv_beginFileDownload() throws org.apache.thrift7.TException
      {
        beginFileDownload_result result = new beginFileDownload_result();
        receiveBase(result, "beginFileDownload");
        if (result.is_set_success()) {
          return result.success;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "beginFileDownload failed: unknown result");
      }
  
      public ByteBuffer downloadChunk(String id) throws org.apache.thrift7.TException
      {
        send_downloadChunk(id);
        return recv_downloadChunk();
      }
  
      public void send_downloadChunk(String id) throws org.apache.thrift7.TException
      {
        downloadChunk_args args = new downloadChunk_args();
        args.set_id(id);
        sendBase("downloadChunk", args);
      }
  
      public ByteBuffer recv_downloadChunk() throws org.apache.thrift7.TException
      {
        downloadChunk_result result = new downloadChunk_result();
        receiveBase(result, "downloadChunk");
        if (result.is_set_success()) {
          return result.success;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "downloadChunk failed: unknown result");
      }
  
      public ClusterSummary getClusterInfo() throws org.apache.thrift7.TException
      {
        send_getClusterInfo();
        return recv_getClusterInfo();
      }
  
      public void send_getClusterInfo() throws org.apache.thrift7.TException
      {
        getClusterInfo_args args = new getClusterInfo_args();
        sendBase("getClusterInfo", args);
      }
  
      public ClusterSummary recv_getClusterInfo() throws org.apache.thrift7.TException
      {
        getClusterInfo_result result = new getClusterInfo_result();
        receiveBase(result, "getClusterInfo");
        if (result.is_set_success()) {
          return result.success;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "getClusterInfo failed: unknown result");
      }
  
      public TopologyInfo getTopologyInfo(String id) throws NotAliveException, org.apache.thrift7.TException
      {
        send_getTopologyInfo(id);
        return recv_getTopologyInfo();
      }
  
      public void send_getTopologyInfo(String id) throws org.apache.thrift7.TException
      {
        getTopologyInfo_args args = new getTopologyInfo_args();
        args.set_id(id);
        sendBase("getTopologyInfo", args);
      }
  
      public TopologyInfo recv_getTopologyInfo() throws NotAliveException, org.apache.thrift7.TException
      {
        getTopologyInfo_result result = new getTopologyInfo_result();
        receiveBase(result, "getTopologyInfo");
        if (result.is_set_success()) {
          return result.success;
        }
        if (result.e != null) {
          throw result.e;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "getTopologyInfo failed: unknown result");
      }
  
      public String getTopologyConf(String id) throws NotAliveException, org.apache.thrift7.TException
      {
        send_getTopologyConf(id);
        return recv_getTopologyConf();
      }
  
      public void send_getTopologyConf(String id) throws org.apache.thrift7.TException
      {
        getTopologyConf_args args = new getTopologyConf_args();
        args.set_id(id);
        sendBase("getTopologyConf", args);
      }
  
      public String recv_getTopologyConf() throws NotAliveException, org.apache.thrift7.TException
      {
        getTopologyConf_result result = new getTopologyConf_result();
        receiveBase(result, "getTopologyConf");
        if (result.is_set_success()) {
          return result.success;
        }
        if (result.e != null) {
          throw result.e;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "getTopologyConf failed: unknown result");
      }
  
      public StormTopology getTopology(String id) throws NotAliveException, org.apache.thrift7.TException
      {
        send_getTopology(id);
        return recv_getTopology();
      }
  
      public void send_getTopology(String id) throws org.apache.thrift7.TException
      {
        getTopology_args args = new getTopology_args();
        args.set_id(id);
        sendBase("getTopology", args);
      }
  
      public StormTopology recv_getTopology() throws NotAliveException, org.apache.thrift7.TException
      {
        getTopology_result result = new getTopology_result();
        receiveBase(result, "getTopology");
        if (result.is_set_success()) {
          return result.success;
        }
        if (result.e != null) {
          throw result.e;
        }
        throw new org.apache.thrift7.TApplicationException(org.apache.thrift7.TApplicationException.MISSING_RESULT, "getTopology failed: unknown result");
      }
  
    }
    public static class AsyncClient extends org.apache.thrift7.async.TAsyncClient implements AsyncIface {
      public static class Factory implements org.apache.thrift7.async.TAsyncClientFactory<AsyncClient> {
        private org.apache.thrift7.async.TAsyncClientManager clientManager;
        private org.apache.thrift7.protocol.TProtocolFactory protocolFactory;
        public Factory(org.apache.thrift7.async.TAsyncClientManager clientManager, org.apache.thrift7.protocol.TProtocolFactory protocolFactory) {
          this.clientManager = clientManager;
          this.protocolFactory = protocolFactory;
        }
        public AsyncClient getAsyncClient(org.apache.thrift7.transport.TNonblockingTransport transport) {
          return new AsyncClient(protocolFactory, clientManager, transport);
        }
      }
  
      public AsyncClient(org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.async.TAsyncClientManager clientManager, org.apache.thrift7.transport.TNonblockingTransport transport) {
        super(protocolFactory, clientManager, transport);
      }
  
      public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift7.async.AsyncMethodCallback<submitTopology_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        submitTopology_call method_call = new submitTopology_call(name, uploadedJarLocation, jsonConf, topology, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class submitTopology_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        private String uploadedJarLocation;
        private String jsonConf;
        private StormTopology topology;
        public submitTopology_call(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift7.async.AsyncMethodCallback<submitTopology_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
          this.uploadedJarLocation = uploadedJarLocation;
          this.jsonConf = jsonConf;
          this.topology = topology;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("submitTopology", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          submitTopology_args args = new submitTopology_args();
          args.set_name(name);
          args.set_uploadedJarLocation(uploadedJarLocation);
          args.set_jsonConf(jsonConf);
          args.set_topology(topology);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_submitTopology();
        }
      }
  
      public void killTopology(String name, org.apache.thrift7.async.AsyncMethodCallback<killTopology_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        killTopology_call method_call = new killTopology_call(name, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class killTopology_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        public killTopology_call(String name, org.apache.thrift7.async.AsyncMethodCallback<killTopology_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("killTopology", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          killTopology_args args = new killTopology_args();
          args.set_name(name);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_killTopology();
        }
      }
  
      public void killTopologyWithOpts(String name, KillOptions options, org.apache.thrift7.async.AsyncMethodCallback<killTopologyWithOpts_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        killTopologyWithOpts_call method_call = new killTopologyWithOpts_call(name, options, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class killTopologyWithOpts_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        private KillOptions options;
        public killTopologyWithOpts_call(String name, KillOptions options, org.apache.thrift7.async.AsyncMethodCallback<killTopologyWithOpts_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
          this.options = options;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("killTopologyWithOpts", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          killTopologyWithOpts_args args = new killTopologyWithOpts_args();
          args.set_name(name);
          args.set_options(options);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_killTopologyWithOpts();
        }
      }
  
      public void activate(String name, org.apache.thrift7.async.AsyncMethodCallback<activate_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        activate_call method_call = new activate_call(name, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class activate_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        public activate_call(String name, org.apache.thrift7.async.AsyncMethodCallback<activate_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("activate", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          activate_args args = new activate_args();
          args.set_name(name);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_activate();
        }
      }
  
      public void deactivate(String name, org.apache.thrift7.async.AsyncMethodCallback<deactivate_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        deactivate_call method_call = new deactivate_call(name, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class deactivate_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        public deactivate_call(String name, org.apache.thrift7.async.AsyncMethodCallback<deactivate_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("deactivate", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          deactivate_args args = new deactivate_args();
          args.set_name(name);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_deactivate();
        }
      }
  
      public void rebalance(String name, RebalanceOptions options, org.apache.thrift7.async.AsyncMethodCallback<rebalance_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        rebalance_call method_call = new rebalance_call(name, options, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class rebalance_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String name;
        private RebalanceOptions options;
        public rebalance_call(String name, RebalanceOptions options, org.apache.thrift7.async.AsyncMethodCallback<rebalance_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.name = name;
          this.options = options;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("rebalance", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          rebalance_args args = new rebalance_args();
          args.set_name(name);
          args.set_options(options);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_rebalance();
        }
      }
  
      public void beginFileUpload(org.apache.thrift7.async.AsyncMethodCallback<beginFileUpload_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        beginFileUpload_call method_call = new beginFileUpload_call(resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class beginFileUpload_call extends org.apache.thrift7.async.TAsyncMethodCall {
        public beginFileUpload_call(org.apache.thrift7.async.AsyncMethodCallback<beginFileUpload_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("beginFileUpload", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          beginFileUpload_args args = new beginFileUpload_args();
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public String getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_beginFileUpload();
        }
      }
  
      public void uploadChunk(String location, ByteBuffer chunk, org.apache.thrift7.async.AsyncMethodCallback<uploadChunk_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        uploadChunk_call method_call = new uploadChunk_call(location, chunk, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class uploadChunk_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String location;
        private ByteBuffer chunk;
        public uploadChunk_call(String location, ByteBuffer chunk, org.apache.thrift7.async.AsyncMethodCallback<uploadChunk_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.location = location;
          this.chunk = chunk;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("uploadChunk", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          uploadChunk_args args = new uploadChunk_args();
          args.set_location(location);
          args.set_chunk(chunk);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_uploadChunk();
        }
      }
  
      public void finishFileUpload(String location, org.apache.thrift7.async.AsyncMethodCallback<finishFileUpload_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        finishFileUpload_call method_call = new finishFileUpload_call(location, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class finishFileUpload_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String location;
        public finishFileUpload_call(String location, org.apache.thrift7.async.AsyncMethodCallback<finishFileUpload_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.location = location;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("finishFileUpload", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          finishFileUpload_args args = new finishFileUpload_args();
          args.set_location(location);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public void getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          (new Client(prot)).recv_finishFileUpload();
        }
      }
  
      public void beginFileDownload(String file, org.apache.thrift7.async.AsyncMethodCallback<beginFileDownload_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        beginFileDownload_call method_call = new beginFileDownload_call(file, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class beginFileDownload_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String file;
        public beginFileDownload_call(String file, org.apache.thrift7.async.AsyncMethodCallback<beginFileDownload_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.file = file;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("beginFileDownload", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          beginFileDownload_args args = new beginFileDownload_args();
          args.set_file(file);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public String getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_beginFileDownload();
        }
      }
  
      public void downloadChunk(String id, org.apache.thrift7.async.AsyncMethodCallback<downloadChunk_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        downloadChunk_call method_call = new downloadChunk_call(id, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class downloadChunk_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String id;
        public downloadChunk_call(String id, org.apache.thrift7.async.AsyncMethodCallback<downloadChunk_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.id = id;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("downloadChunk", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          downloadChunk_args args = new downloadChunk_args();
          args.set_id(id);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public ByteBuffer getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_downloadChunk();
        }
      }
  
      public void getClusterInfo(org.apache.thrift7.async.AsyncMethodCallback<getClusterInfo_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        getClusterInfo_call method_call = new getClusterInfo_call(resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class getClusterInfo_call extends org.apache.thrift7.async.TAsyncMethodCall {
        public getClusterInfo_call(org.apache.thrift7.async.AsyncMethodCallback<getClusterInfo_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("getClusterInfo", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          getClusterInfo_args args = new getClusterInfo_args();
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public ClusterSummary getResult() throws org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_getClusterInfo();
        }
      }
  
      public void getTopologyInfo(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopologyInfo_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        getTopologyInfo_call method_call = new getTopologyInfo_call(id, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class getTopologyInfo_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String id;
        public getTopologyInfo_call(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopologyInfo_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.id = id;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("getTopologyInfo", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          getTopologyInfo_args args = new getTopologyInfo_args();
          args.set_id(id);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public TopologyInfo getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_getTopologyInfo();
        }
      }
  
      public void getTopologyConf(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopologyConf_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        getTopologyConf_call method_call = new getTopologyConf_call(id, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class getTopologyConf_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String id;
        public getTopologyConf_call(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopologyConf_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.id = id;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("getTopologyConf", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          getTopologyConf_args args = new getTopologyConf_args();
          args.set_id(id);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public String getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_getTopologyConf();
        }
      }
  
      public void getTopology(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopology_call> resultHandler) throws org.apache.thrift7.TException {
        checkReady();
        getTopology_call method_call = new getTopology_call(id, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
        ___manager.call(method_call);
      }
  
      public static class getTopology_call extends org.apache.thrift7.async.TAsyncMethodCall {
        private String id;
        public getTopology_call(String id, org.apache.thrift7.async.AsyncMethodCallback<getTopology_call> resultHandler, org.apache.thrift7.async.TAsyncClient client, org.apache.thrift7.protocol.TProtocolFactory protocolFactory, org.apache.thrift7.transport.TNonblockingTransport transport) throws org.apache.thrift7.TException {
          super(client, protocolFactory, transport, resultHandler, false);
          this.id = id;
        }
  
        public void write_args(org.apache.thrift7.protocol.TProtocol prot) throws org.apache.thrift7.TException {
          prot.writeMessageBegin(new org.apache.thrift7.protocol.TMessage("getTopology", org.apache.thrift7.protocol.TMessageType.CALL, 0));
          getTopology_args args = new getTopology_args();
          args.set_id(id);
          args.write(prot);
          prot.writeMessageEnd();
        }
  
        public StormTopology getResult() throws NotAliveException, org.apache.thrift7.TException {
          if (getState() != org.apache.thrift7.async.TAsyncMethodCall.State.RESPONSE_READ) {
            throw new IllegalStateException("Method call not finished!");
          }
          org.apache.thrift7.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift7.transport.TMemoryInputTransport(getFrameBuffer().array());
          org.apache.thrift7.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
          return (new Client(prot)).recv_getTopology();
        }
      }
  
    }
  
    public static class Processor<I extends Iface> extends org.apache.thrift7.TBaseProcessor implements org.apache.thrift7.TProcessor {
      private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
      public Processor(I iface) {
        super(iface, getProcessMap(new HashMap<String, org.apache.thrift7.ProcessFunction<I, ? extends org.apache.thrift7.TBase>>()));
      }
  
      protected Processor(I iface, Map<String,  org.apache.thrift7.ProcessFunction<I, ? extends  org.apache.thrift7.TBase>> processMap) {
        super(iface, getProcessMap(processMap));
      }
  
      private static <I extends Iface> Map<String,  org.apache.thrift7.ProcessFunction<I, ? extends  org.apache.thrift7.TBase>> getProcessMap(Map<String,  org.apache.thrift7.ProcessFunction<I, ? extends  org.apache.thrift7.TBase>> processMap) {
        processMap.put("submitTopology", new submitTopology());
        processMap.put("killTopology", new killTopology());
        processMap.put("killTopologyWithOpts", new killTopologyWithOpts());
        processMap.put("activate", new activate());
        processMap.put("deactivate", new deactivate());
        processMap.put("rebalance", new rebalance());
        processMap.put("beginFileUpload", new beginFileUpload());
        processMap.put("uploadChunk", new uploadChunk());
        processMap.put("finishFileUpload", new finishFileUpload());
        processMap.put("beginFileDownload", new beginFileDownload());
        processMap.put("downloadChunk", new downloadChunk());
        processMap.put("getClusterInfo", new getClusterInfo());
        processMap.put("getTopologyInfo", new getTopologyInfo());
        processMap.put("getTopologyConf", new getTopologyConf());
        processMap.put("getTopology", new getTopology());
        return processMap;
      }
  
      private static class submitTopology<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, submitTopology_args> {
        public submitTopology() {
          super("submitTopology");
        }
  
        protected submitTopology_args getEmptyArgsInstance() {
          return new submitTopology_args();
        }
  
        protected submitTopology_result getResult(I iface, submitTopology_args args) throws org.apache.thrift7.TException {
          submitTopology_result result = new submitTopology_result();
          try {
            iface.submitTopology(args.name, args.uploadedJarLocation, args.jsonConf, args.topology);
          } catch (AlreadyAliveException e) {
            result.e = e;
          } catch (InvalidTopologyException ite) {
            result.ite = ite;
          }
          return result;
        }
      }
  
      private static class killTopology<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, killTopology_args> {
        public killTopology() {
          super("killTopology");
        }
  
        protected killTopology_args getEmptyArgsInstance() {
          return new killTopology_args();
        }
  
        protected killTopology_result getResult(I iface, killTopology_args args) throws org.apache.thrift7.TException {
          killTopology_result result = new killTopology_result();
          try {
            iface.killTopology(args.name);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class killTopologyWithOpts<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, killTopologyWithOpts_args> {
        public killTopologyWithOpts() {
          super("killTopologyWithOpts");
        }
  
        protected killTopologyWithOpts_args getEmptyArgsInstance() {
          return new killTopologyWithOpts_args();
        }
  
        protected killTopologyWithOpts_result getResult(I iface, killTopologyWithOpts_args args) throws org.apache.thrift7.TException {
          killTopologyWithOpts_result result = new killTopologyWithOpts_result();
          try {
            iface.killTopologyWithOpts(args.name, args.options);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class activate<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, activate_args> {
        public activate() {
          super("activate");
        }
  
        protected activate_args getEmptyArgsInstance() {
          return new activate_args();
        }
  
        protected activate_result getResult(I iface, activate_args args) throws org.apache.thrift7.TException {
          activate_result result = new activate_result();
          try {
            iface.activate(args.name);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class deactivate<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, deactivate_args> {
        public deactivate() {
          super("deactivate");
        }
  
        protected deactivate_args getEmptyArgsInstance() {
          return new deactivate_args();
        }
  
        protected deactivate_result getResult(I iface, deactivate_args args) throws org.apache.thrift7.TException {
          deactivate_result result = new deactivate_result();
          try {
            iface.deactivate(args.name);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class rebalance<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, rebalance_args> {
        public rebalance() {
          super("rebalance");
        }
  
        protected rebalance_args getEmptyArgsInstance() {
          return new rebalance_args();
        }
  
        protected rebalance_result getResult(I iface, rebalance_args args) throws org.apache.thrift7.TException {
          rebalance_result result = new rebalance_result();
          try {
            iface.rebalance(args.name, args.options);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class beginFileUpload<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, beginFileUpload_args> {
        public beginFileUpload() {
          super("beginFileUpload");
        }
  
        protected beginFileUpload_args getEmptyArgsInstance() {
          return new beginFileUpload_args();
        }
  
        protected beginFileUpload_result getResult(I iface, beginFileUpload_args args) throws org.apache.thrift7.TException {
          beginFileUpload_result result = new beginFileUpload_result();
          result.success = iface.beginFileUpload();
          return result;
        }
      }
  
      private static class uploadChunk<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, uploadChunk_args> {
        public uploadChunk() {
          super("uploadChunk");
        }
  
        protected uploadChunk_args getEmptyArgsInstance() {
          return new uploadChunk_args();
        }
  
        protected uploadChunk_result getResult(I iface, uploadChunk_args args) throws org.apache.thrift7.TException {
          uploadChunk_result result = new uploadChunk_result();
          iface.uploadChunk(args.location, args.chunk);
          return result;
        }
      }
  
      private static class finishFileUpload<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, finishFileUpload_args> {
        public finishFileUpload() {
          super("finishFileUpload");
        }
  
        protected finishFileUpload_args getEmptyArgsInstance() {
          return new finishFileUpload_args();
        }
  
        protected finishFileUpload_result getResult(I iface, finishFileUpload_args args) throws org.apache.thrift7.TException {
          finishFileUpload_result result = new finishFileUpload_result();
          iface.finishFileUpload(args.location);
          return result;
        }
      }
  
      private static class beginFileDownload<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, beginFileDownload_args> {
        public beginFileDownload() {
          super("beginFileDownload");
        }
  
        protected beginFileDownload_args getEmptyArgsInstance() {
          return new beginFileDownload_args();
        }
  
        protected beginFileDownload_result getResult(I iface, beginFileDownload_args args) throws org.apache.thrift7.TException {
          beginFileDownload_result result = new beginFileDownload_result();
          result.success = iface.beginFileDownload(args.file);
          return result;
        }
      }
  
      private static class downloadChunk<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, downloadChunk_args> {
        public downloadChunk() {
          super("downloadChunk");
        }
  
        protected downloadChunk_args getEmptyArgsInstance() {
          return new downloadChunk_args();
        }
  
        protected downloadChunk_result getResult(I iface, downloadChunk_args args) throws org.apache.thrift7.TException {
          downloadChunk_result result = new downloadChunk_result();
          result.success = iface.downloadChunk(args.id);
          return result;
        }
      }
  
      private static class getClusterInfo<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, getClusterInfo_args> {
        public getClusterInfo() {
          super("getClusterInfo");
        }
  
        protected getClusterInfo_args getEmptyArgsInstance() {
          return new getClusterInfo_args();
        }
  
        protected getClusterInfo_result getResult(I iface, getClusterInfo_args args) throws org.apache.thrift7.TException {
          getClusterInfo_result result = new getClusterInfo_result();
          result.success = iface.getClusterInfo();
          return result;
        }
      }
  
      private static class getTopologyInfo<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, getTopologyInfo_args> {
        public getTopologyInfo() {
          super("getTopologyInfo");
        }
  
        protected getTopologyInfo_args getEmptyArgsInstance() {
          return new getTopologyInfo_args();
        }
  
        protected getTopologyInfo_result getResult(I iface, getTopologyInfo_args args) throws org.apache.thrift7.TException {
          getTopologyInfo_result result = new getTopologyInfo_result();
          try {
            result.success = iface.getTopologyInfo(args.id);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class getTopologyConf<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, getTopologyConf_args> {
        public getTopologyConf() {
          super("getTopologyConf");
        }
  
        protected getTopologyConf_args getEmptyArgsInstance() {
          return new getTopologyConf_args();
        }
  
        protected getTopologyConf_result getResult(I iface, getTopologyConf_args args) throws org.apache.thrift7.TException {
          getTopologyConf_result result = new getTopologyConf_result();
          try {
            result.success = iface.getTopologyConf(args.id);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
      private static class getTopology<I extends Iface> extends org.apache.thrift7.ProcessFunction<I, getTopology_args> {
        public getTopology() {
          super("getTopology");
        }
  
        protected getTopology_args getEmptyArgsInstance() {
          return new getTopology_args();
        }
  
        protected getTopology_result getResult(I iface, getTopology_args args) throws org.apache.thrift7.TException {
          getTopology_result result = new getTopology_result();
          try {
            result.success = iface.getTopology(args.id);
          } catch (NotAliveException e) {
            result.e = e;
          }
          return result;
        }
      }
  
    }
  
    public static class submitTopology_args implements org.apache.thrift7.TBase<submitTopology_args, submitTopology_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("submitTopology_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
      private static final org.apache.thrift7.protocol.TField UPLOADED_JAR_LOCATION_FIELD_DESC = new org.apache.thrift7.protocol.TField("uploadedJarLocation", org.apache.thrift7.protocol.TType.STRING, (short)2);
      private static final org.apache.thrift7.protocol.TField JSON_CONF_FIELD_DESC = new org.apache.thrift7.protocol.TField("jsonConf", org.apache.thrift7.protocol.TType.STRING, (short)3);
      private static final org.apache.thrift7.protocol.TField TOPOLOGY_FIELD_DESC = new org.apache.thrift7.protocol.TField("topology", org.apache.thrift7.protocol.TType.STRUCT, (short)4);
  
      private String name; // required
      private String uploadedJarLocation; // required
      private String jsonConf; // required
      private StormTopology topology; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name"),
        UPLOADED_JAR_LOCATION((short)2, "uploadedJarLocation"),
        JSON_CONF((short)3, "jsonConf"),
        TOPOLOGY((short)4, "topology");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            case 2: // UPLOADED_JAR_LOCATION
              return UPLOADED_JAR_LOCATION;
            case 3: // JSON_CONF
              return JSON_CONF;
            case 4: // TOPOLOGY
              return TOPOLOGY;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.UPLOADED_JAR_LOCATION, new org.apache.thrift7.meta_data.FieldMetaData("uploadedJarLocation", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.JSON_CONF, new org.apache.thrift7.meta_data.FieldMetaData("jsonConf", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.TOPOLOGY, new org.apache.thrift7.meta_data.FieldMetaData("topology", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, StormTopology.class)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(submitTopology_args.class, metaDataMap);
      }
  
      public submitTopology_args() {
      }
  
      public submitTopology_args(
        String name,
        String uploadedJarLocation,
        String jsonConf,
        StormTopology topology)
      {
        this();
        this.name = name;
        this.uploadedJarLocation = uploadedJarLocation;
        this.jsonConf = jsonConf;
        this.topology = topology;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public submitTopology_args(submitTopology_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
        if (other.is_set_uploadedJarLocation()) {
          this.uploadedJarLocation = other.uploadedJarLocation;
        }
        if (other.is_set_jsonConf()) {
          this.jsonConf = other.jsonConf;
        }
        if (other.is_set_topology()) {
          this.topology = new StormTopology(other.topology);
        }
      }
  
      public submitTopology_args deepCopy() {
        return new submitTopology_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
        this.uploadedJarLocation = null;
        this.jsonConf = null;
        this.topology = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public String get_uploadedJarLocation() {
        return this.uploadedJarLocation;
      }
  
      public void set_uploadedJarLocation(String uploadedJarLocation) {
        this.uploadedJarLocation = uploadedJarLocation;
      }
  
      public void unset_uploadedJarLocation() {
        this.uploadedJarLocation = null;
      }
  
      /** Returns true if field uploadedJarLocation is set (has been assigned a value) and false otherwise */
      public boolean is_set_uploadedJarLocation() {
        return this.uploadedJarLocation != null;
      }
  
      public void set_uploadedJarLocation_isSet(boolean value) {
        if (!value) {
          this.uploadedJarLocation = null;
        }
      }
  
      public String get_jsonConf() {
        return this.jsonConf;
      }
  
      public void set_jsonConf(String jsonConf) {
        this.jsonConf = jsonConf;
      }
  
      public void unset_jsonConf() {
        this.jsonConf = null;
      }
  
      /** Returns true if field jsonConf is set (has been assigned a value) and false otherwise */
      public boolean is_set_jsonConf() {
        return this.jsonConf != null;
      }
  
      public void set_jsonConf_isSet(boolean value) {
        if (!value) {
          this.jsonConf = null;
        }
      }
  
      public StormTopology get_topology() {
        return this.topology;
      }
  
      public void set_topology(StormTopology topology) {
        this.topology = topology;
      }
  
      public void unset_topology() {
        this.topology = null;
      }
  
      /** Returns true if field topology is set (has been assigned a value) and false otherwise */
      public boolean is_set_topology() {
        return this.topology != null;
      }
  
      public void set_topology_isSet(boolean value) {
        if (!value) {
          this.topology = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        case UPLOADED_JAR_LOCATION:
          if (value == null) {
            unset_uploadedJarLocation();
          } else {
            set_uploadedJarLocation((String)value);
          }
          break;
  
        case JSON_CONF:
          if (value == null) {
            unset_jsonConf();
          } else {
            set_jsonConf((String)value);
          }
          break;
  
        case TOPOLOGY:
          if (value == null) {
            unset_topology();
          } else {
            set_topology((StormTopology)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        case UPLOADED_JAR_LOCATION:
          return get_uploadedJarLocation();
  
        case JSON_CONF:
          return get_jsonConf();
  
        case TOPOLOGY:
          return get_topology();
  
        }
        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 NAME:
          return is_set_name();
        case UPLOADED_JAR_LOCATION:
          return is_set_uploadedJarLocation();
        case JSON_CONF:
          return is_set_jsonConf();
        case TOPOLOGY:
          return is_set_topology();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof submitTopology_args)
          return this.equals((submitTopology_args)that);
        return false;
      }
  
      public boolean equals(submitTopology_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        boolean this_present_uploadedJarLocation = true && this.is_set_uploadedJarLocation();
        boolean that_present_uploadedJarLocation = true && that.is_set_uploadedJarLocation();
        if (this_present_uploadedJarLocation || that_present_uploadedJarLocation) {
          if (!(this_present_uploadedJarLocation && that_present_uploadedJarLocation))
            return false;
          if (!this.uploadedJarLocation.equals(that.uploadedJarLocation))
            return false;
        }
  
        boolean this_present_jsonConf = true && this.is_set_jsonConf();
        boolean that_present_jsonConf = true && that.is_set_jsonConf();
        if (this_present_jsonConf || that_present_jsonConf) {
          if (!(this_present_jsonConf && that_present_jsonConf))
            return false;
          if (!this.jsonConf.equals(that.jsonConf))
            return false;
        }
  
        boolean this_present_topology = true && this.is_set_topology();
        boolean that_present_topology = true && that.is_set_topology();
        if (this_present_topology || that_present_topology) {
          if (!(this_present_topology && that_present_topology))
            return false;
          if (!this.topology.equals(that.topology))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        boolean present_uploadedJarLocation = true && (is_set_uploadedJarLocation());
        builder.append(present_uploadedJarLocation);
        if (present_uploadedJarLocation)
          builder.append(uploadedJarLocation);
  
        boolean present_jsonConf = true && (is_set_jsonConf());
        builder.append(present_jsonConf);
        if (present_jsonConf)
          builder.append(jsonConf);
  
        boolean present_topology = true && (is_set_topology());
        builder.append(present_topology);
        if (present_topology)
          builder.append(topology);
  
        return builder.toHashCode();
      }
  
      public int compareTo(submitTopology_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        submitTopology_args typedOther = (submitTopology_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_uploadedJarLocation()).compareTo(typedOther.is_set_uploadedJarLocation());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_uploadedJarLocation()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.uploadedJarLocation, typedOther.uploadedJarLocation);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_jsonConf()).compareTo(typedOther.is_set_jsonConf());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_jsonConf()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.jsonConf, typedOther.jsonConf);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_topology()).compareTo(typedOther.is_set_topology());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_topology()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.topology, typedOther.topology);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 2: // UPLOADED_JAR_LOCATION
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.uploadedJarLocation = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 3: // JSON_CONF
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.jsonConf = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 4: // TOPOLOGY
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.topology = new StormTopology();
                this.topology.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        if (this.uploadedJarLocation != null) {
          oprot.writeFieldBegin(UPLOADED_JAR_LOCATION_FIELD_DESC);
          oprot.writeString(this.uploadedJarLocation);
          oprot.writeFieldEnd();
        }
        if (this.jsonConf != null) {
          oprot.writeFieldBegin(JSON_CONF_FIELD_DESC);
          oprot.writeString(this.jsonConf);
          oprot.writeFieldEnd();
        }
        if (this.topology != null) {
          oprot.writeFieldBegin(TOPOLOGY_FIELD_DESC);
          this.topology.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("submitTopology_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("uploadedJarLocation:");
        if (this.uploadedJarLocation == null) {
          sb.append("null");
        } else {
          sb.append(this.uploadedJarLocation);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("jsonConf:");
        if (this.jsonConf == null) {
          sb.append("null");
        } else {
          sb.append(this.jsonConf);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("topology:");
        if (this.topology == null) {
          sb.append("null");
        } else {
          sb.append(this.topology);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class submitTopology_result implements org.apache.thrift7.TBase<submitTopology_result, submitTopology_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("submitTopology_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
      private static final org.apache.thrift7.protocol.TField ITE_FIELD_DESC = new org.apache.thrift7.protocol.TField("ite", org.apache.thrift7.protocol.TType.STRUCT, (short)2);
  
      private AlreadyAliveException e; // required
      private InvalidTopologyException ite; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e"),
        ITE((short)2, "ite");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            case 2: // ITE
              return ITE;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        tmpMap.put(_Fields.ITE, new org.apache.thrift7.meta_data.FieldMetaData("ite", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(submitTopology_result.class, metaDataMap);
      }
  
      public submitTopology_result() {
      }
  
      public submitTopology_result(
        AlreadyAliveException e,
        InvalidTopologyException ite)
      {
        this();
        this.e = e;
        this.ite = ite;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public submitTopology_result(submitTopology_result other) {
        if (other.is_set_e()) {
          this.e = new AlreadyAliveException(other.e);
        }
        if (other.is_set_ite()) {
          this.ite = new InvalidTopologyException(other.ite);
        }
      }
  
      public submitTopology_result deepCopy() {
        return new submitTopology_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
        this.ite = null;
      }
  
      public AlreadyAliveException get_e() {
        return this.e;
      }
  
      public void set_e(AlreadyAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public InvalidTopologyException get_ite() {
        return this.ite;
      }
  
      public void set_ite(InvalidTopologyException ite) {
        this.ite = ite;
      }
  
      public void unset_ite() {
        this.ite = null;
      }
  
      /** Returns true if field ite is set (has been assigned a value) and false otherwise */
      public boolean is_set_ite() {
        return this.ite != null;
      }
  
      public void set_ite_isSet(boolean value) {
        if (!value) {
          this.ite = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((AlreadyAliveException)value);
          }
          break;
  
        case ITE:
          if (value == null) {
            unset_ite();
          } else {
            set_ite((InvalidTopologyException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        case ITE:
          return get_ite();
  
        }
        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 E:
          return is_set_e();
        case ITE:
          return is_set_ite();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof submitTopology_result)
          return this.equals((submitTopology_result)that);
        return false;
      }
  
      public boolean equals(submitTopology_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        boolean this_present_ite = true && this.is_set_ite();
        boolean that_present_ite = true && that.is_set_ite();
        if (this_present_ite || that_present_ite) {
          if (!(this_present_ite && that_present_ite))
            return false;
          if (!this.ite.equals(that.ite))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        boolean present_ite = true && (is_set_ite());
        builder.append(present_ite);
        if (present_ite)
          builder.append(ite);
  
        return builder.toHashCode();
      }
  
      public int compareTo(submitTopology_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        submitTopology_result typedOther = (submitTopology_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_ite()).compareTo(typedOther.is_set_ite());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_ite()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.ite, typedOther.ite);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new AlreadyAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 2: // ITE
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.ite = new InvalidTopologyException();
                this.ite.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        } else if (this.is_set_ite()) {
          oprot.writeFieldBegin(ITE_FIELD_DESC);
          this.ite.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("submitTopology_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("ite:");
        if (this.ite == null) {
          sb.append("null");
        } else {
          sb.append(this.ite);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class killTopology_args implements org.apache.thrift7.TBase<killTopology_args, killTopology_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("killTopology_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String name; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(killTopology_args.class, metaDataMap);
      }
  
      public killTopology_args() {
      }
  
      public killTopology_args(
        String name)
      {
        this();
        this.name = name;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public killTopology_args(killTopology_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
      }
  
      public killTopology_args deepCopy() {
        return new killTopology_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        }
        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 NAME:
          return is_set_name();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof killTopology_args)
          return this.equals((killTopology_args)that);
        return false;
      }
  
      public boolean equals(killTopology_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        return builder.toHashCode();
      }
  
      public int compareTo(killTopology_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        killTopology_args typedOther = (killTopology_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("killTopology_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class killTopology_result implements org.apache.thrift7.TBase<killTopology_result, killTopology_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("killTopology_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(killTopology_result.class, metaDataMap);
      }
  
      public killTopology_result() {
      }
  
      public killTopology_result(
        NotAliveException e)
      {
        this();
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public killTopology_result(killTopology_result other) {
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public killTopology_result deepCopy() {
        return new killTopology_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        }
        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 E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof killTopology_result)
          return this.equals((killTopology_result)that);
        return false;
      }
  
      public boolean equals(killTopology_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(killTopology_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        killTopology_result typedOther = (killTopology_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("killTopology_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class killTopologyWithOpts_args implements org.apache.thrift7.TBase<killTopologyWithOpts_args, killTopologyWithOpts_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("killTopologyWithOpts_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
      private static final org.apache.thrift7.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift7.protocol.TField("options", org.apache.thrift7.protocol.TType.STRUCT, (short)2);
  
      private String name; // required
      private KillOptions options; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name"),
        OPTIONS((short)2, "options");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            case 2: // OPTIONS
              return OPTIONS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.OPTIONS, new org.apache.thrift7.meta_data.FieldMetaData("options", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, KillOptions.class)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(killTopologyWithOpts_args.class, metaDataMap);
      }
  
      public killTopologyWithOpts_args() {
      }
  
      public killTopologyWithOpts_args(
        String name,
        KillOptions options)
      {
        this();
        this.name = name;
        this.options = options;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public killTopologyWithOpts_args(killTopologyWithOpts_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
        if (other.is_set_options()) {
          this.options = new KillOptions(other.options);
        }
      }
  
      public killTopologyWithOpts_args deepCopy() {
        return new killTopologyWithOpts_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
        this.options = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public KillOptions get_options() {
        return this.options;
      }
  
      public void set_options(KillOptions options) {
        this.options = options;
      }
  
      public void unset_options() {
        this.options = null;
      }
  
      /** Returns true if field options is set (has been assigned a value) and false otherwise */
      public boolean is_set_options() {
        return this.options != null;
      }
  
      public void set_options_isSet(boolean value) {
        if (!value) {
          this.options = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        case OPTIONS:
          if (value == null) {
            unset_options();
          } else {
            set_options((KillOptions)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        case OPTIONS:
          return get_options();
  
        }
        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 NAME:
          return is_set_name();
        case OPTIONS:
          return is_set_options();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof killTopologyWithOpts_args)
          return this.equals((killTopologyWithOpts_args)that);
        return false;
      }
  
      public boolean equals(killTopologyWithOpts_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        boolean this_present_options = true && this.is_set_options();
        boolean that_present_options = true && that.is_set_options();
        if (this_present_options || that_present_options) {
          if (!(this_present_options && that_present_options))
            return false;
          if (!this.options.equals(that.options))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        boolean present_options = true && (is_set_options());
        builder.append(present_options);
        if (present_options)
          builder.append(options);
  
        return builder.toHashCode();
      }
  
      public int compareTo(killTopologyWithOpts_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        killTopologyWithOpts_args typedOther = (killTopologyWithOpts_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_options()).compareTo(typedOther.is_set_options());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_options()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.options, typedOther.options);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 2: // OPTIONS
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.options = new KillOptions();
                this.options.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        if (this.options != null) {
          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
          this.options.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("killTopologyWithOpts_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("options:");
        if (this.options == null) {
          sb.append("null");
        } else {
          sb.append(this.options);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class killTopologyWithOpts_result implements org.apache.thrift7.TBase<killTopologyWithOpts_result, killTopologyWithOpts_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("killTopologyWithOpts_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(killTopologyWithOpts_result.class, metaDataMap);
      }
  
      public killTopologyWithOpts_result() {
      }
  
      public killTopologyWithOpts_result(
        NotAliveException e)
      {
        this();
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public killTopologyWithOpts_result(killTopologyWithOpts_result other) {
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public killTopologyWithOpts_result deepCopy() {
        return new killTopologyWithOpts_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        }
        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 E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof killTopologyWithOpts_result)
          return this.equals((killTopologyWithOpts_result)that);
        return false;
      }
  
      public boolean equals(killTopologyWithOpts_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(killTopologyWithOpts_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        killTopologyWithOpts_result typedOther = (killTopologyWithOpts_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("killTopologyWithOpts_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class activate_args implements org.apache.thrift7.TBase<activate_args, activate_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("activate_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String name; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(activate_args.class, metaDataMap);
      }
  
      public activate_args() {
      }
  
      public activate_args(
        String name)
      {
        this();
        this.name = name;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public activate_args(activate_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
      }
  
      public activate_args deepCopy() {
        return new activate_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        }
        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 NAME:
          return is_set_name();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof activate_args)
          return this.equals((activate_args)that);
        return false;
      }
  
      public boolean equals(activate_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        return builder.toHashCode();
      }
  
      public int compareTo(activate_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        activate_args typedOther = (activate_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("activate_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class activate_result implements org.apache.thrift7.TBase<activate_result, activate_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("activate_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(activate_result.class, metaDataMap);
      }
  
      public activate_result() {
      }
  
      public activate_result(
        NotAliveException e)
      {
        this();
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public activate_result(activate_result other) {
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public activate_result deepCopy() {
        return new activate_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        }
        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 E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof activate_result)
          return this.equals((activate_result)that);
        return false;
      }
  
      public boolean equals(activate_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(activate_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        activate_result typedOther = (activate_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("activate_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class deactivate_args implements org.apache.thrift7.TBase<deactivate_args, deactivate_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("deactivate_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String name; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(deactivate_args.class, metaDataMap);
      }
  
      public deactivate_args() {
      }
  
      public deactivate_args(
        String name)
      {
        this();
        this.name = name;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public deactivate_args(deactivate_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
      }
  
      public deactivate_args deepCopy() {
        return new deactivate_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        }
        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 NAME:
          return is_set_name();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof deactivate_args)
          return this.equals((deactivate_args)that);
        return false;
      }
  
      public boolean equals(deactivate_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        return builder.toHashCode();
      }
  
      public int compareTo(deactivate_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        deactivate_args typedOther = (deactivate_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("deactivate_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class deactivate_result implements org.apache.thrift7.TBase<deactivate_result, deactivate_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("deactivate_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(deactivate_result.class, metaDataMap);
      }
  
      public deactivate_result() {
      }
  
      public deactivate_result(
        NotAliveException e)
      {
        this();
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public deactivate_result(deactivate_result other) {
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public deactivate_result deepCopy() {
        return new deactivate_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        }
        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 E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof deactivate_result)
          return this.equals((deactivate_result)that);
        return false;
      }
  
      public boolean equals(deactivate_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(deactivate_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        deactivate_result typedOther = (deactivate_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("deactivate_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class rebalance_args implements org.apache.thrift7.TBase<rebalance_args, rebalance_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("rebalance_args");
  
      private static final org.apache.thrift7.protocol.TField NAME_FIELD_DESC = new org.apache.thrift7.protocol.TField("name", org.apache.thrift7.protocol.TType.STRING, (short)1);
      private static final org.apache.thrift7.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift7.protocol.TField("options", org.apache.thrift7.protocol.TType.STRUCT, (short)2);
  
      private String name; // required
      private RebalanceOptions options; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        NAME((short)1, "name"),
        OPTIONS((short)2, "options");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // NAME
              return NAME;
            case 2: // OPTIONS
              return OPTIONS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.NAME, new org.apache.thrift7.meta_data.FieldMetaData("name", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.OPTIONS, new org.apache.thrift7.meta_data.FieldMetaData("options", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, RebalanceOptions.class)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(rebalance_args.class, metaDataMap);
      }
  
      public rebalance_args() {
      }
  
      public rebalance_args(
        String name,
        RebalanceOptions options)
      {
        this();
        this.name = name;
        this.options = options;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public rebalance_args(rebalance_args other) {
        if (other.is_set_name()) {
          this.name = other.name;
        }
        if (other.is_set_options()) {
          this.options = new RebalanceOptions(other.options);
        }
      }
  
      public rebalance_args deepCopy() {
        return new rebalance_args(this);
      }
  
      @Override
      public void clear() {
        this.name = null;
        this.options = null;
      }
  
      public String get_name() {
        return this.name;
      }
  
      public void set_name(String name) {
        this.name = name;
      }
  
      public void unset_name() {
        this.name = null;
      }
  
      /** Returns true if field name is set (has been assigned a value) and false otherwise */
      public boolean is_set_name() {
        return this.name != null;
      }
  
      public void set_name_isSet(boolean value) {
        if (!value) {
          this.name = null;
        }
      }
  
      public RebalanceOptions get_options() {
        return this.options;
      }
  
      public void set_options(RebalanceOptions options) {
        this.options = options;
      }
  
      public void unset_options() {
        this.options = null;
      }
  
      /** Returns true if field options is set (has been assigned a value) and false otherwise */
      public boolean is_set_options() {
        return this.options != null;
      }
  
      public void set_options_isSet(boolean value) {
        if (!value) {
          this.options = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case NAME:
          if (value == null) {
            unset_name();
          } else {
            set_name((String)value);
          }
          break;
  
        case OPTIONS:
          if (value == null) {
            unset_options();
          } else {
            set_options((RebalanceOptions)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case NAME:
          return get_name();
  
        case OPTIONS:
          return get_options();
  
        }
        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 NAME:
          return is_set_name();
        case OPTIONS:
          return is_set_options();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof rebalance_args)
          return this.equals((rebalance_args)that);
        return false;
      }
  
      public boolean equals(rebalance_args that) {
        if (that == null)
          return false;
  
        boolean this_present_name = true && this.is_set_name();
        boolean that_present_name = true && that.is_set_name();
        if (this_present_name || that_present_name) {
          if (!(this_present_name && that_present_name))
            return false;
          if (!this.name.equals(that.name))
            return false;
        }
  
        boolean this_present_options = true && this.is_set_options();
        boolean that_present_options = true && that.is_set_options();
        if (this_present_options || that_present_options) {
          if (!(this_present_options && that_present_options))
            return false;
          if (!this.options.equals(that.options))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_name = true && (is_set_name());
        builder.append(present_name);
        if (present_name)
          builder.append(name);
  
        boolean present_options = true && (is_set_options());
        builder.append(present_options);
        if (present_options)
          builder.append(options);
  
        return builder.toHashCode();
      }
  
      public int compareTo(rebalance_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        rebalance_args typedOther = (rebalance_args)other;
  
        lastComparison = Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_name()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.name, typedOther.name);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_options()).compareTo(typedOther.is_set_options());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_options()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.options, typedOther.options);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // NAME
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.name = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 2: // OPTIONS
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.options = new RebalanceOptions();
                this.options.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(this.name);
          oprot.writeFieldEnd();
        }
        if (this.options != null) {
          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
          this.options.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("rebalance_args(");
        boolean first = true;
  
        sb.append("name:");
        if (this.name == null) {
          sb.append("null");
        } else {
          sb.append(this.name);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("options:");
        if (this.options == null) {
          sb.append("null");
        } else {
          sb.append(this.options);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class rebalance_result implements org.apache.thrift7.TBase<rebalance_result, rebalance_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("rebalance_result");
  
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(rebalance_result.class, metaDataMap);
      }
  
      public rebalance_result() {
      }
  
      public rebalance_result(
        NotAliveException e)
      {
        this();
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public rebalance_result(rebalance_result other) {
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public rebalance_result deepCopy() {
        return new rebalance_result(this);
      }
  
      @Override
      public void clear() {
        this.e = null;
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case E:
          return get_e();
  
        }
        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 E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof rebalance_result)
          return this.equals((rebalance_result)that);
        return false;
      }
  
      public boolean equals(rebalance_result that) {
        if (that == null)
          return false;
  
        boolean this_present_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(rebalance_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        rebalance_result typedOther = (rebalance_result)other;
  
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("rebalance_result(");
        boolean first = true;
  
        sb.append("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class beginFileUpload_args implements org.apache.thrift7.TBase<beginFileUpload_args, beginFileUpload_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("beginFileUpload_args");
  
  
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
  ;
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(beginFileUpload_args.class, metaDataMap);
      }
  
      public beginFileUpload_args() {
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public beginFileUpload_args(beginFileUpload_args other) {
      }
  
      public beginFileUpload_args deepCopy() {
        return new beginFileUpload_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 beginFileUpload_args)
          return this.equals((beginFileUpload_args)that);
        return false;
      }
  
      public boolean equals(beginFileUpload_args that) {
        if (that == null)
          return false;
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        return builder.toHashCode();
      }
  
      public int compareTo(beginFileUpload_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        beginFileUpload_args typedOther = (beginFileUpload_args)other;
  
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("beginFileUpload_args(");
        boolean first = true;
  
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class beginFileUpload_result implements org.apache.thrift7.TBase<beginFileUpload_result, beginFileUpload_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("beginFileUpload_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRING, (short)0);
  
      private String success; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        static {
          for (_Fields field : EnumSet.allOf(_Fields.class)) {
            byName.put(field.getFieldName(), field);
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, or null if its not found.
         */
        public static _Fields findByThriftId(int fieldId) {
          switch(fieldId) {
            case 0: // SUCCESS
              return SUCCESS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(beginFileUpload_result.class, metaDataMap);
      }
  
      public beginFileUpload_result() {
      }
  
      public beginFileUpload_result(
        String success)
      {
        this();
        this.success = success;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public beginFileUpload_result(beginFileUpload_result other) {
        if (other.is_set_success()) {
          this.success = other.success;
        }
      }
  
      public beginFileUpload_result deepCopy() {
        return new beginFileUpload_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
      }
  
      public String get_success() {
        return this.success;
      }
  
      public void set_success(String success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        }
        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 is_set_success();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof beginFileUpload_result)
          return this.equals((beginFileUpload_result)that);
        return false;
      }
  
      public boolean equals(beginFileUpload_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        if (this_present_success || that_present_success) {
          if (!(this_present_success && that_present_success))
            return false;
          if (!this.success.equals(that.success))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        return builder.toHashCode();
      }
  
      public int compareTo(beginFileUpload_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        beginFileUpload_result typedOther = (beginFileUpload_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.success = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(this.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("beginFileUpload_result(");
        boolean first = true;
  
        sb.append("success:");
        if (this.success == null) {
          sb.append("null");
        } else {
          sb.append(this.success);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class uploadChunk_args implements org.apache.thrift7.TBase<uploadChunk_args, uploadChunk_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("uploadChunk_args");
  
      private static final org.apache.thrift7.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift7.protocol.TField("location", org.apache.thrift7.protocol.TType.STRING, (short)1);
      private static final org.apache.thrift7.protocol.TField CHUNK_FIELD_DESC = new org.apache.thrift7.protocol.TField("chunk", org.apache.thrift7.protocol.TType.STRING, (short)2);
  
      private String location; // required
      private ByteBuffer chunk; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        LOCATION((short)1, "location"),
        CHUNK((short)2, "chunk");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // LOCATION
              return LOCATION;
            case 2: // CHUNK
              return CHUNK;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.LOCATION, new org.apache.thrift7.meta_data.FieldMetaData("location", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.CHUNK, new org.apache.thrift7.meta_data.FieldMetaData("chunk", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING          , true)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(uploadChunk_args.class, metaDataMap);
      }
  
      public uploadChunk_args() {
      }
  
      public uploadChunk_args(
        String location,
        ByteBuffer chunk)
      {
        this();
        this.location = location;
        this.chunk = chunk;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public uploadChunk_args(uploadChunk_args other) {
        if (other.is_set_location()) {
          this.location = other.location;
        }
        if (other.is_set_chunk()) {
          this.chunk = org.apache.thrift7.TBaseHelper.copyBinary(other.chunk);
  ;
        }
      }
  
      public uploadChunk_args deepCopy() {
        return new uploadChunk_args(this);
      }
  
      @Override
      public void clear() {
        this.location = null;
        this.chunk = null;
      }
  
      public String get_location() {
        return this.location;
      }
  
      public void set_location(String location) {
        this.location = location;
      }
  
      public void unset_location() {
        this.location = null;
      }
  
      /** Returns true if field location is set (has been assigned a value) and false otherwise */
      public boolean is_set_location() {
        return this.location != null;
      }
  
      public void set_location_isSet(boolean value) {
        if (!value) {
          this.location = null;
        }
      }
  
      public byte[] get_chunk() {
        set_chunk(org.apache.thrift7.TBaseHelper.rightSize(chunk));
        return chunk == null ? null : chunk.array();
      }
  
      public ByteBuffer buffer_for_chunk() {
        return chunk;
      }
  
      public void set_chunk(byte[] chunk) {
        set_chunk(chunk == null ? (ByteBuffer)null : ByteBuffer.wrap(chunk));
      }
  
      public void set_chunk(ByteBuffer chunk) {
        this.chunk = chunk;
      }
  
      public void unset_chunk() {
        this.chunk = null;
      }
  
      /** Returns true if field chunk is set (has been assigned a value) and false otherwise */
      public boolean is_set_chunk() {
        return this.chunk != null;
      }
  
      public void set_chunk_isSet(boolean value) {
        if (!value) {
          this.chunk = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case LOCATION:
          if (value == null) {
            unset_location();
          } else {
            set_location((String)value);
          }
          break;
  
        case CHUNK:
          if (value == null) {
            unset_chunk();
          } else {
            set_chunk((ByteBuffer)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case LOCATION:
          return get_location();
  
        case CHUNK:
          return get_chunk();
  
        }
        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 LOCATION:
          return is_set_location();
        case CHUNK:
          return is_set_chunk();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof uploadChunk_args)
          return this.equals((uploadChunk_args)that);
        return false;
      }
  
      public boolean equals(uploadChunk_args that) {
        if (that == null)
          return false;
  
        boolean this_present_location = true && this.is_set_location();
        boolean that_present_location = true && that.is_set_location();
        if (this_present_location || that_present_location) {
          if (!(this_present_location && that_present_location))
            return false;
          if (!this.location.equals(that.location))
            return false;
        }
  
        boolean this_present_chunk = true && this.is_set_chunk();
        boolean that_present_chunk = true && that.is_set_chunk();
        if (this_present_chunk || that_present_chunk) {
          if (!(this_present_chunk && that_present_chunk))
            return false;
          if (!this.chunk.equals(that.chunk))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_location = true && (is_set_location());
        builder.append(present_location);
        if (present_location)
          builder.append(location);
  
        boolean present_chunk = true && (is_set_chunk());
        builder.append(present_chunk);
        if (present_chunk)
          builder.append(chunk);
  
        return builder.toHashCode();
      }
  
      public int compareTo(uploadChunk_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        uploadChunk_args typedOther = (uploadChunk_args)other;
  
        lastComparison = Boolean.valueOf(is_set_location()).compareTo(typedOther.is_set_location());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_location()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.location, typedOther.location);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_chunk()).compareTo(typedOther.is_set_chunk());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_chunk()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.chunk, typedOther.chunk);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // LOCATION
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.location = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 2: // CHUNK
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.chunk = iprot.readBinary();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.location != null) {
          oprot.writeFieldBegin(LOCATION_FIELD_DESC);
          oprot.writeString(this.location);
          oprot.writeFieldEnd();
        }
        if (this.chunk != null) {
          oprot.writeFieldBegin(CHUNK_FIELD_DESC);
          oprot.writeBinary(this.chunk);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("uploadChunk_args(");
        boolean first = true;
  
        sb.append("location:");
        if (this.location == null) {
          sb.append("null");
        } else {
          sb.append(this.location);
        }
        first = false;
        if (!first) sb.append(", ");
        sb.append("chunk:");
        if (this.chunk == null) {
          sb.append("null");
        } else {
          org.apache.thrift7.TBaseHelper.toString(this.chunk, sb);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class uploadChunk_result implements org.apache.thrift7.TBase<uploadChunk_result, uploadChunk_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("uploadChunk_result");
  
  
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
  ;
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(uploadChunk_result.class, metaDataMap);
      }
  
      public uploadChunk_result() {
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public uploadChunk_result(uploadChunk_result other) {
      }
  
      public uploadChunk_result deepCopy() {
        return new uploadChunk_result(this);
      }
  
      @Override
      public void clear() {
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        }
        throw new IllegalStateException();
      }
  
      /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
      public boolean isSet(_Fields field) {
        if (field == null) {
          throw new IllegalArgumentException();
        }
  
        switch (field) {
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof uploadChunk_result)
          return this.equals((uploadChunk_result)that);
        return false;
      }
  
      public boolean equals(uploadChunk_result that) {
        if (that == null)
          return false;
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        return builder.toHashCode();
      }
  
      public int compareTo(uploadChunk_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        uploadChunk_result typedOther = (uploadChunk_result)other;
  
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("uploadChunk_result(");
        boolean first = true;
  
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class finishFileUpload_args implements org.apache.thrift7.TBase<finishFileUpload_args, finishFileUpload_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("finishFileUpload_args");
  
      private static final org.apache.thrift7.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift7.protocol.TField("location", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String location; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        LOCATION((short)1, "location");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // LOCATION
              return LOCATION;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.LOCATION, new org.apache.thrift7.meta_data.FieldMetaData("location", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(finishFileUpload_args.class, metaDataMap);
      }
  
      public finishFileUpload_args() {
      }
  
      public finishFileUpload_args(
        String location)
      {
        this();
        this.location = location;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public finishFileUpload_args(finishFileUpload_args other) {
        if (other.is_set_location()) {
          this.location = other.location;
        }
      }
  
      public finishFileUpload_args deepCopy() {
        return new finishFileUpload_args(this);
      }
  
      @Override
      public void clear() {
        this.location = null;
      }
  
      public String get_location() {
        return this.location;
      }
  
      public void set_location(String location) {
        this.location = location;
      }
  
      public void unset_location() {
        this.location = null;
      }
  
      /** Returns true if field location is set (has been assigned a value) and false otherwise */
      public boolean is_set_location() {
        return this.location != null;
      }
  
      public void set_location_isSet(boolean value) {
        if (!value) {
          this.location = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case LOCATION:
          if (value == null) {
            unset_location();
          } else {
            set_location((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case LOCATION:
          return get_location();
  
        }
        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 LOCATION:
          return is_set_location();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof finishFileUpload_args)
          return this.equals((finishFileUpload_args)that);
        return false;
      }
  
      public boolean equals(finishFileUpload_args that) {
        if (that == null)
          return false;
  
        boolean this_present_location = true && this.is_set_location();
        boolean that_present_location = true && that.is_set_location();
        if (this_present_location || that_present_location) {
          if (!(this_present_location && that_present_location))
            return false;
          if (!this.location.equals(that.location))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_location = true && (is_set_location());
        builder.append(present_location);
        if (present_location)
          builder.append(location);
  
        return builder.toHashCode();
      }
  
      public int compareTo(finishFileUpload_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        finishFileUpload_args typedOther = (finishFileUpload_args)other;
  
        lastComparison = Boolean.valueOf(is_set_location()).compareTo(typedOther.is_set_location());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_location()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.location, typedOther.location);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // LOCATION
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.location = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.location != null) {
          oprot.writeFieldBegin(LOCATION_FIELD_DESC);
          oprot.writeString(this.location);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("finishFileUpload_args(");
        boolean first = true;
  
        sb.append("location:");
        if (this.location == null) {
          sb.append("null");
        } else {
          sb.append(this.location);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class finishFileUpload_result implements org.apache.thrift7.TBase<finishFileUpload_result, finishFileUpload_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("finishFileUpload_result");
  
  
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
  ;
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(finishFileUpload_result.class, metaDataMap);
      }
  
      public finishFileUpload_result() {
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public finishFileUpload_result(finishFileUpload_result other) {
      }
  
      public finishFileUpload_result deepCopy() {
        return new finishFileUpload_result(this);
      }
  
      @Override
      public void clear() {
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        }
        throw new IllegalStateException();
      }
  
      /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
      public boolean isSet(_Fields field) {
        if (field == null) {
          throw new IllegalArgumentException();
        }
  
        switch (field) {
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof finishFileUpload_result)
          return this.equals((finishFileUpload_result)that);
        return false;
      }
  
      public boolean equals(finishFileUpload_result that) {
        if (that == null)
          return false;
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        return builder.toHashCode();
      }
  
      public int compareTo(finishFileUpload_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        finishFileUpload_result typedOther = (finishFileUpload_result)other;
  
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("finishFileUpload_result(");
        boolean first = true;
  
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class beginFileDownload_args implements org.apache.thrift7.TBase<beginFileDownload_args, beginFileDownload_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("beginFileDownload_args");
  
      private static final org.apache.thrift7.protocol.TField FILE_FIELD_DESC = new org.apache.thrift7.protocol.TField("file", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String file; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        FILE((short)1, "file");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // FILE
              return FILE;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.FILE, new org.apache.thrift7.meta_data.FieldMetaData("file", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(beginFileDownload_args.class, metaDataMap);
      }
  
      public beginFileDownload_args() {
      }
  
      public beginFileDownload_args(
        String file)
      {
        this();
        this.file = file;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public beginFileDownload_args(beginFileDownload_args other) {
        if (other.is_set_file()) {
          this.file = other.file;
        }
      }
  
      public beginFileDownload_args deepCopy() {
        return new beginFileDownload_args(this);
      }
  
      @Override
      public void clear() {
        this.file = null;
      }
  
      public String get_file() {
        return this.file;
      }
  
      public void set_file(String file) {
        this.file = file;
      }
  
      public void unset_file() {
        this.file = null;
      }
  
      /** Returns true if field file is set (has been assigned a value) and false otherwise */
      public boolean is_set_file() {
        return this.file != null;
      }
  
      public void set_file_isSet(boolean value) {
        if (!value) {
          this.file = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case FILE:
          if (value == null) {
            unset_file();
          } else {
            set_file((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case FILE:
          return get_file();
  
        }
        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 FILE:
          return is_set_file();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof beginFileDownload_args)
          return this.equals((beginFileDownload_args)that);
        return false;
      }
  
      public boolean equals(beginFileDownload_args that) {
        if (that == null)
          return false;
  
        boolean this_present_file = true && this.is_set_file();
        boolean that_present_file = true && that.is_set_file();
        if (this_present_file || that_present_file) {
          if (!(this_present_file && that_present_file))
            return false;
          if (!this.file.equals(that.file))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_file = true && (is_set_file());
        builder.append(present_file);
        if (present_file)
          builder.append(file);
  
        return builder.toHashCode();
      }
  
      public int compareTo(beginFileDownload_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        beginFileDownload_args typedOther = (beginFileDownload_args)other;
  
        lastComparison = Boolean.valueOf(is_set_file()).compareTo(typedOther.is_set_file());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_file()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.file, typedOther.file);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // FILE
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.file = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.file != null) {
          oprot.writeFieldBegin(FILE_FIELD_DESC);
          oprot.writeString(this.file);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("beginFileDownload_args(");
        boolean first = true;
  
        sb.append("file:");
        if (this.file == null) {
          sb.append("null");
        } else {
          sb.append(this.file);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class beginFileDownload_result implements org.apache.thrift7.TBase<beginFileDownload_result, beginFileDownload_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("beginFileDownload_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRING, (short)0);
  
      private String success; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        static {
          for (_Fields field : EnumSet.allOf(_Fields.class)) {
            byName.put(field.getFieldName(), field);
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, or null if its not found.
         */
        public static _Fields findByThriftId(int fieldId) {
          switch(fieldId) {
            case 0: // SUCCESS
              return SUCCESS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(beginFileDownload_result.class, metaDataMap);
      }
  
      public beginFileDownload_result() {
      }
  
      public beginFileDownload_result(
        String success)
      {
        this();
        this.success = success;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public beginFileDownload_result(beginFileDownload_result other) {
        if (other.is_set_success()) {
          this.success = other.success;
        }
      }
  
      public beginFileDownload_result deepCopy() {
        return new beginFileDownload_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
      }
  
      public String get_success() {
        return this.success;
      }
  
      public void set_success(String success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        }
        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 is_set_success();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof beginFileDownload_result)
          return this.equals((beginFileDownload_result)that);
        return false;
      }
  
      public boolean equals(beginFileDownload_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        if (this_present_success || that_present_success) {
          if (!(this_present_success && that_present_success))
            return false;
          if (!this.success.equals(that.success))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        return builder.toHashCode();
      }
  
      public int compareTo(beginFileDownload_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        beginFileDownload_result typedOther = (beginFileDownload_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.success = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(this.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("beginFileDownload_result(");
        boolean first = true;
  
        sb.append("success:");
        if (this.success == null) {
          sb.append("null");
        } else {
          sb.append(this.success);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class downloadChunk_args implements org.apache.thrift7.TBase<downloadChunk_args, downloadChunk_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("downloadChunk_args");
  
      private static final org.apache.thrift7.protocol.TField ID_FIELD_DESC = new org.apache.thrift7.protocol.TField("id", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String id; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        ID((short)1, "id");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // ID
              return ID;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new 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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.ID, new org.apache.thrift7.meta_data.FieldMetaData("id", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(downloadChunk_args.class, metaDataMap);
      }
  
      public downloadChunk_args() {
      }
  
      public downloadChunk_args(
        String id)
      {
        this();
        this.id = id;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public downloadChunk_args(downloadChunk_args other) {
        if (other.is_set_id()) {
          this.id = other.id;
        }
      }
  
      public downloadChunk_args deepCopy() {
        return new downloadChunk_args(this);
      }
  
      @Override
      public void clear() {
        this.id = null;
      }
  
      public String get_id() {
        return this.id;
      }
  
      public void set_id(String id) {
        this.id = id;
      }
  
      public void unset_id() {
        this.id = null;
      }
  
      /** Returns true if field id is set (has been assigned a value) and false otherwise */
      public boolean is_set_id() {
        return this.id != null;
      }
  
      public void set_id_isSet(boolean value) {
        if (!value) {
          this.id = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case ID:
          if (value == null) {
            unset_id();
          } else {
            set_id((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case ID:
          return get_id();
  
        }
        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 ID:
          return is_set_id();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof downloadChunk_args)
          return this.equals((downloadChunk_args)that);
        return false;
      }
  
      public boolean equals(downloadChunk_args that) {
        if (that == null)
          return false;
  
        boolean this_present_id = true && this.is_set_id();
        boolean that_present_id = true && that.is_set_id();
        if (this_present_id || that_present_id) {
          if (!(this_present_id && that_present_id))
            return false;
          if (!this.id.equals(that.id))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_id = true && (is_set_id());
        builder.append(present_id);
        if (present_id)
          builder.append(id);
  
        return builder.toHashCode();
      }
  
      public int compareTo(downloadChunk_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        downloadChunk_args typedOther = (downloadChunk_args)other;
  
        lastComparison = Boolean.valueOf(is_set_id()).compareTo(typedOther.is_set_id());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_id()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.id, typedOther.id);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // ID
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.id = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.id != null) {
          oprot.writeFieldBegin(ID_FIELD_DESC);
          oprot.writeString(this.id);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("downloadChunk_args(");
        boolean first = true;
  
        sb.append("id:");
        if (this.id == null) {
          sb.append("null");
        } else {
          sb.append(this.id);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class downloadChunk_result implements org.apache.thrift7.TBase<downloadChunk_result, downloadChunk_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("downloadChunk_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRING, (short)0);
  
      private ByteBuffer success; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        static {
          for (_Fields field : EnumSet.allOf(_Fields.class)) {
            byName.put(field.getFieldName(), field);
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, or null if its not found.
         */
        public static _Fields findByThriftId(int fieldId) {
          switch(fieldId) {
            case 0: // SUCCESS
              return SUCCESS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING          , true)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(downloadChunk_result.class, metaDataMap);
      }
  
      public downloadChunk_result() {
      }
  
      public downloadChunk_result(
        ByteBuffer success)
      {
        this();
        this.success = success;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public downloadChunk_result(downloadChunk_result other) {
        if (other.is_set_success()) {
          this.success = org.apache.thrift7.TBaseHelper.copyBinary(other.success);
  ;
        }
      }
  
      public downloadChunk_result deepCopy() {
        return new downloadChunk_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
      }
  
      public byte[] get_success() {
        set_success(org.apache.thrift7.TBaseHelper.rightSize(success));
        return success == null ? null : success.array();
      }
  
      public ByteBuffer buffer_for_success() {
        return success;
      }
  
      public void set_success(byte[] success) {
        set_success(success == null ? (ByteBuffer)null : ByteBuffer.wrap(success));
      }
  
      public void set_success(ByteBuffer success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((ByteBuffer)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        }
        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 is_set_success();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof downloadChunk_result)
          return this.equals((downloadChunk_result)that);
        return false;
      }
  
      public boolean equals(downloadChunk_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        if (this_present_success || that_present_success) {
          if (!(this_present_success && that_present_success))
            return false;
          if (!this.success.equals(that.success))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        return builder.toHashCode();
      }
  
      public int compareTo(downloadChunk_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        downloadChunk_result typedOther = (downloadChunk_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.success = iprot.readBinary();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBinary(this.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("downloadChunk_result(");
        boolean first = true;
  
        sb.append("success:");
        if (this.success == null) {
          sb.append("null");
        } else {
          org.apache.thrift7.TBaseHelper.toString(this.success, sb);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getClusterInfo_args implements org.apache.thrift7.TBase<getClusterInfo_args, getClusterInfo_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getClusterInfo_args");
  
  
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
  ;
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getClusterInfo_args.class, metaDataMap);
      }
  
      public getClusterInfo_args() {
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getClusterInfo_args(getClusterInfo_args other) {
      }
  
      public getClusterInfo_args deepCopy() {
        return new getClusterInfo_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 getClusterInfo_args)
          return this.equals((getClusterInfo_args)that);
        return false;
      }
  
      public boolean equals(getClusterInfo_args that) {
        if (that == null)
          return false;
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        return builder.toHashCode();
      }
  
      public int compareTo(getClusterInfo_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getClusterInfo_args typedOther = (getClusterInfo_args)other;
  
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getClusterInfo_args(");
        boolean first = true;
  
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getClusterInfo_result implements org.apache.thrift7.TBase<getClusterInfo_result, getClusterInfo_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getClusterInfo_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRUCT, (short)0);
  
      private ClusterSummary success; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        static {
          for (_Fields field : EnumSet.allOf(_Fields.class)) {
            byName.put(field.getFieldName(), field);
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, or null if its not found.
         */
        public static _Fields findByThriftId(int fieldId) {
          switch(fieldId) {
            case 0: // SUCCESS
              return SUCCESS;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
          return fields;
        }
  
        /**
         * Find the _Fields constant that matches name, or null if its not found.
         */
        public static _Fields findByName(String name) {
          return byName.get(name);
        }
  
        private final short _thriftId;
        private final String _fieldName;
  
        _Fields(short thriftId, String fieldName) {
          _thriftId = thriftId;
          _fieldName = fieldName;
        }
  
        public short getThriftFieldId() {
          return _thriftId;
        }
  
        public String getFieldName() {
          return _fieldName;
        }
      }
  
      // isset id assignments
  
      public static final Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, ClusterSummary.class)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getClusterInfo_result.class, metaDataMap);
      }
  
      public getClusterInfo_result() {
      }
  
      public getClusterInfo_result(
        ClusterSummary success)
      {
        this();
        this.success = success;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getClusterInfo_result(getClusterInfo_result other) {
        if (other.is_set_success()) {
          this.success = new ClusterSummary(other.success);
        }
      }
  
      public getClusterInfo_result deepCopy() {
        return new getClusterInfo_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
      }
  
      public ClusterSummary get_success() {
        return this.success;
      }
  
      public void set_success(ClusterSummary success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((ClusterSummary)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        }
        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 is_set_success();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getClusterInfo_result)
          return this.equals((getClusterInfo_result)that);
        return false;
      }
  
      public boolean equals(getClusterInfo_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        if (this_present_success || that_present_success) {
          if (!(this_present_success && that_present_success))
            return false;
          if (!this.success.equals(that.success))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getClusterInfo_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getClusterInfo_result typedOther = (getClusterInfo_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.success = new ClusterSummary();
                this.success.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          this.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getClusterInfo_result(");
        boolean first = true;
  
        sb.append("success:");
        if (this.success == null) {
          sb.append("null");
        } else {
          sb.append(this.success);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopologyInfo_args implements org.apache.thrift7.TBase<getTopologyInfo_args, getTopologyInfo_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopologyInfo_args");
  
      private static final org.apache.thrift7.protocol.TField ID_FIELD_DESC = new org.apache.thrift7.protocol.TField("id", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String id; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        ID((short)1, "id");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // ID
              return ID;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new 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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.ID, new org.apache.thrift7.meta_data.FieldMetaData("id", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyInfo_args.class, metaDataMap);
      }
  
      public getTopologyInfo_args() {
      }
  
      public getTopologyInfo_args(
        String id)
      {
        this();
        this.id = id;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopologyInfo_args(getTopologyInfo_args other) {
        if (other.is_set_id()) {
          this.id = other.id;
        }
      }
  
      public getTopologyInfo_args deepCopy() {
        return new getTopologyInfo_args(this);
      }
  
      @Override
      public void clear() {
        this.id = null;
      }
  
      public String get_id() {
        return this.id;
      }
  
      public void set_id(String id) {
        this.id = id;
      }
  
      public void unset_id() {
        this.id = null;
      }
  
      /** Returns true if field id is set (has been assigned a value) and false otherwise */
      public boolean is_set_id() {
        return this.id != null;
      }
  
      public void set_id_isSet(boolean value) {
        if (!value) {
          this.id = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case ID:
          if (value == null) {
            unset_id();
          } else {
            set_id((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case ID:
          return get_id();
  
        }
        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 ID:
          return is_set_id();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopologyInfo_args)
          return this.equals((getTopologyInfo_args)that);
        return false;
      }
  
      public boolean equals(getTopologyInfo_args that) {
        if (that == null)
          return false;
  
        boolean this_present_id = true && this.is_set_id();
        boolean that_present_id = true && that.is_set_id();
        if (this_present_id || that_present_id) {
          if (!(this_present_id && that_present_id))
            return false;
          if (!this.id.equals(that.id))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_id = true && (is_set_id());
        builder.append(present_id);
        if (present_id)
          builder.append(id);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopologyInfo_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopologyInfo_args typedOther = (getTopologyInfo_args)other;
  
        lastComparison = Boolean.valueOf(is_set_id()).compareTo(typedOther.is_set_id());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_id()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.id, typedOther.id);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // ID
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.id = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.id != null) {
          oprot.writeFieldBegin(ID_FIELD_DESC);
          oprot.writeString(this.id);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopologyInfo_args(");
        boolean first = true;
  
        sb.append("id:");
        if (this.id == null) {
          sb.append("null");
        } else {
          sb.append(this.id);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopologyInfo_result implements org.apache.thrift7.TBase<getTopologyInfo_result, getTopologyInfo_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopologyInfo_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRUCT, (short)0);
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private TopologyInfo success; // required
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success"),
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, TopologyInfo.class)));
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyInfo_result.class, metaDataMap);
      }
  
      public getTopologyInfo_result() {
      }
  
      public getTopologyInfo_result(
        TopologyInfo success,
        NotAliveException e)
      {
        this();
        this.success = success;
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopologyInfo_result(getTopologyInfo_result other) {
        if (other.is_set_success()) {
          this.success = new TopologyInfo(other.success);
        }
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public getTopologyInfo_result deepCopy() {
        return new getTopologyInfo_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
        this.e = null;
      }
  
      public TopologyInfo get_success() {
        return this.success;
      }
  
      public void set_success(TopologyInfo success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((TopologyInfo)value);
          }
          break;
  
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        case E:
          return get_e();
  
        }
        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 is_set_success();
        case E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopologyInfo_result)
          return this.equals((getTopologyInfo_result)that);
        return false;
      }
  
      public boolean equals(getTopologyInfo_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        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_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopologyInfo_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopologyInfo_result typedOther = (getTopologyInfo_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.success = new TopologyInfo();
                this.success.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          this.success.write(oprot);
          oprot.writeFieldEnd();
        } else if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopologyInfo_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("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopologyConf_args implements org.apache.thrift7.TBase<getTopologyConf_args, getTopologyConf_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopologyConf_args");
  
      private static final org.apache.thrift7.protocol.TField ID_FIELD_DESC = new org.apache.thrift7.protocol.TField("id", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String id; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        ID((short)1, "id");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // ID
              return ID;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new 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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.ID, new org.apache.thrift7.meta_data.FieldMetaData("id", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyConf_args.class, metaDataMap);
      }
  
      public getTopologyConf_args() {
      }
  
      public getTopologyConf_args(
        String id)
      {
        this();
        this.id = id;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopologyConf_args(getTopologyConf_args other) {
        if (other.is_set_id()) {
          this.id = other.id;
        }
      }
  
      public getTopologyConf_args deepCopy() {
        return new getTopologyConf_args(this);
      }
  
      @Override
      public void clear() {
        this.id = null;
      }
  
      public String get_id() {
        return this.id;
      }
  
      public void set_id(String id) {
        this.id = id;
      }
  
      public void unset_id() {
        this.id = null;
      }
  
      /** Returns true if field id is set (has been assigned a value) and false otherwise */
      public boolean is_set_id() {
        return this.id != null;
      }
  
      public void set_id_isSet(boolean value) {
        if (!value) {
          this.id = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case ID:
          if (value == null) {
            unset_id();
          } else {
            set_id((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case ID:
          return get_id();
  
        }
        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 ID:
          return is_set_id();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopologyConf_args)
          return this.equals((getTopologyConf_args)that);
        return false;
      }
  
      public boolean equals(getTopologyConf_args that) {
        if (that == null)
          return false;
  
        boolean this_present_id = true && this.is_set_id();
        boolean that_present_id = true && that.is_set_id();
        if (this_present_id || that_present_id) {
          if (!(this_present_id && that_present_id))
            return false;
          if (!this.id.equals(that.id))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_id = true && (is_set_id());
        builder.append(present_id);
        if (present_id)
          builder.append(id);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopologyConf_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopologyConf_args typedOther = (getTopologyConf_args)other;
  
        lastComparison = Boolean.valueOf(is_set_id()).compareTo(typedOther.is_set_id());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_id()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.id, typedOther.id);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // ID
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.id = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.id != null) {
          oprot.writeFieldBegin(ID_FIELD_DESC);
          oprot.writeString(this.id);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopologyConf_args(");
        boolean first = true;
  
        sb.append("id:");
        if (this.id == null) {
          sb.append("null");
        } else {
          sb.append(this.id);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopologyConf_result implements org.apache.thrift7.TBase<getTopologyConf_result, getTopologyConf_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopologyConf_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRING, (short)0);
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private String success; // required
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success"),
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyConf_result.class, metaDataMap);
      }
  
      public getTopologyConf_result() {
      }
  
      public getTopologyConf_result(
        String success,
        NotAliveException e)
      {
        this();
        this.success = success;
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopologyConf_result(getTopologyConf_result other) {
        if (other.is_set_success()) {
          this.success = other.success;
        }
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public getTopologyConf_result deepCopy() {
        return new getTopologyConf_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
        this.e = null;
      }
  
      public String get_success() {
        return this.success;
      }
  
      public void set_success(String success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((String)value);
          }
          break;
  
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        case E:
          return get_e();
  
        }
        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 is_set_success();
        case E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopologyConf_result)
          return this.equals((getTopologyConf_result)that);
        return false;
      }
  
      public boolean equals(getTopologyConf_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        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_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopologyConf_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopologyConf_result typedOther = (getTopologyConf_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.success = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(this.success);
          oprot.writeFieldEnd();
        } else if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopologyConf_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("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopology_args implements org.apache.thrift7.TBase<getTopology_args, getTopology_args._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopology_args");
  
      private static final org.apache.thrift7.protocol.TField ID_FIELD_DESC = new org.apache.thrift7.protocol.TField("id", org.apache.thrift7.protocol.TType.STRING, (short)1);
  
      private String id; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        ID((short)1, "id");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // ID
              return ID;
            default:
              return null;
          }
        }
  
        /**
         * Find the _Fields constant that matches fieldId, throwing an exception
         * if it is not found.
         */
        public static _Fields findByThriftIdOrThrow(int fieldId) {
          _Fields fields = findByThriftId(fieldId);
          if (fields == null) throw new 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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.ID, new org.apache.thrift7.meta_data.FieldMetaData("id", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRING)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopology_args.class, metaDataMap);
      }
  
      public getTopology_args() {
      }
  
      public getTopology_args(
        String id)
      {
        this();
        this.id = id;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopology_args(getTopology_args other) {
        if (other.is_set_id()) {
          this.id = other.id;
        }
      }
  
      public getTopology_args deepCopy() {
        return new getTopology_args(this);
      }
  
      @Override
      public void clear() {
        this.id = null;
      }
  
      public String get_id() {
        return this.id;
      }
  
      public void set_id(String id) {
        this.id = id;
      }
  
      public void unset_id() {
        this.id = null;
      }
  
      /** Returns true if field id is set (has been assigned a value) and false otherwise */
      public boolean is_set_id() {
        return this.id != null;
      }
  
      public void set_id_isSet(boolean value) {
        if (!value) {
          this.id = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case ID:
          if (value == null) {
            unset_id();
          } else {
            set_id((String)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case ID:
          return get_id();
  
        }
        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 ID:
          return is_set_id();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopology_args)
          return this.equals((getTopology_args)that);
        return false;
      }
  
      public boolean equals(getTopology_args that) {
        if (that == null)
          return false;
  
        boolean this_present_id = true && this.is_set_id();
        boolean that_present_id = true && that.is_set_id();
        if (this_present_id || that_present_id) {
          if (!(this_present_id && that_present_id))
            return false;
          if (!this.id.equals(that.id))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_id = true && (is_set_id());
        builder.append(present_id);
        if (present_id)
          builder.append(id);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopology_args other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopology_args typedOther = (getTopology_args)other;
  
        lastComparison = Boolean.valueOf(is_set_id()).compareTo(typedOther.is_set_id());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_id()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.id, typedOther.id);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 1: // ID
              if (field.type == org.apache.thrift7.protocol.TType.STRING) {
                this.id = iprot.readString();
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        validate();
  
        oprot.writeStructBegin(STRUCT_DESC);
        if (this.id != null) {
          oprot.writeFieldBegin(ID_FIELD_DESC);
          oprot.writeString(this.id);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopology_args(");
        boolean first = true;
  
        sb.append("id:");
        if (this.id == null) {
          sb.append("null");
        } else {
          sb.append(this.id);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
    public static class getTopology_result implements org.apache.thrift7.TBase<getTopology_result, getTopology_result._Fields>, java.io.Serializable, Cloneable   {
      private static final org.apache.thrift7.protocol.TStruct STRUCT_DESC = new org.apache.thrift7.protocol.TStruct("getTopology_result");
  
      private static final org.apache.thrift7.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift7.protocol.TField("success", org.apache.thrift7.protocol.TType.STRUCT, (short)0);
      private static final org.apache.thrift7.protocol.TField E_FIELD_DESC = new org.apache.thrift7.protocol.TField("e", org.apache.thrift7.protocol.TType.STRUCT, (short)1);
  
      private StormTopology success; // required
      private NotAliveException e; // required
  
      /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
      public enum _Fields implements org.apache.thrift7.TFieldIdEnum {
        SUCCESS((short)0, "success"),
        E((short)1, "e");
  
        private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
  
        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: // E
              return E;
            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.thrift7.meta_data.FieldMetaData> metaDataMap;
      static {
        Map<_Fields, org.apache.thrift7.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift7.meta_data.FieldMetaData>(_Fields.class);
        tmpMap.put(_Fields.SUCCESS, new org.apache.thrift7.meta_data.FieldMetaData("success", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.StructMetaData(org.apache.thrift7.protocol.TType.STRUCT, StormTopology.class)));
        tmpMap.put(_Fields.E, new org.apache.thrift7.meta_data.FieldMetaData("e", org.apache.thrift7.TFieldRequirementType.DEFAULT, 
            new org.apache.thrift7.meta_data.FieldValueMetaData(org.apache.thrift7.protocol.TType.STRUCT)));
        metaDataMap = Collections.unmodifiableMap(tmpMap);
        org.apache.thrift7.meta_data.FieldMetaData.addStructMetaDataMap(getTopology_result.class, metaDataMap);
      }
  
      public getTopology_result() {
      }
  
      public getTopology_result(
        StormTopology success,
        NotAliveException e)
      {
        this();
        this.success = success;
        this.e = e;
      }
  
      /**
       * Performs a deep copy on <i>other</i>.
       */
      public getTopology_result(getTopology_result other) {
        if (other.is_set_success()) {
          this.success = new StormTopology(other.success);
        }
        if (other.is_set_e()) {
          this.e = new NotAliveException(other.e);
        }
      }
  
      public getTopology_result deepCopy() {
        return new getTopology_result(this);
      }
  
      @Override
      public void clear() {
        this.success = null;
        this.e = null;
      }
  
      public StormTopology get_success() {
        return this.success;
      }
  
      public void set_success(StormTopology success) {
        this.success = success;
      }
  
      public void unset_success() {
        this.success = null;
      }
  
      /** Returns true if field success is set (has been assigned a value) and false otherwise */
      public boolean is_set_success() {
        return this.success != null;
      }
  
      public void set_success_isSet(boolean value) {
        if (!value) {
          this.success = null;
        }
      }
  
      public NotAliveException get_e() {
        return this.e;
      }
  
      public void set_e(NotAliveException e) {
        this.e = e;
      }
  
      public void unset_e() {
        this.e = null;
      }
  
      /** Returns true if field e is set (has been assigned a value) and false otherwise */
      public boolean is_set_e() {
        return this.e != null;
      }
  
      public void set_e_isSet(boolean value) {
        if (!value) {
          this.e = null;
        }
      }
  
      public void setFieldValue(_Fields field, Object value) {
        switch (field) {
        case SUCCESS:
          if (value == null) {
            unset_success();
          } else {
            set_success((StormTopology)value);
          }
          break;
  
        case E:
          if (value == null) {
            unset_e();
          } else {
            set_e((NotAliveException)value);
          }
          break;
  
        }
      }
  
      public Object getFieldValue(_Fields field) {
        switch (field) {
        case SUCCESS:
          return get_success();
  
        case E:
          return get_e();
  
        }
        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 is_set_success();
        case E:
          return is_set_e();
        }
        throw new IllegalStateException();
      }
  
      @Override
      public boolean equals(Object that) {
        if (that == null)
          return false;
        if (that instanceof getTopology_result)
          return this.equals((getTopology_result)that);
        return false;
      }
  
      public boolean equals(getTopology_result that) {
        if (that == null)
          return false;
  
        boolean this_present_success = true && this.is_set_success();
        boolean that_present_success = true && that.is_set_success();
        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_e = true && this.is_set_e();
        boolean that_present_e = true && that.is_set_e();
        if (this_present_e || that_present_e) {
          if (!(this_present_e && that_present_e))
            return false;
          if (!this.e.equals(that.e))
            return false;
        }
  
        return true;
      }
  
      @Override
      public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder();
  
        boolean present_success = true && (is_set_success());
        builder.append(present_success);
        if (present_success)
          builder.append(success);
  
        boolean present_e = true && (is_set_e());
        builder.append(present_e);
        if (present_e)
          builder.append(e);
  
        return builder.toHashCode();
      }
  
      public int compareTo(getTopology_result other) {
        if (!getClass().equals(other.getClass())) {
          return getClass().getName().compareTo(other.getClass().getName());
        }
  
        int lastComparison = 0;
        getTopology_result typedOther = (getTopology_result)other;
  
        lastComparison = Boolean.valueOf(is_set_success()).compareTo(typedOther.is_set_success());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_success()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.success, typedOther.success);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        lastComparison = Boolean.valueOf(is_set_e()).compareTo(typedOther.is_set_e());
        if (lastComparison != 0) {
          return lastComparison;
        }
        if (is_set_e()) {
          lastComparison = org.apache.thrift7.TBaseHelper.compareTo(this.e, typedOther.e);
          if (lastComparison != 0) {
            return lastComparison;
          }
        }
        return 0;
      }
  
      public _Fields fieldForId(int fieldId) {
        return _Fields.findByThriftId(fieldId);
      }
  
      public void read(org.apache.thrift7.protocol.TProtocol iprot) throws org.apache.thrift7.TException {
        org.apache.thrift7.protocol.TField field;
        iprot.readStructBegin();
        while (true)
        {
          field = iprot.readFieldBegin();
          if (field.type == org.apache.thrift7.protocol.TType.STOP) { 
            break;
          }
          switch (field.id) {
            case 0: // SUCCESS
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.success = new StormTopology();
                this.success.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            case 1: // E
              if (field.type == org.apache.thrift7.protocol.TType.STRUCT) {
                this.e = new NotAliveException();
                this.e.read(iprot);
              } else { 
                org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
              }
              break;
            default:
              org.apache.thrift7.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        validate();
      }
  
      public void write(org.apache.thrift7.protocol.TProtocol oprot) throws org.apache.thrift7.TException {
        oprot.writeStructBegin(STRUCT_DESC);
  
        if (this.is_set_success()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          this.success.write(oprot);
          oprot.writeFieldEnd();
        } else if (this.is_set_e()) {
          oprot.writeFieldBegin(E_FIELD_DESC);
          this.e.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }
  
      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder("getTopology_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("e:");
        if (this.e == null) {
          sb.append("null");
        } else {
          sb.append(this.e);
        }
        first = false;
        sb.append(")");
        return sb.toString();
      }
  
      public void validate() throws org.apache.thrift7.TException {
        // check for required fields
      }
  
      private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        try {
          write(new org.apache.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(out)));
        } catch (org.apache.thrift7.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.thrift7.protocol.TCompactProtocol(new org.apache.thrift7.transport.TIOStreamTransport(in)));
        } catch (org.apache.thrift7.TException te) {
          throw new java.io.IOException(te);
        }
      }
  
    }
  
  }
  