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

com.evernote.edam.userstore.UserStore Maven / Gradle / Ivy

The newest version!
/**
 * Autogenerated by Thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
package com.evernote.edam.userstore;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;

import com.evernote.thrift.*;
import com.evernote.thrift.protocol.*;

public class UserStore {

  public interface Iface extends UserStoreIface { }

  public static class Client implements TServiceClient, Iface {
    public Client(TProtocol prot)
    {
      this(prot, prot);
    }

    public Client(TProtocol iprot, TProtocol oprot)
    {
      iprot_ = iprot;
      oprot_ = oprot;
    }

    protected TProtocol iprot_;
    protected TProtocol oprot_;

    protected int seqid_;

    public TProtocol getInputProtocol()
    {
      return this.iprot_;
    }

    public TProtocol getOutputProtocol()
    {
      return this.oprot_;
    }

    public boolean checkVersion(String clientName, short edamVersionMajor, short edamVersionMinor) throws TException
    {
      send_checkVersion(clientName, edamVersionMajor, edamVersionMinor);
      return recv_checkVersion();
    }

    public void send_checkVersion(String clientName, short edamVersionMajor, short edamVersionMinor) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("checkVersion", TMessageType.CALL, ++seqid_));
      checkVersion_args args = new checkVersion_args();
      args.setClientName(clientName);
      args.setEdamVersionMajor(edamVersionMajor);
      args.setEdamVersionMinor(edamVersionMinor);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public boolean recv_checkVersion() throws TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "checkVersion failed: out of sequence response");
      }
      checkVersion_result result = new checkVersion_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "checkVersion failed: unknown result");
    }

    public BootstrapInfo getBootstrapInfo(String locale) throws TException
    {
      send_getBootstrapInfo(locale);
      return recv_getBootstrapInfo();
    }

    public void send_getBootstrapInfo(String locale) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("getBootstrapInfo", TMessageType.CALL, ++seqid_));
      getBootstrapInfo_args args = new getBootstrapInfo_args();
      args.setLocale(locale);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public BootstrapInfo recv_getBootstrapInfo() throws TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "getBootstrapInfo failed: out of sequence response");
      }
      getBootstrapInfo_result result = new getBootstrapInfo_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "getBootstrapInfo failed: unknown result");
    }

    public AuthenticationResult authenticate(String username, String password, String consumerKey, String consumerSecret, boolean supportsTwoFactor) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_authenticate(username, password, consumerKey, consumerSecret, supportsTwoFactor);
      return recv_authenticate();
    }

    public void send_authenticate(String username, String password, String consumerKey, String consumerSecret, boolean supportsTwoFactor) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("authenticate", TMessageType.CALL, ++seqid_));
      authenticate_args args = new authenticate_args();
      args.setUsername(username);
      args.setPassword(password);
      args.setConsumerKey(consumerKey);
      args.setConsumerSecret(consumerSecret);
      args.setSupportsTwoFactor(supportsTwoFactor);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public AuthenticationResult recv_authenticate() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "authenticate failed: out of sequence response");
      }
      authenticate_result result = new authenticate_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "authenticate failed: unknown result");
    }

    public AuthenticationResult authenticateLongSession(String username, String password, String consumerKey, String consumerSecret, String deviceIdentifier, String deviceDescription, boolean supportsTwoFactor) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_authenticateLongSession(username, password, consumerKey, consumerSecret, deviceIdentifier, deviceDescription, supportsTwoFactor);
      return recv_authenticateLongSession();
    }

    public void send_authenticateLongSession(String username, String password, String consumerKey, String consumerSecret, String deviceIdentifier, String deviceDescription, boolean supportsTwoFactor) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("authenticateLongSession", TMessageType.CALL, ++seqid_));
      authenticateLongSession_args args = new authenticateLongSession_args();
      args.setUsername(username);
      args.setPassword(password);
      args.setConsumerKey(consumerKey);
      args.setConsumerSecret(consumerSecret);
      args.setDeviceIdentifier(deviceIdentifier);
      args.setDeviceDescription(deviceDescription);
      args.setSupportsTwoFactor(supportsTwoFactor);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public AuthenticationResult recv_authenticateLongSession() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "authenticateLongSession failed: out of sequence response");
      }
      authenticateLongSession_result result = new authenticateLongSession_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "authenticateLongSession failed: unknown result");
    }

    public AuthenticationResult completeTwoFactorAuthentication(String authenticationToken, String oneTimeCode, String deviceIdentifier, String deviceDescription) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_completeTwoFactorAuthentication(authenticationToken, oneTimeCode, deviceIdentifier, deviceDescription);
      return recv_completeTwoFactorAuthentication();
    }

    public void send_completeTwoFactorAuthentication(String authenticationToken, String oneTimeCode, String deviceIdentifier, String deviceDescription) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("completeTwoFactorAuthentication", TMessageType.CALL, ++seqid_));
      completeTwoFactorAuthentication_args args = new completeTwoFactorAuthentication_args();
      args.setAuthenticationToken(authenticationToken);
      args.setOneTimeCode(oneTimeCode);
      args.setDeviceIdentifier(deviceIdentifier);
      args.setDeviceDescription(deviceDescription);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public AuthenticationResult recv_completeTwoFactorAuthentication() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "completeTwoFactorAuthentication failed: out of sequence response");
      }
      completeTwoFactorAuthentication_result result = new completeTwoFactorAuthentication_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "completeTwoFactorAuthentication failed: unknown result");
    }

    public void revokeLongSession(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_revokeLongSession(authenticationToken);
      recv_revokeLongSession();
    }

    public void send_revokeLongSession(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("revokeLongSession", TMessageType.CALL, ++seqid_));
      revokeLongSession_args args = new revokeLongSession_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public void recv_revokeLongSession() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "revokeLongSession failed: out of sequence response");
      }
      revokeLongSession_result result = new revokeLongSession_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      return;
    }

    public AuthenticationResult authenticateToBusiness(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_authenticateToBusiness(authenticationToken);
      return recv_authenticateToBusiness();
    }

    public void send_authenticateToBusiness(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("authenticateToBusiness", TMessageType.CALL, ++seqid_));
      authenticateToBusiness_args args = new authenticateToBusiness_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public AuthenticationResult recv_authenticateToBusiness() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "authenticateToBusiness failed: out of sequence response");
      }
      authenticateToBusiness_result result = new authenticateToBusiness_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "authenticateToBusiness failed: unknown result");
    }

    public AuthenticationResult refreshAuthentication(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_refreshAuthentication(authenticationToken);
      return recv_refreshAuthentication();
    }

    public void send_refreshAuthentication(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("refreshAuthentication", TMessageType.CALL, ++seqid_));
      refreshAuthentication_args args = new refreshAuthentication_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public AuthenticationResult recv_refreshAuthentication() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "refreshAuthentication failed: out of sequence response");
      }
      refreshAuthentication_result result = new refreshAuthentication_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "refreshAuthentication failed: unknown result");
    }

    public com.evernote.edam.type.User getUser(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_getUser(authenticationToken);
      return recv_getUser();
    }

    public void send_getUser(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("getUser", TMessageType.CALL, ++seqid_));
      getUser_args args = new getUser_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public com.evernote.edam.type.User recv_getUser() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "getUser failed: out of sequence response");
      }
      getUser_result result = new getUser_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "getUser failed: unknown result");
    }

    public PublicUserInfo getPublicUserInfo(String username) throws com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMUserException, TException
    {
      send_getPublicUserInfo(username);
      return recv_getPublicUserInfo();
    }

    public void send_getPublicUserInfo(String username) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("getPublicUserInfo", TMessageType.CALL, ++seqid_));
      getPublicUserInfo_args args = new getPublicUserInfo_args();
      args.setUsername(username);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public PublicUserInfo recv_getPublicUserInfo() throws com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMUserException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "getPublicUserInfo failed: out of sequence response");
      }
      getPublicUserInfo_result result = new getPublicUserInfo_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.notFoundException != null) {
        throw result.notFoundException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "getPublicUserInfo failed: unknown result");
    }

    public com.evernote.edam.type.PremiumInfo getPremiumInfo(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_getPremiumInfo(authenticationToken);
      return recv_getPremiumInfo();
    }

    public void send_getPremiumInfo(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("getPremiumInfo", TMessageType.CALL, ++seqid_));
      getPremiumInfo_args args = new getPremiumInfo_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public com.evernote.edam.type.PremiumInfo recv_getPremiumInfo() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "getPremiumInfo failed: out of sequence response");
      }
      getPremiumInfo_result result = new getPremiumInfo_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "getPremiumInfo failed: unknown result");
    }

    public String getNoteStoreUrl(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      send_getNoteStoreUrl(authenticationToken);
      return recv_getNoteStoreUrl();
    }

    public void send_getNoteStoreUrl(String authenticationToken) throws TException
    {
      oprot_.writeMessageBegin(new TMessage("getNoteStoreUrl", TMessageType.CALL, ++seqid_));
      getNoteStoreUrl_args args = new getNoteStoreUrl_args();
      args.setAuthenticationToken(authenticationToken);
      args.write(oprot_);
      oprot_.writeMessageEnd();
      oprot_.getTransport().flush();
    }

    public String recv_getNoteStoreUrl() throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException
    {
      TMessage msg = iprot_.readMessageBegin();
      if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
      }
      if (msg.seqid != seqid_) {
        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "getNoteStoreUrl failed: out of sequence response");
      }
      getNoteStoreUrl_result result = new getNoteStoreUrl_result();
      result.read(iprot_);
      iprot_.readMessageEnd();
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.userException != null) {
        throw result.userException;
      }
      if (result.systemException != null) {
        throw result.systemException;
      }
      throw new TApplicationException(TApplicationException.MISSING_RESULT, "getNoteStoreUrl failed: unknown result");
    }

  }
  private static class checkVersion_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("checkVersion_args");

    private static final TField CLIENT_NAME_FIELD_DESC = new TField("clientName", TType.STRING, (short)1);
    private static final TField EDAM_VERSION_MAJOR_FIELD_DESC = new TField("edamVersionMajor", TType.I16, (short)2);
    private static final TField EDAM_VERSION_MINOR_FIELD_DESC = new TField("edamVersionMinor", TType.I16, (short)3);

    private String clientName;
    private short edamVersionMajor;
    private short edamVersionMinor;


    // isset id assignments
    private static final int __EDAMVERSIONMAJOR_ISSET_ID = 0;
    private static final int __EDAMVERSIONMINOR_ISSET_ID = 1;
    private boolean[] __isset_vector = new boolean[2];

    public checkVersion_args() {
      this.edamVersionMajor = (short)1;

      this.edamVersionMinor = (short)25;

    }

    /**
     * Performs a deep copy on other.
     */
    public checkVersion_args(checkVersion_args other) {
      System.arraycopy(other.__isset_vector, 0, __isset_vector, 0, other.__isset_vector.length);
      if (other.isSetClientName()) {
        this.clientName = other.clientName;
      }
      this.edamVersionMajor = other.edamVersionMajor;
      this.edamVersionMinor = other.edamVersionMinor;
    }

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

    public void clear() {
      this.clientName = null;
      this.edamVersionMajor = (short)1;

      this.edamVersionMinor = (short)25;

    }

    public void setClientName(String clientName) {
      this.clientName = clientName;
    }

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

    public void setEdamVersionMajor(short edamVersionMajor) {
      this.edamVersionMajor = edamVersionMajor;
      setEdamVersionMajorIsSet(true);
    }

    /** Returns true if field edamVersionMajor is set (has been asigned a value) and false otherwise */
    public boolean isSetEdamVersionMajor() {
      return __isset_vector[__EDAMVERSIONMAJOR_ISSET_ID];
    }

    public void setEdamVersionMajorIsSet(boolean value) {
      __isset_vector[__EDAMVERSIONMAJOR_ISSET_ID] = value;
    }

    public void setEdamVersionMinor(short edamVersionMinor) {
      this.edamVersionMinor = edamVersionMinor;
      setEdamVersionMinorIsSet(true);
    }

    /** Returns true if field edamVersionMinor is set (has been asigned a value) and false otherwise */
    public boolean isSetEdamVersionMinor() {
      return __isset_vector[__EDAMVERSIONMINOR_ISSET_ID];
    }

    public void setEdamVersionMinorIsSet(boolean value) {
      __isset_vector[__EDAMVERSIONMINOR_ISSET_ID] = value;
    }

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

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

      lastComparison = Boolean.valueOf(isSetClientName()).compareTo(typedOther.isSetClientName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetClientName()) {        lastComparison = TBaseHelper.compareTo(this.clientName, typedOther.clientName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEdamVersionMajor()).compareTo(typedOther.isSetEdamVersionMajor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEdamVersionMajor()) {        lastComparison = TBaseHelper.compareTo(this.edamVersionMajor, typedOther.edamVersionMajor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEdamVersionMinor()).compareTo(typedOther.isSetEdamVersionMinor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEdamVersionMinor()) {        lastComparison = TBaseHelper.compareTo(this.edamVersionMinor, typedOther.edamVersionMinor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CLIENT_NAME
            if (field.type == TType.STRING) {
              this.clientName = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // EDAM_VERSION_MAJOR
            if (field.type == TType.I16) {
              this.edamVersionMajor = iprot.readI16();
              setEdamVersionMajorIsSet(true);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // EDAM_VERSION_MINOR
            if (field.type == TType.I16) {
              this.edamVersionMinor = iprot.readI16();
              setEdamVersionMinorIsSet(true);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.clientName != null) {
        oprot.writeFieldBegin(CLIENT_NAME_FIELD_DESC);
        oprot.writeString(this.clientName);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(EDAM_VERSION_MAJOR_FIELD_DESC);
      oprot.writeI16(this.edamVersionMajor);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(EDAM_VERSION_MINOR_FIELD_DESC);
      oprot.writeI16(this.edamVersionMinor);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class checkVersion_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("checkVersion_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.BOOL, (short)0);

    private boolean success;


    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private boolean[] __isset_vector = new boolean[1];

    public checkVersion_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public checkVersion_result(checkVersion_result other) {
      System.arraycopy(other.__isset_vector, 0, __isset_vector, 0, other.__isset_vector.length);
      this.success = other.success;
    }

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

    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    /** Returns true if field success is set (has been asigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return __isset_vector[__SUCCESS_ISSET_ID];
    }

    public void setSuccessIsSet(boolean value) {
      __isset_vector[__SUCCESS_ISSET_ID] = value;
    }

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.BOOL) {
              this.success = iprot.readBool();
              setSuccessIsSet(true);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeBool(this.success);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getBootstrapInfo_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getBootstrapInfo_args");

    private static final TField LOCALE_FIELD_DESC = new TField("locale", TType.STRING, (short)1);

    private String locale;


    // isset id assignments

    public getBootstrapInfo_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getBootstrapInfo_args(getBootstrapInfo_args other) {
      if (other.isSetLocale()) {
        this.locale = other.locale;
      }
    }

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

    public void clear() {
      this.locale = null;
    }

    public void setLocale(String locale) {
      this.locale = locale;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetLocale()).compareTo(typedOther.isSetLocale());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLocale()) {        lastComparison = TBaseHelper.compareTo(this.locale, typedOther.locale);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // LOCALE
            if (field.type == TType.STRING) {
              this.locale = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getBootstrapInfo_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getBootstrapInfo_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);

    private BootstrapInfo success;


    // isset id assignments

    public getBootstrapInfo_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getBootstrapInfo_result(getBootstrapInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new BootstrapInfo(other.success);
      }
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new BootstrapInfo();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticate_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticate_args");

    private static final TField USERNAME_FIELD_DESC = new TField("username", TType.STRING, (short)1);
    private static final TField PASSWORD_FIELD_DESC = new TField("password", TType.STRING, (short)2);
    private static final TField CONSUMER_KEY_FIELD_DESC = new TField("consumerKey", TType.STRING, (short)3);
    private static final TField CONSUMER_SECRET_FIELD_DESC = new TField("consumerSecret", TType.STRING, (short)4);
    private static final TField SUPPORTS_TWO_FACTOR_FIELD_DESC = new TField("supportsTwoFactor", TType.BOOL, (short)5);

    private String username;
    private String password;
    private String consumerKey;
    private String consumerSecret;
    private boolean supportsTwoFactor;


    // isset id assignments
    private static final int __SUPPORTSTWOFACTOR_ISSET_ID = 0;
    private boolean[] __isset_vector = new boolean[1];

    public authenticate_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticate_args(authenticate_args other) {
      System.arraycopy(other.__isset_vector, 0, __isset_vector, 0, other.__isset_vector.length);
      if (other.isSetUsername()) {
        this.username = other.username;
      }
      if (other.isSetPassword()) {
        this.password = other.password;
      }
      if (other.isSetConsumerKey()) {
        this.consumerKey = other.consumerKey;
      }
      if (other.isSetConsumerSecret()) {
        this.consumerSecret = other.consumerSecret;
      }
      this.supportsTwoFactor = other.supportsTwoFactor;
    }

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

    public void clear() {
      this.username = null;
      this.password = null;
      this.consumerKey = null;
      this.consumerSecret = null;
      setSupportsTwoFactorIsSet(false);
      this.supportsTwoFactor = false;
    }

    public void setUsername(String username) {
      this.username = username;
    }

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

    public void setPassword(String password) {
      this.password = password;
    }

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

    public void setConsumerKey(String consumerKey) {
      this.consumerKey = consumerKey;
    }

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

    public void setConsumerSecret(String consumerSecret) {
      this.consumerSecret = consumerSecret;
    }

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

    public void setSupportsTwoFactor(boolean supportsTwoFactor) {
      this.supportsTwoFactor = supportsTwoFactor;
      setSupportsTwoFactorIsSet(true);
    }

    /** Returns true if field supportsTwoFactor is set (has been asigned a value) and false otherwise */
    public boolean isSetSupportsTwoFactor() {
      return __isset_vector[__SUPPORTSTWOFACTOR_ISSET_ID];
    }

    public void setSupportsTwoFactorIsSet(boolean value) {
      __isset_vector[__SUPPORTSTWOFACTOR_ISSET_ID] = value;
    }

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

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

      lastComparison = Boolean.valueOf(isSetUsername()).compareTo(typedOther.isSetUsername());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUsername()) {        lastComparison = TBaseHelper.compareTo(this.username, typedOther.username);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPassword()).compareTo(typedOther.isSetPassword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPassword()) {        lastComparison = TBaseHelper.compareTo(this.password, typedOther.password);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConsumerKey()).compareTo(typedOther.isSetConsumerKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConsumerKey()) {        lastComparison = TBaseHelper.compareTo(this.consumerKey, typedOther.consumerKey);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConsumerSecret()).compareTo(typedOther.isSetConsumerSecret());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConsumerSecret()) {        lastComparison = TBaseHelper.compareTo(this.consumerSecret, typedOther.consumerSecret);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSupportsTwoFactor()).compareTo(typedOther.isSetSupportsTwoFactor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSupportsTwoFactor()) {        lastComparison = TBaseHelper.compareTo(this.supportsTwoFactor, typedOther.supportsTwoFactor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // USERNAME
            if (field.type == TType.STRING) {
              this.username = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PASSWORD
            if (field.type == TType.STRING) {
              this.password = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // CONSUMER_KEY
            if (field.type == TType.STRING) {
              this.consumerKey = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // CONSUMER_SECRET
            if (field.type == TType.STRING) {
              this.consumerSecret = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 5: // SUPPORTS_TWO_FACTOR
            if (field.type == TType.BOOL) {
              this.supportsTwoFactor = iprot.readBool();
              setSupportsTwoFactorIsSet(true);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.username != null) {
        oprot.writeFieldBegin(USERNAME_FIELD_DESC);
        oprot.writeString(this.username);
        oprot.writeFieldEnd();
      }
      if (this.password != null) {
        oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
        oprot.writeString(this.password);
        oprot.writeFieldEnd();
      }
      if (this.consumerKey != null) {
        oprot.writeFieldBegin(CONSUMER_KEY_FIELD_DESC);
        oprot.writeString(this.consumerKey);
        oprot.writeFieldEnd();
      }
      if (this.consumerSecret != null) {
        oprot.writeFieldBegin(CONSUMER_SECRET_FIELD_DESC);
        oprot.writeString(this.consumerSecret);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(SUPPORTS_TWO_FACTOR_FIELD_DESC);
      oprot.writeBool(this.supportsTwoFactor);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticate_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticate_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private AuthenticationResult success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public authenticate_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticate_result(authenticate_result other) {
      if (other.isSetSuccess()) {
        this.success = new AuthenticationResult(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new AuthenticationResult();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticateLongSession_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticateLongSession_args");

    private static final TField USERNAME_FIELD_DESC = new TField("username", TType.STRING, (short)1);
    private static final TField PASSWORD_FIELD_DESC = new TField("password", TType.STRING, (short)2);
    private static final TField CONSUMER_KEY_FIELD_DESC = new TField("consumerKey", TType.STRING, (short)3);
    private static final TField CONSUMER_SECRET_FIELD_DESC = new TField("consumerSecret", TType.STRING, (short)4);
    private static final TField DEVICE_IDENTIFIER_FIELD_DESC = new TField("deviceIdentifier", TType.STRING, (short)5);
    private static final TField DEVICE_DESCRIPTION_FIELD_DESC = new TField("deviceDescription", TType.STRING, (short)6);
    private static final TField SUPPORTS_TWO_FACTOR_FIELD_DESC = new TField("supportsTwoFactor", TType.BOOL, (short)7);

    private String username;
    private String password;
    private String consumerKey;
    private String consumerSecret;
    private String deviceIdentifier;
    private String deviceDescription;
    private boolean supportsTwoFactor;


    // isset id assignments
    private static final int __SUPPORTSTWOFACTOR_ISSET_ID = 0;
    private boolean[] __isset_vector = new boolean[1];

    public authenticateLongSession_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateLongSession_args(authenticateLongSession_args other) {
      System.arraycopy(other.__isset_vector, 0, __isset_vector, 0, other.__isset_vector.length);
      if (other.isSetUsername()) {
        this.username = other.username;
      }
      if (other.isSetPassword()) {
        this.password = other.password;
      }
      if (other.isSetConsumerKey()) {
        this.consumerKey = other.consumerKey;
      }
      if (other.isSetConsumerSecret()) {
        this.consumerSecret = other.consumerSecret;
      }
      if (other.isSetDeviceIdentifier()) {
        this.deviceIdentifier = other.deviceIdentifier;
      }
      if (other.isSetDeviceDescription()) {
        this.deviceDescription = other.deviceDescription;
      }
      this.supportsTwoFactor = other.supportsTwoFactor;
    }

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

    public void clear() {
      this.username = null;
      this.password = null;
      this.consumerKey = null;
      this.consumerSecret = null;
      this.deviceIdentifier = null;
      this.deviceDescription = null;
      setSupportsTwoFactorIsSet(false);
      this.supportsTwoFactor = false;
    }

    public void setUsername(String username) {
      this.username = username;
    }

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

    public void setPassword(String password) {
      this.password = password;
    }

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

    public void setConsumerKey(String consumerKey) {
      this.consumerKey = consumerKey;
    }

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

    public void setConsumerSecret(String consumerSecret) {
      this.consumerSecret = consumerSecret;
    }

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

    public void setDeviceIdentifier(String deviceIdentifier) {
      this.deviceIdentifier = deviceIdentifier;
    }

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

    public void setDeviceDescription(String deviceDescription) {
      this.deviceDescription = deviceDescription;
    }

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

    public void setSupportsTwoFactor(boolean supportsTwoFactor) {
      this.supportsTwoFactor = supportsTwoFactor;
      setSupportsTwoFactorIsSet(true);
    }

    /** Returns true if field supportsTwoFactor is set (has been asigned a value) and false otherwise */
    public boolean isSetSupportsTwoFactor() {
      return __isset_vector[__SUPPORTSTWOFACTOR_ISSET_ID];
    }

    public void setSupportsTwoFactorIsSet(boolean value) {
      __isset_vector[__SUPPORTSTWOFACTOR_ISSET_ID] = value;
    }

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

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

      lastComparison = Boolean.valueOf(isSetUsername()).compareTo(typedOther.isSetUsername());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUsername()) {        lastComparison = TBaseHelper.compareTo(this.username, typedOther.username);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPassword()).compareTo(typedOther.isSetPassword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPassword()) {        lastComparison = TBaseHelper.compareTo(this.password, typedOther.password);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConsumerKey()).compareTo(typedOther.isSetConsumerKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConsumerKey()) {        lastComparison = TBaseHelper.compareTo(this.consumerKey, typedOther.consumerKey);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetConsumerSecret()).compareTo(typedOther.isSetConsumerSecret());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetConsumerSecret()) {        lastComparison = TBaseHelper.compareTo(this.consumerSecret, typedOther.consumerSecret);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDeviceIdentifier()).compareTo(typedOther.isSetDeviceIdentifier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeviceIdentifier()) {        lastComparison = TBaseHelper.compareTo(this.deviceIdentifier, typedOther.deviceIdentifier);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDeviceDescription()).compareTo(typedOther.isSetDeviceDescription());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeviceDescription()) {        lastComparison = TBaseHelper.compareTo(this.deviceDescription, typedOther.deviceDescription);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSupportsTwoFactor()).compareTo(typedOther.isSetSupportsTwoFactor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSupportsTwoFactor()) {        lastComparison = TBaseHelper.compareTo(this.supportsTwoFactor, typedOther.supportsTwoFactor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // USERNAME
            if (field.type == TType.STRING) {
              this.username = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PASSWORD
            if (field.type == TType.STRING) {
              this.password = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // CONSUMER_KEY
            if (field.type == TType.STRING) {
              this.consumerKey = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // CONSUMER_SECRET
            if (field.type == TType.STRING) {
              this.consumerSecret = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 5: // DEVICE_IDENTIFIER
            if (field.type == TType.STRING) {
              this.deviceIdentifier = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 6: // DEVICE_DESCRIPTION
            if (field.type == TType.STRING) {
              this.deviceDescription = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 7: // SUPPORTS_TWO_FACTOR
            if (field.type == TType.BOOL) {
              this.supportsTwoFactor = iprot.readBool();
              setSupportsTwoFactorIsSet(true);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.username != null) {
        oprot.writeFieldBegin(USERNAME_FIELD_DESC);
        oprot.writeString(this.username);
        oprot.writeFieldEnd();
      }
      if (this.password != null) {
        oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
        oprot.writeString(this.password);
        oprot.writeFieldEnd();
      }
      if (this.consumerKey != null) {
        oprot.writeFieldBegin(CONSUMER_KEY_FIELD_DESC);
        oprot.writeString(this.consumerKey);
        oprot.writeFieldEnd();
      }
      if (this.consumerSecret != null) {
        oprot.writeFieldBegin(CONSUMER_SECRET_FIELD_DESC);
        oprot.writeString(this.consumerSecret);
        oprot.writeFieldEnd();
      }
      if (this.deviceIdentifier != null) {
        oprot.writeFieldBegin(DEVICE_IDENTIFIER_FIELD_DESC);
        oprot.writeString(this.deviceIdentifier);
        oprot.writeFieldEnd();
      }
      if (this.deviceDescription != null) {
        oprot.writeFieldBegin(DEVICE_DESCRIPTION_FIELD_DESC);
        oprot.writeString(this.deviceDescription);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(SUPPORTS_TWO_FACTOR_FIELD_DESC);
      oprot.writeBool(this.supportsTwoFactor);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticateLongSession_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticateLongSession_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private AuthenticationResult success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public authenticateLongSession_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateLongSession_result(authenticateLongSession_result other) {
      if (other.isSetSuccess()) {
        this.success = new AuthenticationResult(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new AuthenticationResult();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class completeTwoFactorAuthentication_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("completeTwoFactorAuthentication_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);
    private static final TField ONE_TIME_CODE_FIELD_DESC = new TField("oneTimeCode", TType.STRING, (short)2);
    private static final TField DEVICE_IDENTIFIER_FIELD_DESC = new TField("deviceIdentifier", TType.STRING, (short)3);
    private static final TField DEVICE_DESCRIPTION_FIELD_DESC = new TField("deviceDescription", TType.STRING, (short)4);

    private String authenticationToken;
    private String oneTimeCode;
    private String deviceIdentifier;
    private String deviceDescription;


    // isset id assignments

    public completeTwoFactorAuthentication_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public completeTwoFactorAuthentication_args(completeTwoFactorAuthentication_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
      if (other.isSetOneTimeCode()) {
        this.oneTimeCode = other.oneTimeCode;
      }
      if (other.isSetDeviceIdentifier()) {
        this.deviceIdentifier = other.deviceIdentifier;
      }
      if (other.isSetDeviceDescription()) {
        this.deviceDescription = other.deviceDescription;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
      this.oneTimeCode = null;
      this.deviceIdentifier = null;
      this.deviceDescription = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

    public void setOneTimeCode(String oneTimeCode) {
      this.oneTimeCode = oneTimeCode;
    }

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

    public void setDeviceIdentifier(String deviceIdentifier) {
      this.deviceIdentifier = deviceIdentifier;
    }

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

    public void setDeviceDescription(String deviceDescription) {
      this.deviceDescription = deviceDescription;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOneTimeCode()).compareTo(typedOther.isSetOneTimeCode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOneTimeCode()) {        lastComparison = TBaseHelper.compareTo(this.oneTimeCode, typedOther.oneTimeCode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDeviceIdentifier()).compareTo(typedOther.isSetDeviceIdentifier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeviceIdentifier()) {        lastComparison = TBaseHelper.compareTo(this.deviceIdentifier, typedOther.deviceIdentifier);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDeviceDescription()).compareTo(typedOther.isSetDeviceDescription());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeviceDescription()) {        lastComparison = TBaseHelper.compareTo(this.deviceDescription, typedOther.deviceDescription);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // ONE_TIME_CODE
            if (field.type == TType.STRING) {
              this.oneTimeCode = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // DEVICE_IDENTIFIER
            if (field.type == TType.STRING) {
              this.deviceIdentifier = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // DEVICE_DESCRIPTION
            if (field.type == TType.STRING) {
              this.deviceDescription = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.authenticationToken != null) {
        oprot.writeFieldBegin(AUTHENTICATION_TOKEN_FIELD_DESC);
        oprot.writeString(this.authenticationToken);
        oprot.writeFieldEnd();
      }
      if (this.oneTimeCode != null) {
        oprot.writeFieldBegin(ONE_TIME_CODE_FIELD_DESC);
        oprot.writeString(this.oneTimeCode);
        oprot.writeFieldEnd();
      }
      if (this.deviceIdentifier != null) {
        oprot.writeFieldBegin(DEVICE_IDENTIFIER_FIELD_DESC);
        oprot.writeString(this.deviceIdentifier);
        oprot.writeFieldEnd();
      }
      if (this.deviceDescription != null) {
        oprot.writeFieldBegin(DEVICE_DESCRIPTION_FIELD_DESC);
        oprot.writeString(this.deviceDescription);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class completeTwoFactorAuthentication_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("completeTwoFactorAuthentication_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private AuthenticationResult success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public completeTwoFactorAuthentication_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public completeTwoFactorAuthentication_result(completeTwoFactorAuthentication_result other) {
      if (other.isSetSuccess()) {
        this.success = new AuthenticationResult(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new AuthenticationResult();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class revokeLongSession_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("revokeLongSession_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public revokeLongSession_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeLongSession_args(revokeLongSession_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class revokeLongSession_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("revokeLongSession_result");

    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public revokeLongSession_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public revokeLongSession_result(revokeLongSession_result other) {
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticateToBusiness_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticateToBusiness_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public authenticateToBusiness_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateToBusiness_args(authenticateToBusiness_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class authenticateToBusiness_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("authenticateToBusiness_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private AuthenticationResult success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public authenticateToBusiness_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public authenticateToBusiness_result(authenticateToBusiness_result other) {
      if (other.isSetSuccess()) {
        this.success = new AuthenticationResult(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new AuthenticationResult();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class refreshAuthentication_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("refreshAuthentication_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public refreshAuthentication_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public refreshAuthentication_args(refreshAuthentication_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class refreshAuthentication_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("refreshAuthentication_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private AuthenticationResult success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public refreshAuthentication_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public refreshAuthentication_result(refreshAuthentication_result other) {
      if (other.isSetSuccess()) {
        this.success = new AuthenticationResult(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new AuthenticationResult();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getUser_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getUser_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public getUser_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getUser_args(getUser_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getUser_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getUser_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private com.evernote.edam.type.User success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public getUser_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getUser_result(getUser_result other) {
      if (other.isSetSuccess()) {
        this.success = new com.evernote.edam.type.User(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new com.evernote.edam.type.User();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getPublicUserInfo_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getPublicUserInfo_args");

    private static final TField USERNAME_FIELD_DESC = new TField("username", TType.STRING, (short)1);

    private String username;


    // isset id assignments

    public getPublicUserInfo_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getPublicUserInfo_args(getPublicUserInfo_args other) {
      if (other.isSetUsername()) {
        this.username = other.username;
      }
    }

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

    public void clear() {
      this.username = null;
    }

    public void setUsername(String username) {
      this.username = username;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetUsername()).compareTo(typedOther.isSetUsername());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUsername()) {        lastComparison = TBaseHelper.compareTo(this.username, typedOther.username);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // USERNAME
            if (field.type == TType.STRING) {
              this.username = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getPublicUserInfo_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getPublicUserInfo_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField NOT_FOUND_EXCEPTION_FIELD_DESC = new TField("notFoundException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)3);

    private PublicUserInfo success;
    private com.evernote.edam.error.EDAMNotFoundException notFoundException;
    private com.evernote.edam.error.EDAMSystemException systemException;
    private com.evernote.edam.error.EDAMUserException userException;


    // isset id assignments

    public getPublicUserInfo_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getPublicUserInfo_result(getPublicUserInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new PublicUserInfo(other.success);
      }
      if (other.isSetNotFoundException()) {
        this.notFoundException = new com.evernote.edam.error.EDAMNotFoundException(other.notFoundException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.notFoundException = null;
      this.systemException = null;
      this.userException = null;
    }

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

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetNotFoundException()).compareTo(typedOther.isSetNotFoundException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNotFoundException()) {        lastComparison = TBaseHelper.compareTo(this.notFoundException, typedOther.notFoundException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new PublicUserInfo();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // NOT_FOUND_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.notFoundException = new com.evernote.edam.error.EDAMNotFoundException();
              this.notFoundException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetNotFoundException()) {
        oprot.writeFieldBegin(NOT_FOUND_EXCEPTION_FIELD_DESC);
        this.notFoundException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getPremiumInfo_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getPremiumInfo_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public getPremiumInfo_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getPremiumInfo_args(getPremiumInfo_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getPremiumInfo_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getPremiumInfo_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private com.evernote.edam.type.PremiumInfo success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public getPremiumInfo_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getPremiumInfo_result(getPremiumInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new com.evernote.edam.type.PremiumInfo(other.success);
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRUCT) {
              this.success = new com.evernote.edam.type.PremiumInfo();
              this.success.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getNoteStoreUrl_args implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getNoteStoreUrl_args");

    private static final TField AUTHENTICATION_TOKEN_FIELD_DESC = new TField("authenticationToken", TType.STRING, (short)1);

    private String authenticationToken;


    // isset id assignments

    public getNoteStoreUrl_args() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getNoteStoreUrl_args(getNoteStoreUrl_args other) {
      if (other.isSetAuthenticationToken()) {
        this.authenticationToken = other.authenticationToken;
      }
    }

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

    public void clear() {
      this.authenticationToken = null;
    }

    public void setAuthenticationToken(String authenticationToken) {
      this.authenticationToken = authenticationToken;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAuthenticationToken()).compareTo(typedOther.isSetAuthenticationToken());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthenticationToken()) {        lastComparison = TBaseHelper.compareTo(this.authenticationToken, typedOther.authenticationToken);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AUTHENTICATION_TOKEN
            if (field.type == TType.STRING) {
              this.authenticationToken = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      validate();

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

    public void validate() throws TException {
      // check for required fields
    }

  }

  private static class getNoteStoreUrl_result implements TBase, java.io.Serializable, Cloneable   {
    private static final TStruct STRUCT_DESC = new TStruct("getNoteStoreUrl_result");

    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRING, (short)0);
    private static final TField USER_EXCEPTION_FIELD_DESC = new TField("userException", TType.STRUCT, (short)1);
    private static final TField SYSTEM_EXCEPTION_FIELD_DESC = new TField("systemException", TType.STRUCT, (short)2);

    private String success;
    private com.evernote.edam.error.EDAMUserException userException;
    private com.evernote.edam.error.EDAMSystemException systemException;


    // isset id assignments

    public getNoteStoreUrl_result() {
    }

    /**
     * Performs a deep copy on other.
     */
    public getNoteStoreUrl_result(getNoteStoreUrl_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetUserException()) {
        this.userException = new com.evernote.edam.error.EDAMUserException(other.userException);
      }
      if (other.isSetSystemException()) {
        this.systemException = new com.evernote.edam.error.EDAMSystemException(other.systemException);
      }
    }

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

    public void clear() {
      this.success = null;
      this.userException = null;
      this.systemException = null;
    }

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

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

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

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

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

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {        lastComparison = TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetUserException()).compareTo(typedOther.isSetUserException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUserException()) {        lastComparison = TBaseHelper.compareTo(this.userException, typedOther.userException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSystemException()).compareTo(typedOther.isSetSystemException());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSystemException()) {        lastComparison = TBaseHelper.compareTo(this.systemException, typedOther.systemException);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public void read(TProtocol iprot) throws TException {
      TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == TType.STRING) {
              this.success = iprot.readString();
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // USER_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.userException = new com.evernote.edam.error.EDAMUserException();
              this.userException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // SYSTEM_EXCEPTION
            if (field.type == TType.STRUCT) {
              this.systemException = new com.evernote.edam.error.EDAMSystemException();
              this.systemException.read(iprot);
            } else { 
              TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(TProtocol oprot) throws TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetUserException()) {
        oprot.writeFieldBegin(USER_EXCEPTION_FIELD_DESC);
        this.userException.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSystemException()) {
        oprot.writeFieldBegin(SYSTEM_EXCEPTION_FIELD_DESC);
        this.systemException.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    public void validate() throws TException {
      // check for required fields
    }

  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy