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

tech.aroma.thrift.service.AromaService Maven / Gradle / Ivy

Go to download

Part of the Aroma Project. This project contains the Service and Model Definitions. From this the Server and Client interfaces are generated for the Aroma Service.

There is a newer version: 2.2
Show newest version
/**
 * Autogenerated by Thrift Compiler (0.9.3)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package tech.aroma.thrift.service;

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

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

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-05-10")
public class AromaService {

  /**
   * The Aroma Service is designed to be used by People, and not Applications.
   * They provide query interfaces and Authentication/Authorization over Data.
   */
  public interface Iface {

    public double getApiVersion() throws org.apache.thrift.TException;

    public DeleteApplicationResponse deleteApplication(DeleteApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public DeleteMessageResponse deleteMessage(DeleteMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public DismissMessageResponse dismissMessage(DismissMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Provision a New Application to keep tabs on.
     * 
     * #user
     * 
     * @param request
     */
    public ProvisionApplicationResponse provisionApplication(ProvisionApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Regenerate an Application Token in case the existing one is lost, forgotten, or compromised.
     * Keep in mind that this will invalidate any prior existing Application Tokens.
     * Only an "owner" can perform this operation.
     * 
     * #owner
     * 
     * @param request
     */
    public RegenerateApplicationTokenResponse regenerateToken(RegenerateApplicationTokenRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Register an existing Application for Health Pokes. The Aroma Service
     * will then periodically poke the Application for health status.
     * 
     * #owner
     * 
     * @param request
     */
    public RegisterHealthCheckResponse registerHealthCheck(RegisterHealthCheckRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Removes a previously saved channel.
     * 
     * @param request
     */
    public RemoveSavedChannelResponse removeSavedChannel(RemoveSavedChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException;

    /**
     * Renew an Application Token that is close to being expired.
     * Only an "owner" can perform this operation.
     * 
     * #owner
     * 
     * @param request
     */
    public RenewApplicationTokenResponse renewApplicationToken(RenewApplicationTokenRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Saves a user's channel for future reference.
     * 
     * @param request
     */
    public SaveChannelResponse saveChannel(SaveChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Sign in to the App and get a User Token in return.
     * 
     * #user
     * 
     * @param request
     */
    public SignInResponse signIn(SignInRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException;

    /**
     * Sign Up for an Aroma Account.
     * 
     * @param request
     */
    public SignUpResponse signUp(SignUpRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.AccountAlreadyExistsException, org.apache.thrift.TException;

    /**
     * Snoozes a Channel momentarily, so that it won't be notified of new alerts and messages.
     * 
     * @param request
     */
    public SnoozeChannelResponse snoozeChannel(SnoozeChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException;

    /**
     * Subscribe to an existing application to get notifications.
     * 
     * #user
     * 
     * @param request
     */
    public FollowApplicationResponse followApplication(FollowApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public UnfollowApplicationResponse unfollowApplication(UnfollowApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * #owner
     * 
     * @param request
     */
    public UpdateApplicationResponse updateApplication(UpdateApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public UpdateReactionsResponse updateReactions(UpdateReactionsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    /**
     * Get all of the User-Related activities that have happened recently.
     * 
     * #user
     * 
     * @param request
     */
    public GetActivityResponse getActivity(GetActivityRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    /**
     * Get details about an Application from it's unique ID
     * 
     * #user
     * 
     * @param request
     */
    public GetApplicationInfoResponse getApplicationInfo(GetApplicationInfoRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public GetBuzzResponse getBuzz(GetBuzzRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public GetDashboardResponse getDashboard(GetDashboardRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    /**
     * Get an Application's Messages.
     * 
     * @param request
     */
    public GetApplicationMessagesResponse getApplicationMessages(GetApplicationMessagesRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, org.apache.thrift.TException;

    /**
     * Get Messages in a User's Inbox
     * 
     * @param request
     */
    public GetInboxResponse getInbox(GetInboxRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    /**
     * In case the Message body has been truncated, use this operation
     * to load the full message.
     * 
     * @param request
     */
    public GetFullMessageResponse getFullMessage(GetFullMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    /**
     * Request to get Media stored by the Aroma Service.
     * 
     * @param request
     */
    public GetMediaResponse getMedia(GetMediaRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.DoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public GetApplicationsOwnedByResponse getApplicationsOwnedBy(GetApplicationsOwnedByRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    public GetApplicationsFollowedByResponse getApplicationsFollowedBy(GetApplicationsFollowedByRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    public GetMySavedChannelsResponse getMySavedChannels(GetMySavedChannelsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException;

    public GetReactionsResponse getReactions(GetReactionsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

    public GetUserInfoResponse getUserInfo(GetUserInfoRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException;

    /**
     * Perform a Search on all the applications registered to Aroma by searching for its title.
     * 
     * #user
     * 
     * @param request
     */
    public SearchForApplicationsResponse searchForApplications(SearchForApplicationsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException;

  }

  public interface AsyncIface {

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

    public void deleteApplication(DeleteApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void deleteMessage(DeleteMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void dismissMessage(DismissMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void provisionApplication(ProvisionApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void regenerateToken(RegenerateApplicationTokenRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void registerHealthCheck(RegisterHealthCheckRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void removeSavedChannel(RemoveSavedChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void renewApplicationToken(RenewApplicationTokenRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void saveChannel(SaveChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void signIn(SignInRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void signUp(SignUpRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void snoozeChannel(SnoozeChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void followApplication(FollowApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void unfollowApplication(UnfollowApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void updateApplication(UpdateApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void updateReactions(UpdateReactionsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getActivity(GetActivityRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getApplicationInfo(GetApplicationInfoRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getBuzz(GetBuzzRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getDashboard(GetDashboardRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getApplicationMessages(GetApplicationMessagesRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getInbox(GetInboxRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getFullMessage(GetFullMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getMedia(GetMediaRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getApplicationsOwnedBy(GetApplicationsOwnedByRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getApplicationsFollowedBy(GetApplicationsFollowedByRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getMySavedChannels(GetMySavedChannelsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getReactions(GetReactionsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void getUserInfo(GetUserInfoRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

    public void searchForApplications(SearchForApplicationsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;

  }

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

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

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

    public double getApiVersion() throws org.apache.thrift.TException
    {
      send_getApiVersion();
      return recv_getApiVersion();
    }

    public void send_getApiVersion() throws org.apache.thrift.TException
    {
      getApiVersion_args args = new getApiVersion_args();
      sendBase("getApiVersion", args);
    }

    public double recv_getApiVersion() throws org.apache.thrift.TException
    {
      getApiVersion_result result = new getApiVersion_result();
      receiveBase(result, "getApiVersion");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApiVersion failed: unknown result");
    }

    public DeleteApplicationResponse deleteApplication(DeleteApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_deleteApplication(request);
      return recv_deleteApplication();
    }

    public void send_deleteApplication(DeleteApplicationRequest request) throws org.apache.thrift.TException
    {
      deleteApplication_args args = new deleteApplication_args();
      args.setRequest(request);
      sendBase("deleteApplication", args);
    }

    public DeleteApplicationResponse recv_deleteApplication() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      deleteApplication_result result = new deleteApplication_result();
      receiveBase(result, "deleteApplication");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteApplication failed: unknown result");
    }

    public DeleteMessageResponse deleteMessage(DeleteMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_deleteMessage(request);
      return recv_deleteMessage();
    }

    public void send_deleteMessage(DeleteMessageRequest request) throws org.apache.thrift.TException
    {
      deleteMessage_args args = new deleteMessage_args();
      args.setRequest(request);
      sendBase("deleteMessage", args);
    }

    public DeleteMessageResponse recv_deleteMessage() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      deleteMessage_result result = new deleteMessage_result();
      receiveBase(result, "deleteMessage");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteMessage failed: unknown result");
    }

    public DismissMessageResponse dismissMessage(DismissMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_dismissMessage(request);
      return recv_dismissMessage();
    }

    public void send_dismissMessage(DismissMessageRequest request) throws org.apache.thrift.TException
    {
      dismissMessage_args args = new dismissMessage_args();
      args.setRequest(request);
      sendBase("dismissMessage", args);
    }

    public DismissMessageResponse recv_dismissMessage() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      dismissMessage_result result = new dismissMessage_result();
      receiveBase(result, "dismissMessage");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "dismissMessage failed: unknown result");
    }

    public ProvisionApplicationResponse provisionApplication(ProvisionApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_provisionApplication(request);
      return recv_provisionApplication();
    }

    public void send_provisionApplication(ProvisionApplicationRequest request) throws org.apache.thrift.TException
    {
      provisionApplication_args args = new provisionApplication_args();
      args.setRequest(request);
      sendBase("provisionApplication", args);
    }

    public ProvisionApplicationResponse recv_provisionApplication() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      provisionApplication_result result = new provisionApplication_result();
      receiveBase(result, "provisionApplication");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "provisionApplication failed: unknown result");
    }

    public RegenerateApplicationTokenResponse regenerateToken(RegenerateApplicationTokenRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_regenerateToken(request);
      return recv_regenerateToken();
    }

    public void send_regenerateToken(RegenerateApplicationTokenRequest request) throws org.apache.thrift.TException
    {
      regenerateToken_args args = new regenerateToken_args();
      args.setRequest(request);
      sendBase("regenerateToken", args);
    }

    public RegenerateApplicationTokenResponse recv_regenerateToken() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      regenerateToken_result result = new regenerateToken_result();
      receiveBase(result, "regenerateToken");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "regenerateToken failed: unknown result");
    }

    public RegisterHealthCheckResponse registerHealthCheck(RegisterHealthCheckRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_registerHealthCheck(request);
      return recv_registerHealthCheck();
    }

    public void send_registerHealthCheck(RegisterHealthCheckRequest request) throws org.apache.thrift.TException
    {
      registerHealthCheck_args args = new registerHealthCheck_args();
      args.setRequest(request);
      sendBase("registerHealthCheck", args);
    }

    public RegisterHealthCheckResponse recv_registerHealthCheck() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      registerHealthCheck_result result = new registerHealthCheck_result();
      receiveBase(result, "registerHealthCheck");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "registerHealthCheck failed: unknown result");
    }

    public RemoveSavedChannelResponse removeSavedChannel(RemoveSavedChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException
    {
      send_removeSavedChannel(request);
      return recv_removeSavedChannel();
    }

    public void send_removeSavedChannel(RemoveSavedChannelRequest request) throws org.apache.thrift.TException
    {
      removeSavedChannel_args args = new removeSavedChannel_args();
      args.setRequest(request);
      sendBase("removeSavedChannel", args);
    }

    public RemoveSavedChannelResponse recv_removeSavedChannel() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException
    {
      removeSavedChannel_result result = new removeSavedChannel_result();
      receiveBase(result, "removeSavedChannel");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "removeSavedChannel failed: unknown result");
    }

    public RenewApplicationTokenResponse renewApplicationToken(RenewApplicationTokenRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_renewApplicationToken(request);
      return recv_renewApplicationToken();
    }

    public void send_renewApplicationToken(RenewApplicationTokenRequest request) throws org.apache.thrift.TException
    {
      renewApplicationToken_args args = new renewApplicationToken_args();
      args.setRequest(request);
      sendBase("renewApplicationToken", args);
    }

    public RenewApplicationTokenResponse recv_renewApplicationToken() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      renewApplicationToken_result result = new renewApplicationToken_result();
      receiveBase(result, "renewApplicationToken");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "renewApplicationToken failed: unknown result");
    }

    public SaveChannelResponse saveChannel(SaveChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_saveChannel(request);
      return recv_saveChannel();
    }

    public void send_saveChannel(SaveChannelRequest request) throws org.apache.thrift.TException
    {
      saveChannel_args args = new saveChannel_args();
      args.setRequest(request);
      sendBase("saveChannel", args);
    }

    public SaveChannelResponse recv_saveChannel() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      saveChannel_result result = new saveChannel_result();
      receiveBase(result, "saveChannel");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "saveChannel failed: unknown result");
    }

    public SignInResponse signIn(SignInRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException
    {
      send_signIn(request);
      return recv_signIn();
    }

    public void send_signIn(SignInRequest request) throws org.apache.thrift.TException
    {
      signIn_args args = new signIn_args();
      args.setRequest(request);
      sendBase("signIn", args);
    }

    public SignInResponse recv_signIn() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException
    {
      signIn_result result = new signIn_result();
      receiveBase(result, "signIn");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "signIn failed: unknown result");
    }

    public SignUpResponse signUp(SignUpRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.AccountAlreadyExistsException, org.apache.thrift.TException
    {
      send_signUp(request);
      return recv_signUp();
    }

    public void send_signUp(SignUpRequest request) throws org.apache.thrift.TException
    {
      signUp_args args = new signUp_args();
      args.setRequest(request);
      sendBase("signUp", args);
    }

    public SignUpResponse recv_signUp() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.AccountAlreadyExistsException, org.apache.thrift.TException
    {
      signUp_result result = new signUp_result();
      receiveBase(result, "signUp");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "signUp failed: unknown result");
    }

    public SnoozeChannelResponse snoozeChannel(SnoozeChannelRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException
    {
      send_snoozeChannel(request);
      return recv_snoozeChannel();
    }

    public void send_snoozeChannel(SnoozeChannelRequest request) throws org.apache.thrift.TException
    {
      snoozeChannel_args args = new snoozeChannel_args();
      args.setRequest(request);
      sendBase("snoozeChannel", args);
    }

    public SnoozeChannelResponse recv_snoozeChannel() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException
    {
      snoozeChannel_result result = new snoozeChannel_result();
      receiveBase(result, "snoozeChannel");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "snoozeChannel failed: unknown result");
    }

    public FollowApplicationResponse followApplication(FollowApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_followApplication(request);
      return recv_followApplication();
    }

    public void send_followApplication(FollowApplicationRequest request) throws org.apache.thrift.TException
    {
      followApplication_args args = new followApplication_args();
      args.setRequest(request);
      sendBase("followApplication", args);
    }

    public FollowApplicationResponse recv_followApplication() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      followApplication_result result = new followApplication_result();
      receiveBase(result, "followApplication");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "followApplication failed: unknown result");
    }

    public UnfollowApplicationResponse unfollowApplication(UnfollowApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_unfollowApplication(request);
      return recv_unfollowApplication();
    }

    public void send_unfollowApplication(UnfollowApplicationRequest request) throws org.apache.thrift.TException
    {
      unfollowApplication_args args = new unfollowApplication_args();
      args.setRequest(request);
      sendBase("unfollowApplication", args);
    }

    public UnfollowApplicationResponse recv_unfollowApplication() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      unfollowApplication_result result = new unfollowApplication_result();
      receiveBase(result, "unfollowApplication");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "unfollowApplication failed: unknown result");
    }

    public UpdateApplicationResponse updateApplication(UpdateApplicationRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_updateApplication(request);
      return recv_updateApplication();
    }

    public void send_updateApplication(UpdateApplicationRequest request) throws org.apache.thrift.TException
    {
      updateApplication_args args = new updateApplication_args();
      args.setRequest(request);
      sendBase("updateApplication", args);
    }

    public UpdateApplicationResponse recv_updateApplication() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      updateApplication_result result = new updateApplication_result();
      receiveBase(result, "updateApplication");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateApplication failed: unknown result");
    }

    public UpdateReactionsResponse updateReactions(UpdateReactionsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_updateReactions(request);
      return recv_updateReactions();
    }

    public void send_updateReactions(UpdateReactionsRequest request) throws org.apache.thrift.TException
    {
      updateReactions_args args = new updateReactions_args();
      args.setRequest(request);
      sendBase("updateReactions", args);
    }

    public UpdateReactionsResponse recv_updateReactions() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      updateReactions_result result = new updateReactions_result();
      receiveBase(result, "updateReactions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateReactions failed: unknown result");
    }

    public GetActivityResponse getActivity(GetActivityRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getActivity(request);
      return recv_getActivity();
    }

    public void send_getActivity(GetActivityRequest request) throws org.apache.thrift.TException
    {
      getActivity_args args = new getActivity_args();
      args.setRequest(request);
      sendBase("getActivity", args);
    }

    public GetActivityResponse recv_getActivity() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getActivity_result result = new getActivity_result();
      receiveBase(result, "getActivity");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getActivity failed: unknown result");
    }

    public GetApplicationInfoResponse getApplicationInfo(GetApplicationInfoRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_getApplicationInfo(request);
      return recv_getApplicationInfo();
    }

    public void send_getApplicationInfo(GetApplicationInfoRequest request) throws org.apache.thrift.TException
    {
      getApplicationInfo_args args = new getApplicationInfo_args();
      args.setRequest(request);
      sendBase("getApplicationInfo", args);
    }

    public GetApplicationInfoResponse recv_getApplicationInfo() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      getApplicationInfo_result result = new getApplicationInfo_result();
      receiveBase(result, "getApplicationInfo");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationInfo failed: unknown result");
    }

    public GetBuzzResponse getBuzz(GetBuzzRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_getBuzz(request);
      return recv_getBuzz();
    }

    public void send_getBuzz(GetBuzzRequest request) throws org.apache.thrift.TException
    {
      getBuzz_args args = new getBuzz_args();
      args.setRequest(request);
      sendBase("getBuzz", args);
    }

    public GetBuzzResponse recv_getBuzz() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      getBuzz_result result = new getBuzz_result();
      receiveBase(result, "getBuzz");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getBuzz failed: unknown result");
    }

    public GetDashboardResponse getDashboard(GetDashboardRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getDashboard(request);
      return recv_getDashboard();
    }

    public void send_getDashboard(GetDashboardRequest request) throws org.apache.thrift.TException
    {
      getDashboard_args args = new getDashboard_args();
      args.setRequest(request);
      sendBase("getDashboard", args);
    }

    public GetDashboardResponse recv_getDashboard() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getDashboard_result result = new getDashboard_result();
      receiveBase(result, "getDashboard");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getDashboard failed: unknown result");
    }

    public GetApplicationMessagesResponse getApplicationMessages(GetApplicationMessagesRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, org.apache.thrift.TException
    {
      send_getApplicationMessages(request);
      return recv_getApplicationMessages();
    }

    public void send_getApplicationMessages(GetApplicationMessagesRequest request) throws org.apache.thrift.TException
    {
      getApplicationMessages_args args = new getApplicationMessages_args();
      args.setRequest(request);
      sendBase("getApplicationMessages", args);
    }

    public GetApplicationMessagesResponse recv_getApplicationMessages() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, org.apache.thrift.TException
    {
      getApplicationMessages_result result = new getApplicationMessages_result();
      receiveBase(result, "getApplicationMessages");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationMessages failed: unknown result");
    }

    public GetInboxResponse getInbox(GetInboxRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getInbox(request);
      return recv_getInbox();
    }

    public void send_getInbox(GetInboxRequest request) throws org.apache.thrift.TException
    {
      getInbox_args args = new getInbox_args();
      args.setRequest(request);
      sendBase("getInbox", args);
    }

    public GetInboxResponse recv_getInbox() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getInbox_result result = new getInbox_result();
      receiveBase(result, "getInbox");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getInbox failed: unknown result");
    }

    public GetFullMessageResponse getFullMessage(GetFullMessageRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getFullMessage(request);
      return recv_getFullMessage();
    }

    public void send_getFullMessage(GetFullMessageRequest request) throws org.apache.thrift.TException
    {
      getFullMessage_args args = new getFullMessage_args();
      args.setRequest(request);
      sendBase("getFullMessage", args);
    }

    public GetFullMessageResponse recv_getFullMessage() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getFullMessage_result result = new getFullMessage_result();
      receiveBase(result, "getFullMessage");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getFullMessage failed: unknown result");
    }

    public GetMediaResponse getMedia(GetMediaRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.DoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_getMedia(request);
      return recv_getMedia();
    }

    public void send_getMedia(GetMediaRequest request) throws org.apache.thrift.TException
    {
      getMedia_args args = new getMedia_args();
      args.setRequest(request);
      sendBase("getMedia", args);
    }

    public GetMediaResponse recv_getMedia() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.DoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      getMedia_result result = new getMedia_result();
      receiveBase(result, "getMedia");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getMedia failed: unknown result");
    }

    public GetApplicationsOwnedByResponse getApplicationsOwnedBy(GetApplicationsOwnedByRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getApplicationsOwnedBy(request);
      return recv_getApplicationsOwnedBy();
    }

    public void send_getApplicationsOwnedBy(GetApplicationsOwnedByRequest request) throws org.apache.thrift.TException
    {
      getApplicationsOwnedBy_args args = new getApplicationsOwnedBy_args();
      args.setRequest(request);
      sendBase("getApplicationsOwnedBy", args);
    }

    public GetApplicationsOwnedByResponse recv_getApplicationsOwnedBy() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getApplicationsOwnedBy_result result = new getApplicationsOwnedBy_result();
      receiveBase(result, "getApplicationsOwnedBy");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationsOwnedBy failed: unknown result");
    }

    public GetApplicationsFollowedByResponse getApplicationsFollowedBy(GetApplicationsFollowedByRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getApplicationsFollowedBy(request);
      return recv_getApplicationsFollowedBy();
    }

    public void send_getApplicationsFollowedBy(GetApplicationsFollowedByRequest request) throws org.apache.thrift.TException
    {
      getApplicationsFollowedBy_args args = new getApplicationsFollowedBy_args();
      args.setRequest(request);
      sendBase("getApplicationsFollowedBy", args);
    }

    public GetApplicationsFollowedByResponse recv_getApplicationsFollowedBy() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getApplicationsFollowedBy_result result = new getApplicationsFollowedBy_result();
      receiveBase(result, "getApplicationsFollowedBy");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationsFollowedBy failed: unknown result");
    }

    public GetMySavedChannelsResponse getMySavedChannels(GetMySavedChannelsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      send_getMySavedChannels(request);
      return recv_getMySavedChannels();
    }

    public void send_getMySavedChannels(GetMySavedChannelsRequest request) throws org.apache.thrift.TException
    {
      getMySavedChannels_args args = new getMySavedChannels_args();
      args.setRequest(request);
      sendBase("getMySavedChannels", args);
    }

    public GetMySavedChannelsResponse recv_getMySavedChannels() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException
    {
      getMySavedChannels_result result = new getMySavedChannels_result();
      receiveBase(result, "getMySavedChannels");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getMySavedChannels failed: unknown result");
    }

    public GetReactionsResponse getReactions(GetReactionsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_getReactions(request);
      return recv_getReactions();
    }

    public void send_getReactions(GetReactionsRequest request) throws org.apache.thrift.TException
    {
      getReactions_args args = new getReactions_args();
      args.setRequest(request);
      sendBase("getReactions", args);
    }

    public GetReactionsResponse recv_getReactions() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      getReactions_result result = new getReactions_result();
      receiveBase(result, "getReactions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getReactions failed: unknown result");
    }

    public GetUserInfoResponse getUserInfo(GetUserInfoRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException
    {
      send_getUserInfo(request);
      return recv_getUserInfo();
    }

    public void send_getUserInfo(GetUserInfoRequest request) throws org.apache.thrift.TException
    {
      getUserInfo_args args = new getUserInfo_args();
      args.setRequest(request);
      sendBase("getUserInfo", args);
    }

    public GetUserInfoResponse recv_getUserInfo() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException
    {
      getUserInfo_result result = new getUserInfo_result();
      receiveBase(result, "getUserInfo");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      if (result.ex5 != null) {
        throw result.ex5;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserInfo failed: unknown result");
    }

    public SearchForApplicationsResponse searchForApplications(SearchForApplicationsRequest request) throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      send_searchForApplications(request);
      return recv_searchForApplications();
    }

    public void send_searchForApplications(SearchForApplicationsRequest request) throws org.apache.thrift.TException
    {
      searchForApplications_args args = new searchForApplications_args();
      args.setRequest(request);
      sendBase("searchForApplications", args);
    }

    public SearchForApplicationsResponse recv_searchForApplications() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException
    {
      searchForApplications_result result = new searchForApplications_result();
      receiveBase(result, "searchForApplications");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex1 != null) {
        throw result.ex1;
      }
      if (result.ex2 != null) {
        throw result.ex2;
      }
      if (result.ex3 != null) {
        throw result.ex3;
      }
      if (result.ex4 != null) {
        throw result.ex4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchForApplications failed: unknown result");
    }

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

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

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

    public static class getApiVersion_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getApiVersion_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

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

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

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

    public static class deleteApplication_call extends org.apache.thrift.async.TAsyncMethodCall {
      private DeleteApplicationRequest request;
      public deleteApplication_call(DeleteApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public DeleteApplicationResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_deleteApplication();
      }
    }

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

    public static class deleteMessage_call extends org.apache.thrift.async.TAsyncMethodCall {
      private DeleteMessageRequest request;
      public deleteMessage_call(DeleteMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public DeleteMessageResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_deleteMessage();
      }
    }

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

    public static class dismissMessage_call extends org.apache.thrift.async.TAsyncMethodCall {
      private DismissMessageRequest request;
      public dismissMessage_call(DismissMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public DismissMessageResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.MessageDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_dismissMessage();
      }
    }

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

    public static class provisionApplication_call extends org.apache.thrift.async.TAsyncMethodCall {
      private ProvisionApplicationRequest request;
      public provisionApplication_call(ProvisionApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public ProvisionApplicationResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_provisionApplication();
      }
    }

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

    public static class regenerateToken_call extends org.apache.thrift.async.TAsyncMethodCall {
      private RegenerateApplicationTokenRequest request;
      public regenerateToken_call(RegenerateApplicationTokenRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public RegenerateApplicationTokenResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_regenerateToken();
      }
    }

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

    public static class registerHealthCheck_call extends org.apache.thrift.async.TAsyncMethodCall {
      private RegisterHealthCheckRequest request;
      public registerHealthCheck_call(RegisterHealthCheckRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public RegisterHealthCheckResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_registerHealthCheck();
      }
    }

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

    public static class removeSavedChannel_call extends org.apache.thrift.async.TAsyncMethodCall {
      private RemoveSavedChannelRequest request;
      public removeSavedChannel_call(RemoveSavedChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public RemoveSavedChannelResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_removeSavedChannel();
      }
    }

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

    public static class renewApplicationToken_call extends org.apache.thrift.async.TAsyncMethodCall {
      private RenewApplicationTokenRequest request;
      public renewApplicationToken_call(RenewApplicationTokenRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public RenewApplicationTokenResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_renewApplicationToken();
      }
    }

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

    public static class saveChannel_call extends org.apache.thrift.async.TAsyncMethodCall {
      private SaveChannelRequest request;
      public saveChannel_call(SaveChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public SaveChannelResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_saveChannel();
      }
    }

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

    public static class signIn_call extends org.apache.thrift.async.TAsyncMethodCall {
      private SignInRequest request;
      public signIn_call(SignInRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public SignInResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_signIn();
      }
    }

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

    public static class signUp_call extends org.apache.thrift.async.TAsyncMethodCall {
      private SignUpRequest request;
      public signUp_call(SignUpRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public SignUpResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidCredentialsException, tech.aroma.thrift.exceptions.AccountAlreadyExistsException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_signUp();
      }
    }

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

    public static class snoozeChannel_call extends org.apache.thrift.async.TAsyncMethodCall {
      private SnoozeChannelRequest request;
      public snoozeChannel_call(SnoozeChannelRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public SnoozeChannelResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ChannelDoesNotExistException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_snoozeChannel();
      }
    }

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

    public static class followApplication_call extends org.apache.thrift.async.TAsyncMethodCall {
      private FollowApplicationRequest request;
      public followApplication_call(FollowApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public FollowApplicationResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_followApplication();
      }
    }

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

    public static class unfollowApplication_call extends org.apache.thrift.async.TAsyncMethodCall {
      private UnfollowApplicationRequest request;
      public unfollowApplication_call(UnfollowApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public UnfollowApplicationResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_unfollowApplication();
      }
    }

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

    public static class updateApplication_call extends org.apache.thrift.async.TAsyncMethodCall {
      private UpdateApplicationRequest request;
      public updateApplication_call(UpdateApplicationRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public UpdateApplicationResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_updateApplication();
      }
    }

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

    public static class updateReactions_call extends org.apache.thrift.async.TAsyncMethodCall {
      private UpdateReactionsRequest request;
      public updateReactions_call(UpdateReactionsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public UpdateReactionsResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_updateReactions();
      }
    }

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

    public static class getActivity_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetActivityRequest request;
      public getActivity_call(GetActivityRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetActivityResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getActivity();
      }
    }

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

    public static class getApplicationInfo_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetApplicationInfoRequest request;
      public getApplicationInfo_call(GetApplicationInfoRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetApplicationInfoResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getApplicationInfo();
      }
    }

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

    public static class getBuzz_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetBuzzRequest request;
      public getBuzz_call(GetBuzzRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetBuzzResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getBuzz();
      }
    }

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

    public static class getDashboard_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetDashboardRequest request;
      public getDashboard_call(GetDashboardRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetDashboardResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getDashboard();
      }
    }

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

    public static class getApplicationMessages_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetApplicationMessagesRequest request;
      public getApplicationMessages_call(GetApplicationMessagesRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetApplicationMessagesResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getApplicationMessages();
      }
    }

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

    public static class getInbox_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetInboxRequest request;
      public getInbox_call(GetInboxRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetInboxResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getInbox();
      }
    }

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

    public static class getFullMessage_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetFullMessageRequest request;
      public getFullMessage_call(GetFullMessageRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetFullMessageResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getFullMessage();
      }
    }

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

    public static class getMedia_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetMediaRequest request;
      public getMedia_call(GetMediaRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetMediaResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.DoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getMedia();
      }
    }

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

    public static class getApplicationsOwnedBy_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetApplicationsOwnedByRequest request;
      public getApplicationsOwnedBy_call(GetApplicationsOwnedByRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetApplicationsOwnedByResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getApplicationsOwnedBy();
      }
    }

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

    public static class getApplicationsFollowedBy_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetApplicationsFollowedByRequest request;
      public getApplicationsFollowedBy_call(GetApplicationsFollowedByRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetApplicationsFollowedByResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getApplicationsFollowedBy();
      }
    }

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

    public static class getMySavedChannels_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetMySavedChannelsRequest request;
      public getMySavedChannels_call(GetMySavedChannelsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetMySavedChannelsResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getMySavedChannels();
      }
    }

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

    public static class getReactions_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetReactionsRequest request;
      public getReactions_call(GetReactionsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetReactionsResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.ApplicationDoesNotExistException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getReactions();
      }
    }

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

    public static class getUserInfo_call extends org.apache.thrift.async.TAsyncMethodCall {
      private GetUserInfoRequest request;
      public getUserInfo_call(GetUserInfoRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public GetUserInfoResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, tech.aroma.thrift.exceptions.UserDoesNotExistException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getUserInfo();
      }
    }

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

    public static class searchForApplications_call extends org.apache.thrift.async.TAsyncMethodCall {
      private SearchForApplicationsRequest request;
      public searchForApplications_call(SearchForApplicationsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

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

      public SearchForApplicationsResponse getResult() throws tech.aroma.thrift.exceptions.OperationFailedException, tech.aroma.thrift.exceptions.InvalidArgumentException, tech.aroma.thrift.exceptions.InvalidTokenException, tech.aroma.thrift.exceptions.UnauthorizedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_searchForApplications();
      }
    }

  }

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

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

    private static  Map> getProcessMap(Map> processMap) {
      processMap.put("getApiVersion", new getApiVersion());
      processMap.put("deleteApplication", new deleteApplication());
      processMap.put("deleteMessage", new deleteMessage());
      processMap.put("dismissMessage", new dismissMessage());
      processMap.put("provisionApplication", new provisionApplication());
      processMap.put("regenerateToken", new regenerateToken());
      processMap.put("registerHealthCheck", new registerHealthCheck());
      processMap.put("removeSavedChannel", new removeSavedChannel());
      processMap.put("renewApplicationToken", new renewApplicationToken());
      processMap.put("saveChannel", new saveChannel());
      processMap.put("signIn", new signIn());
      processMap.put("signUp", new signUp());
      processMap.put("snoozeChannel", new snoozeChannel());
      processMap.put("followApplication", new followApplication());
      processMap.put("unfollowApplication", new unfollowApplication());
      processMap.put("updateApplication", new updateApplication());
      processMap.put("updateReactions", new updateReactions());
      processMap.put("getActivity", new getActivity());
      processMap.put("getApplicationInfo", new getApplicationInfo());
      processMap.put("getBuzz", new getBuzz());
      processMap.put("getDashboard", new getDashboard());
      processMap.put("getApplicationMessages", new getApplicationMessages());
      processMap.put("getInbox", new getInbox());
      processMap.put("getFullMessage", new getFullMessage());
      processMap.put("getMedia", new getMedia());
      processMap.put("getApplicationsOwnedBy", new getApplicationsOwnedBy());
      processMap.put("getApplicationsFollowedBy", new getApplicationsFollowedBy());
      processMap.put("getMySavedChannels", new getMySavedChannels());
      processMap.put("getReactions", new getReactions());
      processMap.put("getUserInfo", new getUserInfo());
      processMap.put("searchForApplications", new searchForApplications());
      return processMap;
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getApiVersion_result getResult(I iface, getApiVersion_args args) throws org.apache.thrift.TException {
        getApiVersion_result result = new getApiVersion_result();
        result.success = iface.getApiVersion();
        result.setSuccessIsSet(true);
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public deleteApplication_result getResult(I iface, deleteApplication_args args) throws org.apache.thrift.TException {
        deleteApplication_result result = new deleteApplication_result();
        try {
          result.success = iface.deleteApplication(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public deleteMessage_result getResult(I iface, deleteMessage_args args) throws org.apache.thrift.TException {
        deleteMessage_result result = new deleteMessage_result();
        try {
          result.success = iface.deleteMessage(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public dismissMessage_result getResult(I iface, dismissMessage_args args) throws org.apache.thrift.TException {
        dismissMessage_result result = new dismissMessage_result();
        try {
          result.success = iface.dismissMessage(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public provisionApplication_result getResult(I iface, provisionApplication_args args) throws org.apache.thrift.TException {
        provisionApplication_result result = new provisionApplication_result();
        try {
          result.success = iface.provisionApplication(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public regenerateToken_result getResult(I iface, regenerateToken_args args) throws org.apache.thrift.TException {
        regenerateToken_result result = new regenerateToken_result();
        try {
          result.success = iface.regenerateToken(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public registerHealthCheck_result getResult(I iface, registerHealthCheck_args args) throws org.apache.thrift.TException {
        registerHealthCheck_result result = new registerHealthCheck_result();
        try {
          result.success = iface.registerHealthCheck(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public removeSavedChannel_result getResult(I iface, removeSavedChannel_args args) throws org.apache.thrift.TException {
        removeSavedChannel_result result = new removeSavedChannel_result();
        try {
          result.success = iface.removeSavedChannel(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public renewApplicationToken_result getResult(I iface, renewApplicationToken_args args) throws org.apache.thrift.TException {
        renewApplicationToken_result result = new renewApplicationToken_result();
        try {
          result.success = iface.renewApplicationToken(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public saveChannel_result getResult(I iface, saveChannel_args args) throws org.apache.thrift.TException {
        saveChannel_result result = new saveChannel_result();
        try {
          result.success = iface.saveChannel(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public signIn_result getResult(I iface, signIn_args args) throws org.apache.thrift.TException {
        signIn_result result = new signIn_result();
        try {
          result.success = iface.signIn(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidCredentialsException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UserDoesNotExistException ex4) {
          result.ex4 = ex4;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public signUp_result getResult(I iface, signUp_args args) throws org.apache.thrift.TException {
        signUp_result result = new signUp_result();
        try {
          result.success = iface.signUp(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidCredentialsException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.AccountAlreadyExistsException ex4) {
          result.ex4 = ex4;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public snoozeChannel_result getResult(I iface, snoozeChannel_args args) throws org.apache.thrift.TException {
        snoozeChannel_result result = new snoozeChannel_result();
        try {
          result.success = iface.snoozeChannel(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public followApplication_result getResult(I iface, followApplication_args args) throws org.apache.thrift.TException {
        followApplication_result result = new followApplication_result();
        try {
          result.success = iface.followApplication(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public unfollowApplication_result getResult(I iface, unfollowApplication_args args) throws org.apache.thrift.TException {
        unfollowApplication_result result = new unfollowApplication_result();
        try {
          result.success = iface.unfollowApplication(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public updateApplication_result getResult(I iface, updateApplication_args args) throws org.apache.thrift.TException {
        updateApplication_result result = new updateApplication_result();
        try {
          result.success = iface.updateApplication(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public updateReactions_result getResult(I iface, updateReactions_args args) throws org.apache.thrift.TException {
        updateReactions_result result = new updateReactions_result();
        try {
          result.success = iface.updateReactions(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getActivity_result getResult(I iface, getActivity_args args) throws org.apache.thrift.TException {
        getActivity_result result = new getActivity_result();
        try {
          result.success = iface.getActivity(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getApplicationInfo_result getResult(I iface, getApplicationInfo_args args) throws org.apache.thrift.TException {
        getApplicationInfo_result result = new getApplicationInfo_result();
        try {
          result.success = iface.getApplicationInfo(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getBuzz_result getResult(I iface, getBuzz_args args) throws org.apache.thrift.TException {
        getBuzz_result result = new getBuzz_result();
        try {
          result.success = iface.getBuzz(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getDashboard_result getResult(I iface, getDashboard_args args) throws org.apache.thrift.TException {
        getDashboard_result result = new getDashboard_result();
        try {
          result.success = iface.getDashboard(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getApplicationMessages_result getResult(I iface, getApplicationMessages_args args) throws org.apache.thrift.TException {
        getApplicationMessages_result result = new getApplicationMessages_result();
        try {
          result.success = iface.getApplicationMessages(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getInbox_result getResult(I iface, getInbox_args args) throws org.apache.thrift.TException {
        getInbox_result result = new getInbox_result();
        try {
          result.success = iface.getInbox(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getFullMessage_result getResult(I iface, getFullMessage_args args) throws org.apache.thrift.TException {
        getFullMessage_result result = new getFullMessage_result();
        try {
          result.success = iface.getFullMessage(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getMedia_result getResult(I iface, getMedia_args args) throws org.apache.thrift.TException {
        getMedia_result result = new getMedia_result();
        try {
          result.success = iface.getMedia(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.DoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getApplicationsOwnedBy_result getResult(I iface, getApplicationsOwnedBy_args args) throws org.apache.thrift.TException {
        getApplicationsOwnedBy_result result = new getApplicationsOwnedBy_result();
        try {
          result.success = iface.getApplicationsOwnedBy(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getApplicationsFollowedBy_result getResult(I iface, getApplicationsFollowedBy_args args) throws org.apache.thrift.TException {
        getApplicationsFollowedBy_result result = new getApplicationsFollowedBy_result();
        try {
          result.success = iface.getApplicationsFollowedBy(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getMySavedChannels_result getResult(I iface, getMySavedChannels_args args) throws org.apache.thrift.TException {
        getMySavedChannels_result result = new getMySavedChannels_result();
        try {
          result.success = iface.getMySavedChannels(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getReactions_result getResult(I iface, getReactions_args args) throws org.apache.thrift.TException {
        getReactions_result result = new getReactions_result();
        try {
          result.success = iface.getReactions(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public getUserInfo_result getResult(I iface, getUserInfo_args args) throws org.apache.thrift.TException {
        getUserInfo_result result = new getUserInfo_result();
        try {
          result.success = iface.getUserInfo(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        } catch (tech.aroma.thrift.exceptions.UserDoesNotExistException ex5) {
          result.ex5 = ex5;
        }
        return result;
      }
    }

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

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

      protected boolean isOneway() {
        return false;
      }

      public searchForApplications_result getResult(I iface, searchForApplications_args args) throws org.apache.thrift.TException {
        searchForApplications_result result = new searchForApplications_result();
        try {
          result.success = iface.searchForApplications(args.request);
        } catch (tech.aroma.thrift.exceptions.OperationFailedException ex1) {
          result.ex1 = ex1;
        } catch (tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
          result.ex2 = ex2;
        } catch (tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
          result.ex3 = ex3;
        } catch (tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
          result.ex4 = ex4;
        }
        return result;
      }
    }

  }

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

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

    private static  Map> getProcessMap(Map> processMap) {
      processMap.put("getApiVersion", new getApiVersion());
      processMap.put("deleteApplication", new deleteApplication());
      processMap.put("deleteMessage", new deleteMessage());
      processMap.put("dismissMessage", new dismissMessage());
      processMap.put("provisionApplication", new provisionApplication());
      processMap.put("regenerateToken", new regenerateToken());
      processMap.put("registerHealthCheck", new registerHealthCheck());
      processMap.put("removeSavedChannel", new removeSavedChannel());
      processMap.put("renewApplicationToken", new renewApplicationToken());
      processMap.put("saveChannel", new saveChannel());
      processMap.put("signIn", new signIn());
      processMap.put("signUp", new signUp());
      processMap.put("snoozeChannel", new snoozeChannel());
      processMap.put("followApplication", new followApplication());
      processMap.put("unfollowApplication", new unfollowApplication());
      processMap.put("updateApplication", new updateApplication());
      processMap.put("updateReactions", new updateReactions());
      processMap.put("getActivity", new getActivity());
      processMap.put("getApplicationInfo", new getApplicationInfo());
      processMap.put("getBuzz", new getBuzz());
      processMap.put("getDashboard", new getDashboard());
      processMap.put("getApplicationMessages", new getApplicationMessages());
      processMap.put("getInbox", new getInbox());
      processMap.put("getFullMessage", new getFullMessage());
      processMap.put("getMedia", new getMedia());
      processMap.put("getApplicationsOwnedBy", new getApplicationsOwnedBy());
      processMap.put("getApplicationsFollowedBy", new getApplicationsFollowedBy());
      processMap.put("getMySavedChannels", new getMySavedChannels());
      processMap.put("getReactions", new getReactions());
      processMap.put("getUserInfo", new getUserInfo());
      processMap.put("searchForApplications", new searchForApplications());
      return processMap;
    }

    public static class getApiVersion extends org.apache.thrift.AsyncProcessFunction {
      public getApiVersion() {
        super("getApiVersion");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(Double o) {
            getApiVersion_result result = new getApiVersion_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getApiVersion_result result = new getApiVersion_result();
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getApiVersion_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getApiVersion(resultHandler);
      }
    }

    public static class deleteApplication extends org.apache.thrift.AsyncProcessFunction {
      public deleteApplication() {
        super("deleteApplication");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(DeleteApplicationResponse o) {
            deleteApplication_result result = new deleteApplication_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            deleteApplication_result result = new deleteApplication_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, deleteApplication_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.deleteApplication(args.request,resultHandler);
      }
    }

    public static class deleteMessage extends org.apache.thrift.AsyncProcessFunction {
      public deleteMessage() {
        super("deleteMessage");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(DeleteMessageResponse o) {
            deleteMessage_result result = new deleteMessage_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            deleteMessage_result result = new deleteMessage_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.MessageDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.MessageDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, deleteMessage_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.deleteMessage(args.request,resultHandler);
      }
    }

    public static class dismissMessage extends org.apache.thrift.AsyncProcessFunction {
      public dismissMessage() {
        super("dismissMessage");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(DismissMessageResponse o) {
            dismissMessage_result result = new dismissMessage_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            dismissMessage_result result = new dismissMessage_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.MessageDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.MessageDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, dismissMessage_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.dismissMessage(args.request,resultHandler);
      }
    }

    public static class provisionApplication extends org.apache.thrift.AsyncProcessFunction {
      public provisionApplication() {
        super("provisionApplication");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(ProvisionApplicationResponse o) {
            provisionApplication_result result = new provisionApplication_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            provisionApplication_result result = new provisionApplication_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, provisionApplication_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.provisionApplication(args.request,resultHandler);
      }
    }

    public static class regenerateToken extends org.apache.thrift.AsyncProcessFunction {
      public regenerateToken() {
        super("regenerateToken");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(RegenerateApplicationTokenResponse o) {
            regenerateToken_result result = new regenerateToken_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            regenerateToken_result result = new regenerateToken_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, regenerateToken_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.regenerateToken(args.request,resultHandler);
      }
    }

    public static class registerHealthCheck extends org.apache.thrift.AsyncProcessFunction {
      public registerHealthCheck() {
        super("registerHealthCheck");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(RegisterHealthCheckResponse o) {
            registerHealthCheck_result result = new registerHealthCheck_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            registerHealthCheck_result result = new registerHealthCheck_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, registerHealthCheck_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.registerHealthCheck(args.request,resultHandler);
      }
    }

    public static class removeSavedChannel extends org.apache.thrift.AsyncProcessFunction {
      public removeSavedChannel() {
        super("removeSavedChannel");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(RemoveSavedChannelResponse o) {
            removeSavedChannel_result result = new removeSavedChannel_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            removeSavedChannel_result result = new removeSavedChannel_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ChannelDoesNotExistException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.ChannelDoesNotExistException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, removeSavedChannel_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.removeSavedChannel(args.request,resultHandler);
      }
    }

    public static class renewApplicationToken extends org.apache.thrift.AsyncProcessFunction {
      public renewApplicationToken() {
        super("renewApplicationToken");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(RenewApplicationTokenResponse o) {
            renewApplicationToken_result result = new renewApplicationToken_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            renewApplicationToken_result result = new renewApplicationToken_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, renewApplicationToken_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.renewApplicationToken(args.request,resultHandler);
      }
    }

    public static class saveChannel extends org.apache.thrift.AsyncProcessFunction {
      public saveChannel() {
        super("saveChannel");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(SaveChannelResponse o) {
            saveChannel_result result = new saveChannel_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            saveChannel_result result = new saveChannel_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, saveChannel_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.saveChannel(args.request,resultHandler);
      }
    }

    public static class signIn extends org.apache.thrift.AsyncProcessFunction {
      public signIn() {
        super("signIn");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(SignInResponse o) {
            signIn_result result = new signIn_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            signIn_result result = new signIn_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidCredentialsException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidCredentialsException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UserDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UserDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, signIn_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.signIn(args.request,resultHandler);
      }
    }

    public static class signUp extends org.apache.thrift.AsyncProcessFunction {
      public signUp() {
        super("signUp");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(SignUpResponse o) {
            signUp_result result = new signUp_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            signUp_result result = new signUp_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidCredentialsException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidCredentialsException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.AccountAlreadyExistsException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.AccountAlreadyExistsException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, signUp_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.signUp(args.request,resultHandler);
      }
    }

    public static class snoozeChannel extends org.apache.thrift.AsyncProcessFunction {
      public snoozeChannel() {
        super("snoozeChannel");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(SnoozeChannelResponse o) {
            snoozeChannel_result result = new snoozeChannel_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            snoozeChannel_result result = new snoozeChannel_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ChannelDoesNotExistException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.ChannelDoesNotExistException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, snoozeChannel_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.snoozeChannel(args.request,resultHandler);
      }
    }

    public static class followApplication extends org.apache.thrift.AsyncProcessFunction {
      public followApplication() {
        super("followApplication");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(FollowApplicationResponse o) {
            followApplication_result result = new followApplication_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            followApplication_result result = new followApplication_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, followApplication_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.followApplication(args.request,resultHandler);
      }
    }

    public static class unfollowApplication extends org.apache.thrift.AsyncProcessFunction {
      public unfollowApplication() {
        super("unfollowApplication");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(UnfollowApplicationResponse o) {
            unfollowApplication_result result = new unfollowApplication_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            unfollowApplication_result result = new unfollowApplication_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, unfollowApplication_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.unfollowApplication(args.request,resultHandler);
      }
    }

    public static class updateApplication extends org.apache.thrift.AsyncProcessFunction {
      public updateApplication() {
        super("updateApplication");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(UpdateApplicationResponse o) {
            updateApplication_result result = new updateApplication_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            updateApplication_result result = new updateApplication_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, updateApplication_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.updateApplication(args.request,resultHandler);
      }
    }

    public static class updateReactions extends org.apache.thrift.AsyncProcessFunction {
      public updateReactions() {
        super("updateReactions");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(UpdateReactionsResponse o) {
            updateReactions_result result = new updateReactions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            updateReactions_result result = new updateReactions_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, updateReactions_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.updateReactions(args.request,resultHandler);
      }
    }

    public static class getActivity extends org.apache.thrift.AsyncProcessFunction {
      public getActivity() {
        super("getActivity");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetActivityResponse o) {
            getActivity_result result = new getActivity_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getActivity_result result = new getActivity_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getActivity_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getActivity(args.request,resultHandler);
      }
    }

    public static class getApplicationInfo extends org.apache.thrift.AsyncProcessFunction {
      public getApplicationInfo() {
        super("getApplicationInfo");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetApplicationInfoResponse o) {
            getApplicationInfo_result result = new getApplicationInfo_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getApplicationInfo_result result = new getApplicationInfo_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getApplicationInfo_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getApplicationInfo(args.request,resultHandler);
      }
    }

    public static class getBuzz extends org.apache.thrift.AsyncProcessFunction {
      public getBuzz() {
        super("getBuzz");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetBuzzResponse o) {
            getBuzz_result result = new getBuzz_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getBuzz_result result = new getBuzz_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getBuzz_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getBuzz(args.request,resultHandler);
      }
    }

    public static class getDashboard extends org.apache.thrift.AsyncProcessFunction {
      public getDashboard() {
        super("getDashboard");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetDashboardResponse o) {
            getDashboard_result result = new getDashboard_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getDashboard_result result = new getDashboard_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getDashboard_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getDashboard(args.request,resultHandler);
      }
    }

    public static class getApplicationMessages extends org.apache.thrift.AsyncProcessFunction {
      public getApplicationMessages() {
        super("getApplicationMessages");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetApplicationMessagesResponse o) {
            getApplicationMessages_result result = new getApplicationMessages_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getApplicationMessages_result result = new getApplicationMessages_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getApplicationMessages_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getApplicationMessages(args.request,resultHandler);
      }
    }

    public static class getInbox extends org.apache.thrift.AsyncProcessFunction {
      public getInbox() {
        super("getInbox");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetInboxResponse o) {
            getInbox_result result = new getInbox_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getInbox_result result = new getInbox_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getInbox_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getInbox(args.request,resultHandler);
      }
    }

    public static class getFullMessage extends org.apache.thrift.AsyncProcessFunction {
      public getFullMessage() {
        super("getFullMessage");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetFullMessageResponse o) {
            getFullMessage_result result = new getFullMessage_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getFullMessage_result result = new getFullMessage_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getFullMessage_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getFullMessage(args.request,resultHandler);
      }
    }

    public static class getMedia extends org.apache.thrift.AsyncProcessFunction {
      public getMedia() {
        super("getMedia");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetMediaResponse o) {
            getMedia_result result = new getMedia_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getMedia_result result = new getMedia_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.DoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.DoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getMedia_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getMedia(args.request,resultHandler);
      }
    }

    public static class getApplicationsOwnedBy extends org.apache.thrift.AsyncProcessFunction {
      public getApplicationsOwnedBy() {
        super("getApplicationsOwnedBy");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetApplicationsOwnedByResponse o) {
            getApplicationsOwnedBy_result result = new getApplicationsOwnedBy_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getApplicationsOwnedBy_result result = new getApplicationsOwnedBy_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getApplicationsOwnedBy_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getApplicationsOwnedBy(args.request,resultHandler);
      }
    }

    public static class getApplicationsFollowedBy extends org.apache.thrift.AsyncProcessFunction {
      public getApplicationsFollowedBy() {
        super("getApplicationsFollowedBy");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetApplicationsFollowedByResponse o) {
            getApplicationsFollowedBy_result result = new getApplicationsFollowedBy_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getApplicationsFollowedBy_result result = new getApplicationsFollowedBy_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getApplicationsFollowedBy_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getApplicationsFollowedBy(args.request,resultHandler);
      }
    }

    public static class getMySavedChannels extends org.apache.thrift.AsyncProcessFunction {
      public getMySavedChannels() {
        super("getMySavedChannels");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetMySavedChannelsResponse o) {
            getMySavedChannels_result result = new getMySavedChannels_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getMySavedChannels_result result = new getMySavedChannels_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getMySavedChannels_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getMySavedChannels(args.request,resultHandler);
      }
    }

    public static class getReactions extends org.apache.thrift.AsyncProcessFunction {
      public getReactions() {
        super("getReactions");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetReactionsResponse o) {
            getReactions_result result = new getReactions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getReactions_result result = new getReactions_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.ApplicationDoesNotExistException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getReactions_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getReactions(args.request,resultHandler);
      }
    }

    public static class getUserInfo extends org.apache.thrift.AsyncProcessFunction {
      public getUserInfo() {
        super("getUserInfo");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(GetUserInfoResponse o) {
            getUserInfo_result result = new getUserInfo_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            getUserInfo_result result = new getUserInfo_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UserDoesNotExistException) {
                        result.ex5 = (tech.aroma.thrift.exceptions.UserDoesNotExistException) e;
                        result.setEx5IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getUserInfo_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.getUserInfo(args.request,resultHandler);
      }
    }

    public static class searchForApplications extends org.apache.thrift.AsyncProcessFunction {
      public searchForApplications() {
        super("searchForApplications");
      }

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

      public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new AsyncMethodCallback() { 
          public void onComplete(SearchForApplicationsResponse o) {
            searchForApplications_result result = new searchForApplications_result();
            result.success = o;
            try {
              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
              return;
            } catch (Exception e) {
              LOGGER.error("Exception writing to internal frame buffer", e);
            }
            fb.close();
          }
          public void onError(Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TBase msg;
            searchForApplications_result result = new searchForApplications_result();
            if (e instanceof tech.aroma.thrift.exceptions.OperationFailedException) {
                        result.ex1 = (tech.aroma.thrift.exceptions.OperationFailedException) e;
                        result.setEx1IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidArgumentException) {
                        result.ex2 = (tech.aroma.thrift.exceptions.InvalidArgumentException) e;
                        result.setEx2IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.InvalidTokenException) {
                        result.ex3 = (tech.aroma.thrift.exceptions.InvalidTokenException) e;
                        result.setEx3IsSet(true);
                        msg = result;
            }
            else             if (e instanceof tech.aroma.thrift.exceptions.UnauthorizedException) {
                        result.ex4 = (tech.aroma.thrift.exceptions.UnauthorizedException) e;
                        result.setEx4IsSet(true);
                        msg = result;
            }
             else 
            {
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
              return;
            } catch (Exception ex) {
              LOGGER.error("Exception writing to internal frame buffer", ex);
            }
            fb.close();
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, searchForApplications_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException {
        iface.searchForApplications(args.request,resultHandler);
      }
    }

  }

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


    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApiVersion_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApiVersion_argsTupleSchemeFactory());
    }


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApiVersion_args.class, metaDataMap);
    }

    public getApiVersion_args() {
    }

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

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

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      }
      throw new IllegalStateException();
    }

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

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

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      return list.hashCode();
    }

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

      int lastComparison = 0;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class getApiVersion_argsStandardSchemeFactory implements SchemeFactory {
      public getApiVersion_argsStandardScheme getScheme() {
        return new getApiVersion_argsStandardScheme();
      }
    }

    private static class getApiVersion_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApiVersion_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

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

    }

    private static class getApiVersion_argsTupleSchemeFactory implements SchemeFactory {
      public getApiVersion_argsTupleScheme getScheme() {
        return new getApiVersion_argsTupleScheme();
      }
    }

    private static class getApiVersion_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApiVersion_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApiVersion_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.DOUBLE, (short)0);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApiVersion_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApiVersion_resultTupleSchemeFactory());
    }

    public double success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApiVersion_result.class, metaDataMap);
    }

    public getApiVersion_result() {
    }

    public getApiVersion_result(
      double success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on other.
     */
    public getApiVersion_result(getApiVersion_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

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

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

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

    public getApiVersion_result setSuccess(double success) {
      this.success = success;
      setSuccessIsSet(true);
      return this;
    }

    public void unsetSuccess() {
      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

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

      }
    }

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

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

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

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

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

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true;
      list.add(present_success);
      if (present_success)
        list.add(success);

      return list.hashCode();
    }

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

      int lastComparison = 0;

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

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class getApiVersion_resultStandardSchemeFactory implements SchemeFactory {
      public getApiVersion_resultStandardScheme getScheme() {
        return new getApiVersion_resultStandardScheme();
      }
    }

    private static class getApiVersion_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApiVersion_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
                struct.success = iprot.readDouble();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeDouble(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApiVersion_resultTupleSchemeFactory implements SchemeFactory {
      public getApiVersion_resultTupleScheme getScheme() {
        return new getApiVersion_resultTupleScheme();
      }
    }

    private static class getApiVersion_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApiVersion_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeDouble(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApiVersion_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readDouble();
          struct.setSuccessIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteApplication_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteApplication_argsTupleSchemeFactory());
    }

    public DeleteApplicationRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DeleteApplicationRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteApplication_args.class, metaDataMap);
    }

    public deleteApplication_args() {
    }

    public deleteApplication_args(
      DeleteApplicationRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteApplication_args(deleteApplication_args other) {
      if (other.isSetRequest()) {
        this.request = new DeleteApplicationRequest(other.request);
      }
    }

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

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

    public DeleteApplicationRequest getRequest() {
      return this.request;
    }

    public deleteApplication_args setRequest(DeleteApplicationRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((DeleteApplicationRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class deleteApplication_argsStandardSchemeFactory implements SchemeFactory {
      public deleteApplication_argsStandardScheme getScheme() {
        return new deleteApplication_argsStandardScheme();
      }
    }

    private static class deleteApplication_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteApplication_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new DeleteApplicationRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteApplication_argsTupleSchemeFactory implements SchemeFactory {
      public deleteApplication_argsTupleScheme getScheme() {
        return new deleteApplication_argsTupleScheme();
      }
    }

    private static class deleteApplication_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new DeleteApplicationRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteApplication_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteApplication_resultTupleSchemeFactory());
    }

    public DeleteApplicationResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DeleteApplicationResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteApplication_result.class, metaDataMap);
    }

    public deleteApplication_result() {
    }

    public deleteApplication_result(
      DeleteApplicationResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteApplication_result(deleteApplication_result other) {
      if (other.isSetSuccess()) {
        this.success = new DeleteApplicationResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public deleteApplication_result setSuccess(DeleteApplicationResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public deleteApplication_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public deleteApplication_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public deleteApplication_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public deleteApplication_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public deleteApplication_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class deleteApplication_resultStandardSchemeFactory implements SchemeFactory {
      public deleteApplication_resultStandardScheme getScheme() {
        return new deleteApplication_resultStandardScheme();
      }
    }

    private static class deleteApplication_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteApplication_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new DeleteApplicationResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteApplication_resultTupleSchemeFactory implements SchemeFactory {
      public deleteApplication_resultTupleScheme getScheme() {
        return new deleteApplication_resultTupleScheme();
      }
    }

    private static class deleteApplication_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new DeleteApplicationResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteMessage_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteMessage_argsTupleSchemeFactory());
    }

    public DeleteMessageRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DeleteMessageRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteMessage_args.class, metaDataMap);
    }

    public deleteMessage_args() {
    }

    public deleteMessage_args(
      DeleteMessageRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteMessage_args(deleteMessage_args other) {
      if (other.isSetRequest()) {
        this.request = new DeleteMessageRequest(other.request);
      }
    }

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

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

    public DeleteMessageRequest getRequest() {
      return this.request;
    }

    public deleteMessage_args setRequest(DeleteMessageRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((DeleteMessageRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class deleteMessage_argsStandardSchemeFactory implements SchemeFactory {
      public deleteMessage_argsStandardScheme getScheme() {
        return new deleteMessage_argsStandardScheme();
      }
    }

    private static class deleteMessage_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteMessage_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new DeleteMessageRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteMessage_argsTupleSchemeFactory implements SchemeFactory {
      public deleteMessage_argsTupleScheme getScheme() {
        return new deleteMessage_argsTupleScheme();
      }
    }

    private static class deleteMessage_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new DeleteMessageRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new deleteMessage_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new deleteMessage_resultTupleSchemeFactory());
    }

    public DeleteMessageResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DeleteMessageResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "MessageDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteMessage_result.class, metaDataMap);
    }

    public deleteMessage_result() {
    }

    public deleteMessage_result(
      DeleteMessageResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public deleteMessage_result(deleteMessage_result other) {
      if (other.isSetSuccess()) {
        this.success = new DeleteMessageResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public deleteMessage_result setSuccess(DeleteMessageResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public deleteMessage_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public deleteMessage_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public deleteMessage_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.MessageDoesNotExistException getEx4() {
      return this.ex4;
    }

    public deleteMessage_result setEx4(tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public deleteMessage_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.MessageDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class deleteMessage_resultStandardSchemeFactory implements SchemeFactory {
      public deleteMessage_resultStandardScheme getScheme() {
        return new deleteMessage_resultStandardScheme();
      }
    }

    private static class deleteMessage_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteMessage_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new DeleteMessageResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.MessageDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class deleteMessage_resultTupleSchemeFactory implements SchemeFactory {
      public deleteMessage_resultTupleScheme getScheme() {
        return new deleteMessage_resultTupleScheme();
      }
    }

    private static class deleteMessage_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, deleteMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, deleteMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new DeleteMessageResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.MessageDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new dismissMessage_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new dismissMessage_argsTupleSchemeFactory());
    }

    public DismissMessageRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DismissMessageRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(dismissMessage_args.class, metaDataMap);
    }

    public dismissMessage_args() {
    }

    public dismissMessage_args(
      DismissMessageRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public dismissMessage_args(dismissMessage_args other) {
      if (other.isSetRequest()) {
        this.request = new DismissMessageRequest(other.request);
      }
    }

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

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

    public DismissMessageRequest getRequest() {
      return this.request;
    }

    public dismissMessage_args setRequest(DismissMessageRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((DismissMessageRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class dismissMessage_argsStandardSchemeFactory implements SchemeFactory {
      public dismissMessage_argsStandardScheme getScheme() {
        return new dismissMessage_argsStandardScheme();
      }
    }

    private static class dismissMessage_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, dismissMessage_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new DismissMessageRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class dismissMessage_argsTupleSchemeFactory implements SchemeFactory {
      public dismissMessage_argsTupleScheme getScheme() {
        return new dismissMessage_argsTupleScheme();
      }
    }

    private static class dismissMessage_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, dismissMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, dismissMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new DismissMessageRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new dismissMessage_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new dismissMessage_resultTupleSchemeFactory());
    }

    public DismissMessageResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DismissMessageResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "MessageDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(dismissMessage_result.class, metaDataMap);
    }

    public dismissMessage_result() {
    }

    public dismissMessage_result(
      DismissMessageResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public dismissMessage_result(dismissMessage_result other) {
      if (other.isSetSuccess()) {
        this.success = new DismissMessageResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public dismissMessage_result setSuccess(DismissMessageResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public dismissMessage_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public dismissMessage_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public dismissMessage_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.MessageDoesNotExistException getEx4() {
      return this.ex4;
    }

    public dismissMessage_result setEx4(tech.aroma.thrift.exceptions.MessageDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public dismissMessage_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.MessageDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class dismissMessage_resultStandardSchemeFactory implements SchemeFactory {
      public dismissMessage_resultStandardScheme getScheme() {
        return new dismissMessage_resultStandardScheme();
      }
    }

    private static class dismissMessage_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, dismissMessage_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new DismissMessageResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.MessageDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class dismissMessage_resultTupleSchemeFactory implements SchemeFactory {
      public dismissMessage_resultTupleScheme getScheme() {
        return new dismissMessage_resultTupleScheme();
      }
    }

    private static class dismissMessage_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, dismissMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, dismissMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new DismissMessageResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.MessageDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new provisionApplication_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new provisionApplication_argsTupleSchemeFactory());
    }

    public ProvisionApplicationRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ProvisionApplicationRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(provisionApplication_args.class, metaDataMap);
    }

    public provisionApplication_args() {
    }

    public provisionApplication_args(
      ProvisionApplicationRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public provisionApplication_args(provisionApplication_args other) {
      if (other.isSetRequest()) {
        this.request = new ProvisionApplicationRequest(other.request);
      }
    }

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

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

    public ProvisionApplicationRequest getRequest() {
      return this.request;
    }

    public provisionApplication_args setRequest(ProvisionApplicationRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((ProvisionApplicationRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class provisionApplication_argsStandardSchemeFactory implements SchemeFactory {
      public provisionApplication_argsStandardScheme getScheme() {
        return new provisionApplication_argsStandardScheme();
      }
    }

    private static class provisionApplication_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, provisionApplication_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new ProvisionApplicationRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class provisionApplication_argsTupleSchemeFactory implements SchemeFactory {
      public provisionApplication_argsTupleScheme getScheme() {
        return new provisionApplication_argsTupleScheme();
      }
    }

    private static class provisionApplication_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, provisionApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, provisionApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new ProvisionApplicationRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new provisionApplication_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new provisionApplication_resultTupleSchemeFactory());
    }

    public ProvisionApplicationResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ProvisionApplicationResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(provisionApplication_result.class, metaDataMap);
    }

    public provisionApplication_result() {
    }

    public provisionApplication_result(
      ProvisionApplicationResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public provisionApplication_result(provisionApplication_result other) {
      if (other.isSetSuccess()) {
        this.success = new ProvisionApplicationResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public provisionApplication_result setSuccess(ProvisionApplicationResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public provisionApplication_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public provisionApplication_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public provisionApplication_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public provisionApplication_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public provisionApplication_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class provisionApplication_resultStandardSchemeFactory implements SchemeFactory {
      public provisionApplication_resultStandardScheme getScheme() {
        return new provisionApplication_resultStandardScheme();
      }
    }

    private static class provisionApplication_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, provisionApplication_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ProvisionApplicationResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class provisionApplication_resultTupleSchemeFactory implements SchemeFactory {
      public provisionApplication_resultTupleScheme getScheme() {
        return new provisionApplication_resultTupleScheme();
      }
    }

    private static class provisionApplication_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, provisionApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, provisionApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new ProvisionApplicationResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new regenerateToken_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new regenerateToken_argsTupleSchemeFactory());
    }

    public RegenerateApplicationTokenRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RegenerateApplicationTokenRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(regenerateToken_args.class, metaDataMap);
    }

    public regenerateToken_args() {
    }

    public regenerateToken_args(
      RegenerateApplicationTokenRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public regenerateToken_args(regenerateToken_args other) {
      if (other.isSetRequest()) {
        this.request = new RegenerateApplicationTokenRequest(other.request);
      }
    }

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

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

    public RegenerateApplicationTokenRequest getRequest() {
      return this.request;
    }

    public regenerateToken_args setRequest(RegenerateApplicationTokenRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((RegenerateApplicationTokenRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class regenerateToken_argsStandardSchemeFactory implements SchemeFactory {
      public regenerateToken_argsStandardScheme getScheme() {
        return new regenerateToken_argsStandardScheme();
      }
    }

    private static class regenerateToken_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, regenerateToken_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new RegenerateApplicationTokenRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class regenerateToken_argsTupleSchemeFactory implements SchemeFactory {
      public regenerateToken_argsTupleScheme getScheme() {
        return new regenerateToken_argsTupleScheme();
      }
    }

    private static class regenerateToken_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, regenerateToken_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, regenerateToken_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new RegenerateApplicationTokenRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new regenerateToken_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new regenerateToken_resultTupleSchemeFactory());
    }

    public RegenerateApplicationTokenResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RegenerateApplicationTokenResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(regenerateToken_result.class, metaDataMap);
    }

    public regenerateToken_result() {
    }

    public regenerateToken_result(
      RegenerateApplicationTokenResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public regenerateToken_result(regenerateToken_result other) {
      if (other.isSetSuccess()) {
        this.success = new RegenerateApplicationTokenResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public regenerateToken_result setSuccess(RegenerateApplicationTokenResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public regenerateToken_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public regenerateToken_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public regenerateToken_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public regenerateToken_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public regenerateToken_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class regenerateToken_resultStandardSchemeFactory implements SchemeFactory {
      public regenerateToken_resultStandardScheme getScheme() {
        return new regenerateToken_resultStandardScheme();
      }
    }

    private static class regenerateToken_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, regenerateToken_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new RegenerateApplicationTokenResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class regenerateToken_resultTupleSchemeFactory implements SchemeFactory {
      public regenerateToken_resultTupleScheme getScheme() {
        return new regenerateToken_resultTupleScheme();
      }
    }

    private static class regenerateToken_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, regenerateToken_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, regenerateToken_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new RegenerateApplicationTokenResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new registerHealthCheck_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new registerHealthCheck_argsTupleSchemeFactory());
    }

    public RegisterHealthCheckRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RegisterHealthCheckRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerHealthCheck_args.class, metaDataMap);
    }

    public registerHealthCheck_args() {
    }

    public registerHealthCheck_args(
      RegisterHealthCheckRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public registerHealthCheck_args(registerHealthCheck_args other) {
      if (other.isSetRequest()) {
        this.request = new RegisterHealthCheckRequest(other.request);
      }
    }

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

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

    public RegisterHealthCheckRequest getRequest() {
      return this.request;
    }

    public registerHealthCheck_args setRequest(RegisterHealthCheckRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((RegisterHealthCheckRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class registerHealthCheck_argsStandardSchemeFactory implements SchemeFactory {
      public registerHealthCheck_argsStandardScheme getScheme() {
        return new registerHealthCheck_argsStandardScheme();
      }
    }

    private static class registerHealthCheck_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, registerHealthCheck_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new RegisterHealthCheckRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class registerHealthCheck_argsTupleSchemeFactory implements SchemeFactory {
      public registerHealthCheck_argsTupleScheme getScheme() {
        return new registerHealthCheck_argsTupleScheme();
      }
    }

    private static class registerHealthCheck_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, registerHealthCheck_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, registerHealthCheck_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new RegisterHealthCheckRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new registerHealthCheck_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new registerHealthCheck_resultTupleSchemeFactory());
    }

    public RegisterHealthCheckResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RegisterHealthCheckResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerHealthCheck_result.class, metaDataMap);
    }

    public registerHealthCheck_result() {
    }

    public registerHealthCheck_result(
      RegisterHealthCheckResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public registerHealthCheck_result(registerHealthCheck_result other) {
      if (other.isSetSuccess()) {
        this.success = new RegisterHealthCheckResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public registerHealthCheck_result setSuccess(RegisterHealthCheckResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public registerHealthCheck_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public registerHealthCheck_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public registerHealthCheck_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public registerHealthCheck_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public registerHealthCheck_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class registerHealthCheck_resultStandardSchemeFactory implements SchemeFactory {
      public registerHealthCheck_resultStandardScheme getScheme() {
        return new registerHealthCheck_resultStandardScheme();
      }
    }

    private static class registerHealthCheck_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, registerHealthCheck_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new RegisterHealthCheckResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class registerHealthCheck_resultTupleSchemeFactory implements SchemeFactory {
      public registerHealthCheck_resultTupleScheme getScheme() {
        return new registerHealthCheck_resultTupleScheme();
      }
    }

    private static class registerHealthCheck_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, registerHealthCheck_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, registerHealthCheck_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new RegisterHealthCheckResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeSavedChannel_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeSavedChannel_argsTupleSchemeFactory());
    }

    public RemoveSavedChannelRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RemoveSavedChannelRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeSavedChannel_args.class, metaDataMap);
    }

    public removeSavedChannel_args() {
    }

    public removeSavedChannel_args(
      RemoveSavedChannelRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeSavedChannel_args(removeSavedChannel_args other) {
      if (other.isSetRequest()) {
        this.request = new RemoveSavedChannelRequest(other.request);
      }
    }

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

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

    public RemoveSavedChannelRequest getRequest() {
      return this.request;
    }

    public removeSavedChannel_args setRequest(RemoveSavedChannelRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((RemoveSavedChannelRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class removeSavedChannel_argsStandardSchemeFactory implements SchemeFactory {
      public removeSavedChannel_argsStandardScheme getScheme() {
        return new removeSavedChannel_argsStandardScheme();
      }
    }

    private static class removeSavedChannel_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeSavedChannel_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new RemoveSavedChannelRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeSavedChannel_argsTupleSchemeFactory implements SchemeFactory {
      public removeSavedChannel_argsTupleScheme getScheme() {
        return new removeSavedChannel_argsTupleScheme();
      }
    }

    private static class removeSavedChannel_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeSavedChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeSavedChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new RemoveSavedChannelRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new removeSavedChannel_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new removeSavedChannel_resultTupleSchemeFactory());
    }

    public RemoveSavedChannelResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required
    public tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RemoveSavedChannelResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ChannelDoesNotExistException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeSavedChannel_result.class, metaDataMap);
    }

    public removeSavedChannel_result() {
    }

    public removeSavedChannel_result(
      RemoveSavedChannelResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4,
      tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public removeSavedChannel_result(removeSavedChannel_result other) {
      if (other.isSetSuccess()) {
        this.success = new RemoveSavedChannelResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public removeSavedChannel_result setSuccess(RemoveSavedChannelResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public removeSavedChannel_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public removeSavedChannel_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public removeSavedChannel_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public removeSavedChannel_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ChannelDoesNotExistException getEx5() {
      return this.ex5;
    }

    public removeSavedChannel_result setEx5(tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.ChannelDoesNotExistException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class removeSavedChannel_resultStandardSchemeFactory implements SchemeFactory {
      public removeSavedChannel_resultStandardScheme getScheme() {
        return new removeSavedChannel_resultStandardScheme();
      }
    }

    private static class removeSavedChannel_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, removeSavedChannel_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new RemoveSavedChannelResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.ChannelDoesNotExistException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class removeSavedChannel_resultTupleSchemeFactory implements SchemeFactory {
      public removeSavedChannel_resultTupleScheme getScheme() {
        return new removeSavedChannel_resultTupleScheme();
      }
    }

    private static class removeSavedChannel_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, removeSavedChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, removeSavedChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new RemoveSavedChannelResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.ChannelDoesNotExistException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new renewApplicationToken_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new renewApplicationToken_argsTupleSchemeFactory());
    }

    public RenewApplicationTokenRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RenewApplicationTokenRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renewApplicationToken_args.class, metaDataMap);
    }

    public renewApplicationToken_args() {
    }

    public renewApplicationToken_args(
      RenewApplicationTokenRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public renewApplicationToken_args(renewApplicationToken_args other) {
      if (other.isSetRequest()) {
        this.request = new RenewApplicationTokenRequest(other.request);
      }
    }

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

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

    public RenewApplicationTokenRequest getRequest() {
      return this.request;
    }

    public renewApplicationToken_args setRequest(RenewApplicationTokenRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((RenewApplicationTokenRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class renewApplicationToken_argsStandardSchemeFactory implements SchemeFactory {
      public renewApplicationToken_argsStandardScheme getScheme() {
        return new renewApplicationToken_argsStandardScheme();
      }
    }

    private static class renewApplicationToken_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renewApplicationToken_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new RenewApplicationTokenRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renewApplicationToken_argsTupleSchemeFactory implements SchemeFactory {
      public renewApplicationToken_argsTupleScheme getScheme() {
        return new renewApplicationToken_argsTupleScheme();
      }
    }

    private static class renewApplicationToken_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renewApplicationToken_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renewApplicationToken_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new RenewApplicationTokenRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new renewApplicationToken_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new renewApplicationToken_resultTupleSchemeFactory());
    }

    public RenewApplicationTokenResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RenewApplicationTokenResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renewApplicationToken_result.class, metaDataMap);
    }

    public renewApplicationToken_result() {
    }

    public renewApplicationToken_result(
      RenewApplicationTokenResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public renewApplicationToken_result(renewApplicationToken_result other) {
      if (other.isSetSuccess()) {
        this.success = new RenewApplicationTokenResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public renewApplicationToken_result setSuccess(RenewApplicationTokenResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public renewApplicationToken_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public renewApplicationToken_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public renewApplicationToken_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public renewApplicationToken_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public renewApplicationToken_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class renewApplicationToken_resultStandardSchemeFactory implements SchemeFactory {
      public renewApplicationToken_resultStandardScheme getScheme() {
        return new renewApplicationToken_resultStandardScheme();
      }
    }

    private static class renewApplicationToken_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renewApplicationToken_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new RenewApplicationTokenResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renewApplicationToken_resultTupleSchemeFactory implements SchemeFactory {
      public renewApplicationToken_resultTupleScheme getScheme() {
        return new renewApplicationToken_resultTupleScheme();
      }
    }

    private static class renewApplicationToken_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renewApplicationToken_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renewApplicationToken_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new RenewApplicationTokenResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new saveChannel_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new saveChannel_argsTupleSchemeFactory());
    }

    public SaveChannelRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SaveChannelRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(saveChannel_args.class, metaDataMap);
    }

    public saveChannel_args() {
    }

    public saveChannel_args(
      SaveChannelRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public saveChannel_args(saveChannel_args other) {
      if (other.isSetRequest()) {
        this.request = new SaveChannelRequest(other.request);
      }
    }

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

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

    public SaveChannelRequest getRequest() {
      return this.request;
    }

    public saveChannel_args setRequest(SaveChannelRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SaveChannelRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class saveChannel_argsStandardSchemeFactory implements SchemeFactory {
      public saveChannel_argsStandardScheme getScheme() {
        return new saveChannel_argsStandardScheme();
      }
    }

    private static class saveChannel_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, saveChannel_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SaveChannelRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class saveChannel_argsTupleSchemeFactory implements SchemeFactory {
      public saveChannel_argsTupleScheme getScheme() {
        return new saveChannel_argsTupleScheme();
      }
    }

    private static class saveChannel_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, saveChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, saveChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SaveChannelRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new saveChannel_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new saveChannel_resultTupleSchemeFactory());
    }

    public SaveChannelResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SaveChannelResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(saveChannel_result.class, metaDataMap);
    }

    public saveChannel_result() {
    }

    public saveChannel_result(
      SaveChannelResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
    }

    /**
     * Performs a deep copy on other.
     */
    public saveChannel_result(saveChannel_result other) {
      if (other.isSetSuccess()) {
        this.success = new SaveChannelResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
    }

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

    public saveChannel_result setSuccess(SaveChannelResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public saveChannel_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public saveChannel_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public saveChannel_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public saveChannel_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class saveChannel_resultStandardSchemeFactory implements SchemeFactory {
      public saveChannel_resultStandardScheme getScheme() {
        return new saveChannel_resultStandardScheme();
      }
    }

    private static class saveChannel_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, saveChannel_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SaveChannelResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class saveChannel_resultTupleSchemeFactory implements SchemeFactory {
      public saveChannel_resultTupleScheme getScheme() {
        return new saveChannel_resultTupleScheme();
      }
    }

    private static class saveChannel_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, saveChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, saveChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new SaveChannelResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new signIn_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new signIn_argsTupleSchemeFactory());
    }

    public SignInRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SignInRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(signIn_args.class, metaDataMap);
    }

    public signIn_args() {
    }

    public signIn_args(
      SignInRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public signIn_args(signIn_args other) {
      if (other.isSetRequest()) {
        this.request = new SignInRequest(other.request);
      }
    }

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

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

    public SignInRequest getRequest() {
      return this.request;
    }

    public signIn_args setRequest(SignInRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SignInRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class signIn_argsStandardSchemeFactory implements SchemeFactory {
      public signIn_argsStandardScheme getScheme() {
        return new signIn_argsStandardScheme();
      }
    }

    private static class signIn_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, signIn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SignInRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class signIn_argsTupleSchemeFactory implements SchemeFactory {
      public signIn_argsTupleScheme getScheme() {
        return new signIn_argsTupleScheme();
      }
    }

    private static class signIn_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, signIn_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, signIn_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SignInRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new signIn_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new signIn_resultTupleSchemeFactory());
    }

    public SignInResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidCredentialsException ex3; // required
    public tech.aroma.thrift.exceptions.UserDoesNotExistException ex4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SignInResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidCredentialsException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UserDoesNotExistException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(signIn_result.class, metaDataMap);
    }

    public signIn_result() {
    }

    public signIn_result(
      SignInResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidCredentialsException ex3,
      tech.aroma.thrift.exceptions.UserDoesNotExistException ex4)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
    }

    /**
     * Performs a deep copy on other.
     */
    public signIn_result(signIn_result other) {
      if (other.isSetSuccess()) {
        this.success = new SignInResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
    }

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

    public signIn_result setSuccess(SignInResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public signIn_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public signIn_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidCredentialsException getEx3() {
      return this.ex3;
    }

    public signIn_result setEx3(tech.aroma.thrift.exceptions.InvalidCredentialsException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UserDoesNotExistException getEx4() {
      return this.ex4;
    }

    public signIn_result setEx4(tech.aroma.thrift.exceptions.UserDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidCredentialsException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UserDoesNotExistException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class signIn_resultStandardSchemeFactory implements SchemeFactory {
      public signIn_resultStandardScheme getScheme() {
        return new signIn_resultStandardScheme();
      }
    }

    private static class signIn_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, signIn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SignInResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidCredentialsException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UserDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class signIn_resultTupleSchemeFactory implements SchemeFactory {
      public signIn_resultTupleScheme getScheme() {
        return new signIn_resultTupleScheme();
      }
    }

    private static class signIn_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, signIn_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, signIn_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new SignInResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidCredentialsException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UserDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new signUp_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new signUp_argsTupleSchemeFactory());
    }

    public SignUpRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SignUpRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(signUp_args.class, metaDataMap);
    }

    public signUp_args() {
    }

    public signUp_args(
      SignUpRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public signUp_args(signUp_args other) {
      if (other.isSetRequest()) {
        this.request = new SignUpRequest(other.request);
      }
    }

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

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

    public SignUpRequest getRequest() {
      return this.request;
    }

    public signUp_args setRequest(SignUpRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SignUpRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class signUp_argsStandardSchemeFactory implements SchemeFactory {
      public signUp_argsStandardScheme getScheme() {
        return new signUp_argsStandardScheme();
      }
    }

    private static class signUp_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, signUp_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SignUpRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class signUp_argsTupleSchemeFactory implements SchemeFactory {
      public signUp_argsTupleScheme getScheme() {
        return new signUp_argsTupleScheme();
      }
    }

    private static class signUp_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, signUp_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, signUp_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SignUpRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new signUp_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new signUp_resultTupleSchemeFactory());
    }

    public SignUpResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidCredentialsException ex3; // required
    public tech.aroma.thrift.exceptions.AccountAlreadyExistsException ex4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SignUpResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidCredentialsException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "AccountAlreadyExistsException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(signUp_result.class, metaDataMap);
    }

    public signUp_result() {
    }

    public signUp_result(
      SignUpResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidCredentialsException ex3,
      tech.aroma.thrift.exceptions.AccountAlreadyExistsException ex4)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
    }

    /**
     * Performs a deep copy on other.
     */
    public signUp_result(signUp_result other) {
      if (other.isSetSuccess()) {
        this.success = new SignUpResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
    }

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

    public signUp_result setSuccess(SignUpResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public signUp_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public signUp_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidCredentialsException getEx3() {
      return this.ex3;
    }

    public signUp_result setEx3(tech.aroma.thrift.exceptions.InvalidCredentialsException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.AccountAlreadyExistsException getEx4() {
      return this.ex4;
    }

    public signUp_result setEx4(tech.aroma.thrift.exceptions.AccountAlreadyExistsException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidCredentialsException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.AccountAlreadyExistsException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class signUp_resultStandardSchemeFactory implements SchemeFactory {
      public signUp_resultStandardScheme getScheme() {
        return new signUp_resultStandardScheme();
      }
    }

    private static class signUp_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, signUp_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SignUpResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidCredentialsException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.AccountAlreadyExistsException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class signUp_resultTupleSchemeFactory implements SchemeFactory {
      public signUp_resultTupleScheme getScheme() {
        return new signUp_resultTupleScheme();
      }
    }

    private static class signUp_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, signUp_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, signUp_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new SignUpResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidCredentialsException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.AccountAlreadyExistsException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new snoozeChannel_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new snoozeChannel_argsTupleSchemeFactory());
    }

    public SnoozeChannelRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SnoozeChannelRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(snoozeChannel_args.class, metaDataMap);
    }

    public snoozeChannel_args() {
    }

    public snoozeChannel_args(
      SnoozeChannelRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public snoozeChannel_args(snoozeChannel_args other) {
      if (other.isSetRequest()) {
        this.request = new SnoozeChannelRequest(other.request);
      }
    }

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

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

    public SnoozeChannelRequest getRequest() {
      return this.request;
    }

    public snoozeChannel_args setRequest(SnoozeChannelRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SnoozeChannelRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

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

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

    private static class snoozeChannel_argsStandardSchemeFactory implements SchemeFactory {
      public snoozeChannel_argsStandardScheme getScheme() {
        return new snoozeChannel_argsStandardScheme();
      }
    }

    private static class snoozeChannel_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, snoozeChannel_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SnoozeChannelRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class snoozeChannel_argsTupleSchemeFactory implements SchemeFactory {
      public snoozeChannel_argsTupleScheme getScheme() {
        return new snoozeChannel_argsTupleScheme();
      }
    }

    private static class snoozeChannel_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, snoozeChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, snoozeChannel_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SnoozeChannelRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new snoozeChannel_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new snoozeChannel_resultTupleSchemeFactory());
    }

    public SnoozeChannelResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required
    public tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SnoozeChannelResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ChannelDoesNotExistException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(snoozeChannel_result.class, metaDataMap);
    }

    public snoozeChannel_result() {
    }

    public snoozeChannel_result(
      SnoozeChannelResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4,
      tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public snoozeChannel_result(snoozeChannel_result other) {
      if (other.isSetSuccess()) {
        this.success = new SnoozeChannelResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

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

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

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

    public snoozeChannel_result setSuccess(SnoozeChannelResponse success) {
      this.success = success;
      return this;
    }

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

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

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

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public snoozeChannel_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

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

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public snoozeChannel_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

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

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public snoozeChannel_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

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

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public snoozeChannel_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

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

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ChannelDoesNotExistException getEx5() {
      return this.ex5;
    }

    public snoozeChannel_result setEx5(tech.aroma.thrift.exceptions.ChannelDoesNotExistException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

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

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

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

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.ChannelDoesNotExistException)value);
        }
        break;

      }
    }

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

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

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

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

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

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

    private static class snoozeChannel_resultStandardSchemeFactory implements SchemeFactory {
      public snoozeChannel_resultStandardScheme getScheme() {
        return new snoozeChannel_resultStandardScheme();
      }
    }

    private static class snoozeChannel_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, snoozeChannel_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SnoozeChannelResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.ChannelDoesNotExistException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

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

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

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class snoozeChannel_resultTupleSchemeFactory implements SchemeFactory {
      public snoozeChannel_resultTupleScheme getScheme() {
        return new snoozeChannel_resultTupleScheme();
      }
    }

    private static class snoozeChannel_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, snoozeChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, snoozeChannel_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new SnoozeChannelResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.ChannelDoesNotExistException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

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

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new followApplication_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new followApplication_argsTupleSchemeFactory());
    }

    public FollowApplicationRequest request; // required

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

      private static final Map byName = new HashMap();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

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

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FollowApplicationRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(followApplication_args.class, metaDataMap);
    }

    public followApplication_args() {
    }

    public followApplication_args(
      FollowApplicationRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public followApplication_args(followApplication_args other) {
      if (other.isSetRequest()) {
        this.request = new FollowApplicationRequest(other.request);
      }
    }

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

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

    public FollowApplicationRequest getRequest() {
      return this.request;
    }

    public followApplication_args setRequest(FollowApplicationRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

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

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((FollowApplicationRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

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

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

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

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

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

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

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class followApplication_argsStandardSchemeFactory implements SchemeFactory {
      public followApplication_argsStandardScheme getScheme() {
        return new followApplication_argsStandardScheme();
      }
    }

    private static class followApplication_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, followApplication_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new FollowApplicationRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, followApplication_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class followApplication_argsTupleSchemeFactory implements SchemeFactory {
      public followApplication_argsTupleScheme getScheme() {
        return new followApplication_argsTupleScheme();
      }
    }

    private static class followApplication_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, followApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, followApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new FollowApplicationRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class followApplication_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("followApplication_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new followApplication_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new followApplication_resultTupleSchemeFactory());
    }

    public FollowApplicationResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FollowApplicationResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(followApplication_result.class, metaDataMap);
    }

    public followApplication_result() {
    }

    public followApplication_result(
      FollowApplicationResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public followApplication_result(followApplication_result other) {
      if (other.isSetSuccess()) {
        this.success = new FollowApplicationResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public followApplication_result deepCopy() {
      return new followApplication_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public FollowApplicationResponse getSuccess() {
      return this.success;
    }

    public followApplication_result setSuccess(FollowApplicationResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public followApplication_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public followApplication_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public followApplication_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public followApplication_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public followApplication_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((FollowApplicationResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof followApplication_result)
        return this.equals((followApplication_result)that);
      return false;
    }

    public boolean equals(followApplication_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(followApplication_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("followApplication_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class followApplication_resultStandardSchemeFactory implements SchemeFactory {
      public followApplication_resultStandardScheme getScheme() {
        return new followApplication_resultStandardScheme();
      }
    }

    private static class followApplication_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, followApplication_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new FollowApplicationResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, followApplication_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class followApplication_resultTupleSchemeFactory implements SchemeFactory {
      public followApplication_resultTupleScheme getScheme() {
        return new followApplication_resultTupleScheme();
      }
    }

    private static class followApplication_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, followApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, followApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new FollowApplicationResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class unfollowApplication_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("unfollowApplication_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new unfollowApplication_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new unfollowApplication_argsTupleSchemeFactory());
    }

    public UnfollowApplicationRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnfollowApplicationRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(unfollowApplication_args.class, metaDataMap);
    }

    public unfollowApplication_args() {
    }

    public unfollowApplication_args(
      UnfollowApplicationRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public unfollowApplication_args(unfollowApplication_args other) {
      if (other.isSetRequest()) {
        this.request = new UnfollowApplicationRequest(other.request);
      }
    }

    public unfollowApplication_args deepCopy() {
      return new unfollowApplication_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public UnfollowApplicationRequest getRequest() {
      return this.request;
    }

    public unfollowApplication_args setRequest(UnfollowApplicationRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((UnfollowApplicationRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof unfollowApplication_args)
        return this.equals((unfollowApplication_args)that);
      return false;
    }

    public boolean equals(unfollowApplication_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(unfollowApplication_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("unfollowApplication_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class unfollowApplication_argsStandardSchemeFactory implements SchemeFactory {
      public unfollowApplication_argsStandardScheme getScheme() {
        return new unfollowApplication_argsStandardScheme();
      }
    }

    private static class unfollowApplication_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, unfollowApplication_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new UnfollowApplicationRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, unfollowApplication_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class unfollowApplication_argsTupleSchemeFactory implements SchemeFactory {
      public unfollowApplication_argsTupleScheme getScheme() {
        return new unfollowApplication_argsTupleScheme();
      }
    }

    private static class unfollowApplication_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, unfollowApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, unfollowApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new UnfollowApplicationRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class unfollowApplication_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("unfollowApplication_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new unfollowApplication_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new unfollowApplication_resultTupleSchemeFactory());
    }

    public UnfollowApplicationResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnfollowApplicationResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(unfollowApplication_result.class, metaDataMap);
    }

    public unfollowApplication_result() {
    }

    public unfollowApplication_result(
      UnfollowApplicationResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public unfollowApplication_result(unfollowApplication_result other) {
      if (other.isSetSuccess()) {
        this.success = new UnfollowApplicationResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public unfollowApplication_result deepCopy() {
      return new unfollowApplication_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public UnfollowApplicationResponse getSuccess() {
      return this.success;
    }

    public unfollowApplication_result setSuccess(UnfollowApplicationResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public unfollowApplication_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public unfollowApplication_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public unfollowApplication_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public unfollowApplication_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public unfollowApplication_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((UnfollowApplicationResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof unfollowApplication_result)
        return this.equals((unfollowApplication_result)that);
      return false;
    }

    public boolean equals(unfollowApplication_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(unfollowApplication_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("unfollowApplication_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class unfollowApplication_resultStandardSchemeFactory implements SchemeFactory {
      public unfollowApplication_resultStandardScheme getScheme() {
        return new unfollowApplication_resultStandardScheme();
      }
    }

    private static class unfollowApplication_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, unfollowApplication_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new UnfollowApplicationResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, unfollowApplication_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class unfollowApplication_resultTupleSchemeFactory implements SchemeFactory {
      public unfollowApplication_resultTupleScheme getScheme() {
        return new unfollowApplication_resultTupleScheme();
      }
    }

    private static class unfollowApplication_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, unfollowApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, unfollowApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new UnfollowApplicationResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class updateApplication_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplication_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateApplication_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateApplication_argsTupleSchemeFactory());
    }

    public UpdateApplicationRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UpdateApplicationRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplication_args.class, metaDataMap);
    }

    public updateApplication_args() {
    }

    public updateApplication_args(
      UpdateApplicationRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateApplication_args(updateApplication_args other) {
      if (other.isSetRequest()) {
        this.request = new UpdateApplicationRequest(other.request);
      }
    }

    public updateApplication_args deepCopy() {
      return new updateApplication_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public UpdateApplicationRequest getRequest() {
      return this.request;
    }

    public updateApplication_args setRequest(UpdateApplicationRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((UpdateApplicationRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateApplication_args)
        return this.equals((updateApplication_args)that);
      return false;
    }

    public boolean equals(updateApplication_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(updateApplication_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateApplication_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class updateApplication_argsStandardSchemeFactory implements SchemeFactory {
      public updateApplication_argsStandardScheme getScheme() {
        return new updateApplication_argsStandardScheme();
      }
    }

    private static class updateApplication_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplication_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new UpdateApplicationRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplication_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateApplication_argsTupleSchemeFactory implements SchemeFactory {
      public updateApplication_argsTupleScheme getScheme() {
        return new updateApplication_argsTupleScheme();
      }
    }

    private static class updateApplication_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplication_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new UpdateApplicationRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class updateApplication_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplication_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateApplication_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateApplication_resultTupleSchemeFactory());
    }

    public UpdateApplicationResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UpdateApplicationResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplication_result.class, metaDataMap);
    }

    public updateApplication_result() {
    }

    public updateApplication_result(
      UpdateApplicationResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateApplication_result(updateApplication_result other) {
      if (other.isSetSuccess()) {
        this.success = new UpdateApplicationResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public updateApplication_result deepCopy() {
      return new updateApplication_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public UpdateApplicationResponse getSuccess() {
      return this.success;
    }

    public updateApplication_result setSuccess(UpdateApplicationResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public updateApplication_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public updateApplication_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public updateApplication_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public updateApplication_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public updateApplication_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((UpdateApplicationResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateApplication_result)
        return this.equals((updateApplication_result)that);
      return false;
    }

    public boolean equals(updateApplication_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(updateApplication_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateApplication_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class updateApplication_resultStandardSchemeFactory implements SchemeFactory {
      public updateApplication_resultStandardScheme getScheme() {
        return new updateApplication_resultStandardScheme();
      }
    }

    private static class updateApplication_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplication_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new UpdateApplicationResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplication_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateApplication_resultTupleSchemeFactory implements SchemeFactory {
      public updateApplication_resultTupleScheme getScheme() {
        return new updateApplication_resultTupleScheme();
      }
    }

    private static class updateApplication_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplication_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new UpdateApplicationResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class updateReactions_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateReactions_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateReactions_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateReactions_argsTupleSchemeFactory());
    }

    public UpdateReactionsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UpdateReactionsRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateReactions_args.class, metaDataMap);
    }

    public updateReactions_args() {
    }

    public updateReactions_args(
      UpdateReactionsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateReactions_args(updateReactions_args other) {
      if (other.isSetRequest()) {
        this.request = new UpdateReactionsRequest(other.request);
      }
    }

    public updateReactions_args deepCopy() {
      return new updateReactions_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public UpdateReactionsRequest getRequest() {
      return this.request;
    }

    public updateReactions_args setRequest(UpdateReactionsRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((UpdateReactionsRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateReactions_args)
        return this.equals((updateReactions_args)that);
      return false;
    }

    public boolean equals(updateReactions_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(updateReactions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateReactions_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class updateReactions_argsStandardSchemeFactory implements SchemeFactory {
      public updateReactions_argsStandardScheme getScheme() {
        return new updateReactions_argsStandardScheme();
      }
    }

    private static class updateReactions_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateReactions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new UpdateReactionsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateReactions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateReactions_argsTupleSchemeFactory implements SchemeFactory {
      public updateReactions_argsTupleScheme getScheme() {
        return new updateReactions_argsTupleScheme();
      }
    }

    private static class updateReactions_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateReactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateReactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new UpdateReactionsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class updateReactions_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateReactions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new updateReactions_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new updateReactions_resultTupleSchemeFactory());
    }

    public UpdateReactionsResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UpdateReactionsResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateReactions_result.class, metaDataMap);
    }

    public updateReactions_result() {
    }

    public updateReactions_result(
      UpdateReactionsResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public updateReactions_result(updateReactions_result other) {
      if (other.isSetSuccess()) {
        this.success = new UpdateReactionsResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public updateReactions_result deepCopy() {
      return new updateReactions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public UpdateReactionsResponse getSuccess() {
      return this.success;
    }

    public updateReactions_result setSuccess(UpdateReactionsResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public updateReactions_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public updateReactions_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public updateReactions_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public updateReactions_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public updateReactions_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((UpdateReactionsResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateReactions_result)
        return this.equals((updateReactions_result)that);
      return false;
    }

    public boolean equals(updateReactions_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(updateReactions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateReactions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class updateReactions_resultStandardSchemeFactory implements SchemeFactory {
      public updateReactions_resultStandardScheme getScheme() {
        return new updateReactions_resultStandardScheme();
      }
    }

    private static class updateReactions_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, updateReactions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new UpdateReactionsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, updateReactions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class updateReactions_resultTupleSchemeFactory implements SchemeFactory {
      public updateReactions_resultTupleScheme getScheme() {
        return new updateReactions_resultTupleScheme();
      }
    }

    private static class updateReactions_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, updateReactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, updateReactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new UpdateReactionsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getActivity_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActivity_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActivity_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActivity_argsTupleSchemeFactory());
    }

    public GetActivityRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetActivityRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActivity_args.class, metaDataMap);
    }

    public getActivity_args() {
    }

    public getActivity_args(
      GetActivityRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActivity_args(getActivity_args other) {
      if (other.isSetRequest()) {
        this.request = new GetActivityRequest(other.request);
      }
    }

    public getActivity_args deepCopy() {
      return new getActivity_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetActivityRequest getRequest() {
      return this.request;
    }

    public getActivity_args setRequest(GetActivityRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetActivityRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActivity_args)
        return this.equals((getActivity_args)that);
      return false;
    }

    public boolean equals(getActivity_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getActivity_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getActivity_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getActivity_argsStandardSchemeFactory implements SchemeFactory {
      public getActivity_argsStandardScheme getScheme() {
        return new getActivity_argsStandardScheme();
      }
    }

    private static class getActivity_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getActivity_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetActivityRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getActivity_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActivity_argsTupleSchemeFactory implements SchemeFactory {
      public getActivity_argsTupleScheme getScheme() {
        return new getActivity_argsTupleScheme();
      }
    }

    private static class getActivity_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActivity_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActivity_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetActivityRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getActivity_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getActivity_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getActivity_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getActivity_resultTupleSchemeFactory());
    }

    public GetActivityResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetActivityResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getActivity_result.class, metaDataMap);
    }

    public getActivity_result() {
    }

    public getActivity_result(
      GetActivityResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getActivity_result(getActivity_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetActivityResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getActivity_result deepCopy() {
      return new getActivity_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetActivityResponse getSuccess() {
      return this.success;
    }

    public getActivity_result setSuccess(GetActivityResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getActivity_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getActivity_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getActivity_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetActivityResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getActivity_result)
        return this.equals((getActivity_result)that);
      return false;
    }

    public boolean equals(getActivity_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getActivity_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getActivity_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getActivity_resultStandardSchemeFactory implements SchemeFactory {
      public getActivity_resultStandardScheme getScheme() {
        return new getActivity_resultStandardScheme();
      }
    }

    private static class getActivity_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getActivity_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetActivityResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getActivity_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getActivity_resultTupleSchemeFactory implements SchemeFactory {
      public getActivity_resultTupleScheme getScheme() {
        return new getActivity_resultTupleScheme();
      }
    }

    private static class getActivity_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getActivity_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getActivity_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetActivityResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getApplicationInfo_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationInfo_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationInfo_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationInfo_argsTupleSchemeFactory());
    }

    public GetApplicationInfoRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationInfoRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationInfo_args.class, metaDataMap);
    }

    public getApplicationInfo_args() {
    }

    public getApplicationInfo_args(
      GetApplicationInfoRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationInfo_args(getApplicationInfo_args other) {
      if (other.isSetRequest()) {
        this.request = new GetApplicationInfoRequest(other.request);
      }
    }

    public getApplicationInfo_args deepCopy() {
      return new getApplicationInfo_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetApplicationInfoRequest getRequest() {
      return this.request;
    }

    public getApplicationInfo_args setRequest(GetApplicationInfoRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetApplicationInfoRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationInfo_args)
        return this.equals((getApplicationInfo_args)that);
      return false;
    }

    public boolean equals(getApplicationInfo_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationInfo_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationInfo_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationInfo_argsStandardSchemeFactory implements SchemeFactory {
      public getApplicationInfo_argsStandardScheme getScheme() {
        return new getApplicationInfo_argsStandardScheme();
      }
    }

    private static class getApplicationInfo_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationInfo_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetApplicationInfoRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationInfo_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationInfo_argsTupleSchemeFactory implements SchemeFactory {
      public getApplicationInfo_argsTupleScheme getScheme() {
        return new getApplicationInfo_argsTupleScheme();
      }
    }

    private static class getApplicationInfo_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationInfo_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationInfo_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetApplicationInfoRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getApplicationInfo_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationInfo_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationInfo_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationInfo_resultTupleSchemeFactory());
    }

    public GetApplicationInfoResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationInfoResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationInfo_result.class, metaDataMap);
    }

    public getApplicationInfo_result() {
    }

    public getApplicationInfo_result(
      GetApplicationInfoResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationInfo_result(getApplicationInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetApplicationInfoResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getApplicationInfo_result deepCopy() {
      return new getApplicationInfo_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetApplicationInfoResponse getSuccess() {
      return this.success;
    }

    public getApplicationInfo_result setSuccess(GetApplicationInfoResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getApplicationInfo_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getApplicationInfo_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getApplicationInfo_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public getApplicationInfo_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public getApplicationInfo_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetApplicationInfoResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationInfo_result)
        return this.equals((getApplicationInfo_result)that);
      return false;
    }

    public boolean equals(getApplicationInfo_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationInfo_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationInfo_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationInfo_resultStandardSchemeFactory implements SchemeFactory {
      public getApplicationInfo_resultStandardScheme getScheme() {
        return new getApplicationInfo_resultStandardScheme();
      }
    }

    private static class getApplicationInfo_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationInfo_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetApplicationInfoResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationInfo_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationInfo_resultTupleSchemeFactory implements SchemeFactory {
      public getApplicationInfo_resultTupleScheme getScheme() {
        return new getApplicationInfo_resultTupleScheme();
      }
    }

    private static class getApplicationInfo_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationInfo_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationInfo_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetApplicationInfoResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getBuzz_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getBuzz_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getBuzz_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getBuzz_argsTupleSchemeFactory());
    }

    public GetBuzzRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetBuzzRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getBuzz_args.class, metaDataMap);
    }

    public getBuzz_args() {
    }

    public getBuzz_args(
      GetBuzzRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getBuzz_args(getBuzz_args other) {
      if (other.isSetRequest()) {
        this.request = new GetBuzzRequest(other.request);
      }
    }

    public getBuzz_args deepCopy() {
      return new getBuzz_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetBuzzRequest getRequest() {
      return this.request;
    }

    public getBuzz_args setRequest(GetBuzzRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetBuzzRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getBuzz_args)
        return this.equals((getBuzz_args)that);
      return false;
    }

    public boolean equals(getBuzz_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getBuzz_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getBuzz_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getBuzz_argsStandardSchemeFactory implements SchemeFactory {
      public getBuzz_argsStandardScheme getScheme() {
        return new getBuzz_argsStandardScheme();
      }
    }

    private static class getBuzz_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getBuzz_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetBuzzRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getBuzz_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getBuzz_argsTupleSchemeFactory implements SchemeFactory {
      public getBuzz_argsTupleScheme getScheme() {
        return new getBuzz_argsTupleScheme();
      }
    }

    private static class getBuzz_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getBuzz_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getBuzz_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetBuzzRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getBuzz_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getBuzz_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getBuzz_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getBuzz_resultTupleSchemeFactory());
    }

    public GetBuzzResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetBuzzResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getBuzz_result.class, metaDataMap);
    }

    public getBuzz_result() {
    }

    public getBuzz_result(
      GetBuzzResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getBuzz_result(getBuzz_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetBuzzResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getBuzz_result deepCopy() {
      return new getBuzz_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetBuzzResponse getSuccess() {
      return this.success;
    }

    public getBuzz_result setSuccess(GetBuzzResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getBuzz_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getBuzz_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getBuzz_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public getBuzz_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public getBuzz_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetBuzzResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getBuzz_result)
        return this.equals((getBuzz_result)that);
      return false;
    }

    public boolean equals(getBuzz_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getBuzz_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getBuzz_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getBuzz_resultStandardSchemeFactory implements SchemeFactory {
      public getBuzz_resultStandardScheme getScheme() {
        return new getBuzz_resultStandardScheme();
      }
    }

    private static class getBuzz_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getBuzz_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetBuzzResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getBuzz_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getBuzz_resultTupleSchemeFactory implements SchemeFactory {
      public getBuzz_resultTupleScheme getScheme() {
        return new getBuzz_resultTupleScheme();
      }
    }

    private static class getBuzz_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getBuzz_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getBuzz_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetBuzzResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getDashboard_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getDashboard_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getDashboard_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getDashboard_argsTupleSchemeFactory());
    }

    public GetDashboardRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetDashboardRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDashboard_args.class, metaDataMap);
    }

    public getDashboard_args() {
    }

    public getDashboard_args(
      GetDashboardRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getDashboard_args(getDashboard_args other) {
      if (other.isSetRequest()) {
        this.request = new GetDashboardRequest(other.request);
      }
    }

    public getDashboard_args deepCopy() {
      return new getDashboard_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetDashboardRequest getRequest() {
      return this.request;
    }

    public getDashboard_args setRequest(GetDashboardRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetDashboardRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getDashboard_args)
        return this.equals((getDashboard_args)that);
      return false;
    }

    public boolean equals(getDashboard_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getDashboard_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getDashboard_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getDashboard_argsStandardSchemeFactory implements SchemeFactory {
      public getDashboard_argsStandardScheme getScheme() {
        return new getDashboard_argsStandardScheme();
      }
    }

    private static class getDashboard_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getDashboard_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetDashboardRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getDashboard_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getDashboard_argsTupleSchemeFactory implements SchemeFactory {
      public getDashboard_argsTupleScheme getScheme() {
        return new getDashboard_argsTupleScheme();
      }
    }

    private static class getDashboard_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getDashboard_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getDashboard_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetDashboardRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getDashboard_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getDashboard_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getDashboard_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getDashboard_resultTupleSchemeFactory());
    }

    public GetDashboardResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetDashboardResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDashboard_result.class, metaDataMap);
    }

    public getDashboard_result() {
    }

    public getDashboard_result(
      GetDashboardResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getDashboard_result(getDashboard_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetDashboardResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getDashboard_result deepCopy() {
      return new getDashboard_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetDashboardResponse getSuccess() {
      return this.success;
    }

    public getDashboard_result setSuccess(GetDashboardResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getDashboard_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getDashboard_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getDashboard_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetDashboardResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getDashboard_result)
        return this.equals((getDashboard_result)that);
      return false;
    }

    public boolean equals(getDashboard_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getDashboard_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getDashboard_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getDashboard_resultStandardSchemeFactory implements SchemeFactory {
      public getDashboard_resultStandardScheme getScheme() {
        return new getDashboard_resultStandardScheme();
      }
    }

    private static class getDashboard_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getDashboard_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetDashboardResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getDashboard_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getDashboard_resultTupleSchemeFactory implements SchemeFactory {
      public getDashboard_resultTupleScheme getScheme() {
        return new getDashboard_resultTupleScheme();
      }
    }

    private static class getDashboard_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getDashboard_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getDashboard_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetDashboardResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getApplicationMessages_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationMessages_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationMessages_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationMessages_argsTupleSchemeFactory());
    }

    public GetApplicationMessagesRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationMessagesRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationMessages_args.class, metaDataMap);
    }

    public getApplicationMessages_args() {
    }

    public getApplicationMessages_args(
      GetApplicationMessagesRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationMessages_args(getApplicationMessages_args other) {
      if (other.isSetRequest()) {
        this.request = new GetApplicationMessagesRequest(other.request);
      }
    }

    public getApplicationMessages_args deepCopy() {
      return new getApplicationMessages_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetApplicationMessagesRequest getRequest() {
      return this.request;
    }

    public getApplicationMessages_args setRequest(GetApplicationMessagesRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetApplicationMessagesRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationMessages_args)
        return this.equals((getApplicationMessages_args)that);
      return false;
    }

    public boolean equals(getApplicationMessages_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationMessages_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationMessages_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationMessages_argsStandardSchemeFactory implements SchemeFactory {
      public getApplicationMessages_argsStandardScheme getScheme() {
        return new getApplicationMessages_argsStandardScheme();
      }
    }

    private static class getApplicationMessages_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationMessages_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetApplicationMessagesRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationMessages_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationMessages_argsTupleSchemeFactory implements SchemeFactory {
      public getApplicationMessages_argsTupleScheme getScheme() {
        return new getApplicationMessages_argsTupleScheme();
      }
    }

    private static class getApplicationMessages_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationMessages_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationMessages_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetApplicationMessagesRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getApplicationMessages_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationMessages_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationMessages_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationMessages_resultTupleSchemeFactory());
    }

    public GetApplicationMessagesResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationMessagesResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationMessages_result.class, metaDataMap);
    }

    public getApplicationMessages_result() {
    }

    public getApplicationMessages_result(
      GetApplicationMessagesResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationMessages_result(getApplicationMessages_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetApplicationMessagesResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getApplicationMessages_result deepCopy() {
      return new getApplicationMessages_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetApplicationMessagesResponse getSuccess() {
      return this.success;
    }

    public getApplicationMessages_result setSuccess(GetApplicationMessagesResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getApplicationMessages_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getApplicationMessages_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getApplicationMessages_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public getApplicationMessages_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx5() {
      return this.ex5;
    }

    public getApplicationMessages_result setEx5(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetApplicationMessagesResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationMessages_result)
        return this.equals((getApplicationMessages_result)that);
      return false;
    }

    public boolean equals(getApplicationMessages_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationMessages_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationMessages_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationMessages_resultStandardSchemeFactory implements SchemeFactory {
      public getApplicationMessages_resultStandardScheme getScheme() {
        return new getApplicationMessages_resultStandardScheme();
      }
    }

    private static class getApplicationMessages_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationMessages_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetApplicationMessagesResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationMessages_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationMessages_resultTupleSchemeFactory implements SchemeFactory {
      public getApplicationMessages_resultTupleScheme getScheme() {
        return new getApplicationMessages_resultTupleScheme();
      }
    }

    private static class getApplicationMessages_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationMessages_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationMessages_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetApplicationMessagesResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getInbox_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getInbox_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getInbox_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getInbox_argsTupleSchemeFactory());
    }

    public GetInboxRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetInboxRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getInbox_args.class, metaDataMap);
    }

    public getInbox_args() {
    }

    public getInbox_args(
      GetInboxRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getInbox_args(getInbox_args other) {
      if (other.isSetRequest()) {
        this.request = new GetInboxRequest(other.request);
      }
    }

    public getInbox_args deepCopy() {
      return new getInbox_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetInboxRequest getRequest() {
      return this.request;
    }

    public getInbox_args setRequest(GetInboxRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetInboxRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getInbox_args)
        return this.equals((getInbox_args)that);
      return false;
    }

    public boolean equals(getInbox_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getInbox_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getInbox_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getInbox_argsStandardSchemeFactory implements SchemeFactory {
      public getInbox_argsStandardScheme getScheme() {
        return new getInbox_argsStandardScheme();
      }
    }

    private static class getInbox_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getInbox_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetInboxRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getInbox_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getInbox_argsTupleSchemeFactory implements SchemeFactory {
      public getInbox_argsTupleScheme getScheme() {
        return new getInbox_argsTupleScheme();
      }
    }

    private static class getInbox_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getInbox_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getInbox_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetInboxRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getInbox_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getInbox_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getInbox_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getInbox_resultTupleSchemeFactory());
    }

    public GetInboxResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetInboxResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getInbox_result.class, metaDataMap);
    }

    public getInbox_result() {
    }

    public getInbox_result(
      GetInboxResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getInbox_result(getInbox_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetInboxResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getInbox_result deepCopy() {
      return new getInbox_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetInboxResponse getSuccess() {
      return this.success;
    }

    public getInbox_result setSuccess(GetInboxResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getInbox_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getInbox_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getInbox_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetInboxResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getInbox_result)
        return this.equals((getInbox_result)that);
      return false;
    }

    public boolean equals(getInbox_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getInbox_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getInbox_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getInbox_resultStandardSchemeFactory implements SchemeFactory {
      public getInbox_resultStandardScheme getScheme() {
        return new getInbox_resultStandardScheme();
      }
    }

    private static class getInbox_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getInbox_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetInboxResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getInbox_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getInbox_resultTupleSchemeFactory implements SchemeFactory {
      public getInbox_resultTupleScheme getScheme() {
        return new getInbox_resultTupleScheme();
      }
    }

    private static class getInbox_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getInbox_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getInbox_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetInboxResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getFullMessage_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFullMessage_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getFullMessage_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getFullMessage_argsTupleSchemeFactory());
    }

    public GetFullMessageRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFullMessageRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFullMessage_args.class, metaDataMap);
    }

    public getFullMessage_args() {
    }

    public getFullMessage_args(
      GetFullMessageRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getFullMessage_args(getFullMessage_args other) {
      if (other.isSetRequest()) {
        this.request = new GetFullMessageRequest(other.request);
      }
    }

    public getFullMessage_args deepCopy() {
      return new getFullMessage_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetFullMessageRequest getRequest() {
      return this.request;
    }

    public getFullMessage_args setRequest(GetFullMessageRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetFullMessageRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getFullMessage_args)
        return this.equals((getFullMessage_args)that);
      return false;
    }

    public boolean equals(getFullMessage_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getFullMessage_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFullMessage_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getFullMessage_argsStandardSchemeFactory implements SchemeFactory {
      public getFullMessage_argsStandardScheme getScheme() {
        return new getFullMessage_argsStandardScheme();
      }
    }

    private static class getFullMessage_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getFullMessage_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetFullMessageRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getFullMessage_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getFullMessage_argsTupleSchemeFactory implements SchemeFactory {
      public getFullMessage_argsTupleScheme getScheme() {
        return new getFullMessage_argsTupleScheme();
      }
    }

    private static class getFullMessage_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getFullMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getFullMessage_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetFullMessageRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getFullMessage_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFullMessage_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getFullMessage_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getFullMessage_resultTupleSchemeFactory());
    }

    public GetFullMessageResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFullMessageResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFullMessage_result.class, metaDataMap);
    }

    public getFullMessage_result() {
    }

    public getFullMessage_result(
      GetFullMessageResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getFullMessage_result(getFullMessage_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetFullMessageResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getFullMessage_result deepCopy() {
      return new getFullMessage_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetFullMessageResponse getSuccess() {
      return this.success;
    }

    public getFullMessage_result setSuccess(GetFullMessageResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getFullMessage_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getFullMessage_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getFullMessage_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetFullMessageResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getFullMessage_result)
        return this.equals((getFullMessage_result)that);
      return false;
    }

    public boolean equals(getFullMessage_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getFullMessage_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFullMessage_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getFullMessage_resultStandardSchemeFactory implements SchemeFactory {
      public getFullMessage_resultStandardScheme getScheme() {
        return new getFullMessage_resultStandardScheme();
      }
    }

    private static class getFullMessage_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getFullMessage_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetFullMessageResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getFullMessage_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getFullMessage_resultTupleSchemeFactory implements SchemeFactory {
      public getFullMessage_resultTupleScheme getScheme() {
        return new getFullMessage_resultTupleScheme();
      }
    }

    private static class getFullMessage_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getFullMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getFullMessage_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetFullMessageResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getMedia_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMedia_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMedia_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMedia_argsTupleSchemeFactory());
    }

    public GetMediaRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetMediaRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMedia_args.class, metaDataMap);
    }

    public getMedia_args() {
    }

    public getMedia_args(
      GetMediaRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getMedia_args(getMedia_args other) {
      if (other.isSetRequest()) {
        this.request = new GetMediaRequest(other.request);
      }
    }

    public getMedia_args deepCopy() {
      return new getMedia_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetMediaRequest getRequest() {
      return this.request;
    }

    public getMedia_args setRequest(GetMediaRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetMediaRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMedia_args)
        return this.equals((getMedia_args)that);
      return false;
    }

    public boolean equals(getMedia_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getMedia_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMedia_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMedia_argsStandardSchemeFactory implements SchemeFactory {
      public getMedia_argsStandardScheme getScheme() {
        return new getMedia_argsStandardScheme();
      }
    }

    private static class getMedia_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMedia_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetMediaRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMedia_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMedia_argsTupleSchemeFactory implements SchemeFactory {
      public getMedia_argsTupleScheme getScheme() {
        return new getMedia_argsTupleScheme();
      }
    }

    private static class getMedia_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMedia_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMedia_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetMediaRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getMedia_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMedia_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMedia_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMedia_resultTupleSchemeFactory());
    }

    public GetMediaResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.DoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetMediaResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "DoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMedia_result.class, metaDataMap);
    }

    public getMedia_result() {
    }

    public getMedia_result(
      GetMediaResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.DoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getMedia_result(getMedia_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetMediaResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getMedia_result deepCopy() {
      return new getMedia_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetMediaResponse getSuccess() {
      return this.success;
    }

    public getMedia_result setSuccess(GetMediaResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getMedia_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getMedia_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getMedia_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.DoesNotExistException getEx4() {
      return this.ex4;
    }

    public getMedia_result setEx4(tech.aroma.thrift.exceptions.DoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public getMedia_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetMediaResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.DoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMedia_result)
        return this.equals((getMedia_result)that);
      return false;
    }

    public boolean equals(getMedia_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getMedia_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMedia_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMedia_resultStandardSchemeFactory implements SchemeFactory {
      public getMedia_resultStandardScheme getScheme() {
        return new getMedia_resultStandardScheme();
      }
    }

    private static class getMedia_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMedia_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetMediaResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.DoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMedia_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMedia_resultTupleSchemeFactory implements SchemeFactory {
      public getMedia_resultTupleScheme getScheme() {
        return new getMedia_resultTupleScheme();
      }
    }

    private static class getMedia_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMedia_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMedia_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetMediaResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.DoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getApplicationsOwnedBy_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationsOwnedBy_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationsOwnedBy_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationsOwnedBy_argsTupleSchemeFactory());
    }

    public GetApplicationsOwnedByRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationsOwnedByRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationsOwnedBy_args.class, metaDataMap);
    }

    public getApplicationsOwnedBy_args() {
    }

    public getApplicationsOwnedBy_args(
      GetApplicationsOwnedByRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationsOwnedBy_args(getApplicationsOwnedBy_args other) {
      if (other.isSetRequest()) {
        this.request = new GetApplicationsOwnedByRequest(other.request);
      }
    }

    public getApplicationsOwnedBy_args deepCopy() {
      return new getApplicationsOwnedBy_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetApplicationsOwnedByRequest getRequest() {
      return this.request;
    }

    public getApplicationsOwnedBy_args setRequest(GetApplicationsOwnedByRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetApplicationsOwnedByRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationsOwnedBy_args)
        return this.equals((getApplicationsOwnedBy_args)that);
      return false;
    }

    public boolean equals(getApplicationsOwnedBy_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationsOwnedBy_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationsOwnedBy_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationsOwnedBy_argsStandardSchemeFactory implements SchemeFactory {
      public getApplicationsOwnedBy_argsStandardScheme getScheme() {
        return new getApplicationsOwnedBy_argsStandardScheme();
      }
    }

    private static class getApplicationsOwnedBy_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationsOwnedBy_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetApplicationsOwnedByRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationsOwnedBy_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationsOwnedBy_argsTupleSchemeFactory implements SchemeFactory {
      public getApplicationsOwnedBy_argsTupleScheme getScheme() {
        return new getApplicationsOwnedBy_argsTupleScheme();
      }
    }

    private static class getApplicationsOwnedBy_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationsOwnedBy_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationsOwnedBy_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetApplicationsOwnedByRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getApplicationsOwnedBy_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationsOwnedBy_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationsOwnedBy_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationsOwnedBy_resultTupleSchemeFactory());
    }

    public GetApplicationsOwnedByResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationsOwnedByResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationsOwnedBy_result.class, metaDataMap);
    }

    public getApplicationsOwnedBy_result() {
    }

    public getApplicationsOwnedBy_result(
      GetApplicationsOwnedByResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationsOwnedBy_result(getApplicationsOwnedBy_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetApplicationsOwnedByResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getApplicationsOwnedBy_result deepCopy() {
      return new getApplicationsOwnedBy_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetApplicationsOwnedByResponse getSuccess() {
      return this.success;
    }

    public getApplicationsOwnedBy_result setSuccess(GetApplicationsOwnedByResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getApplicationsOwnedBy_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getApplicationsOwnedBy_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getApplicationsOwnedBy_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetApplicationsOwnedByResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationsOwnedBy_result)
        return this.equals((getApplicationsOwnedBy_result)that);
      return false;
    }

    public boolean equals(getApplicationsOwnedBy_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationsOwnedBy_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationsOwnedBy_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationsOwnedBy_resultStandardSchemeFactory implements SchemeFactory {
      public getApplicationsOwnedBy_resultStandardScheme getScheme() {
        return new getApplicationsOwnedBy_resultStandardScheme();
      }
    }

    private static class getApplicationsOwnedBy_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationsOwnedBy_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetApplicationsOwnedByResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationsOwnedBy_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationsOwnedBy_resultTupleSchemeFactory implements SchemeFactory {
      public getApplicationsOwnedBy_resultTupleScheme getScheme() {
        return new getApplicationsOwnedBy_resultTupleScheme();
      }
    }

    private static class getApplicationsOwnedBy_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationsOwnedBy_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationsOwnedBy_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetApplicationsOwnedByResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getApplicationsFollowedBy_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationsFollowedBy_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationsFollowedBy_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationsFollowedBy_argsTupleSchemeFactory());
    }

    public GetApplicationsFollowedByRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationsFollowedByRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationsFollowedBy_args.class, metaDataMap);
    }

    public getApplicationsFollowedBy_args() {
    }

    public getApplicationsFollowedBy_args(
      GetApplicationsFollowedByRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationsFollowedBy_args(getApplicationsFollowedBy_args other) {
      if (other.isSetRequest()) {
        this.request = new GetApplicationsFollowedByRequest(other.request);
      }
    }

    public getApplicationsFollowedBy_args deepCopy() {
      return new getApplicationsFollowedBy_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetApplicationsFollowedByRequest getRequest() {
      return this.request;
    }

    public getApplicationsFollowedBy_args setRequest(GetApplicationsFollowedByRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetApplicationsFollowedByRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationsFollowedBy_args)
        return this.equals((getApplicationsFollowedBy_args)that);
      return false;
    }

    public boolean equals(getApplicationsFollowedBy_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationsFollowedBy_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationsFollowedBy_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationsFollowedBy_argsStandardSchemeFactory implements SchemeFactory {
      public getApplicationsFollowedBy_argsStandardScheme getScheme() {
        return new getApplicationsFollowedBy_argsStandardScheme();
      }
    }

    private static class getApplicationsFollowedBy_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationsFollowedBy_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetApplicationsFollowedByRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationsFollowedBy_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationsFollowedBy_argsTupleSchemeFactory implements SchemeFactory {
      public getApplicationsFollowedBy_argsTupleScheme getScheme() {
        return new getApplicationsFollowedBy_argsTupleScheme();
      }
    }

    private static class getApplicationsFollowedBy_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationsFollowedBy_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationsFollowedBy_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetApplicationsFollowedByRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getApplicationsFollowedBy_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationsFollowedBy_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getApplicationsFollowedBy_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getApplicationsFollowedBy_resultTupleSchemeFactory());
    }

    public GetApplicationsFollowedByResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetApplicationsFollowedByResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationsFollowedBy_result.class, metaDataMap);
    }

    public getApplicationsFollowedBy_result() {
    }

    public getApplicationsFollowedBy_result(
      GetApplicationsFollowedByResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getApplicationsFollowedBy_result(getApplicationsFollowedBy_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetApplicationsFollowedByResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getApplicationsFollowedBy_result deepCopy() {
      return new getApplicationsFollowedBy_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetApplicationsFollowedByResponse getSuccess() {
      return this.success;
    }

    public getApplicationsFollowedBy_result setSuccess(GetApplicationsFollowedByResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getApplicationsFollowedBy_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getApplicationsFollowedBy_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getApplicationsFollowedBy_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetApplicationsFollowedByResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getApplicationsFollowedBy_result)
        return this.equals((getApplicationsFollowedBy_result)that);
      return false;
    }

    public boolean equals(getApplicationsFollowedBy_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getApplicationsFollowedBy_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getApplicationsFollowedBy_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getApplicationsFollowedBy_resultStandardSchemeFactory implements SchemeFactory {
      public getApplicationsFollowedBy_resultStandardScheme getScheme() {
        return new getApplicationsFollowedBy_resultStandardScheme();
      }
    }

    private static class getApplicationsFollowedBy_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationsFollowedBy_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetApplicationsFollowedByResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationsFollowedBy_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getApplicationsFollowedBy_resultTupleSchemeFactory implements SchemeFactory {
      public getApplicationsFollowedBy_resultTupleScheme getScheme() {
        return new getApplicationsFollowedBy_resultTupleScheme();
      }
    }

    private static class getApplicationsFollowedBy_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationsFollowedBy_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationsFollowedBy_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetApplicationsFollowedByResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getMySavedChannels_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMySavedChannels_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMySavedChannels_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMySavedChannels_argsTupleSchemeFactory());
    }

    public GetMySavedChannelsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetMySavedChannelsRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMySavedChannels_args.class, metaDataMap);
    }

    public getMySavedChannels_args() {
    }

    public getMySavedChannels_args(
      GetMySavedChannelsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getMySavedChannels_args(getMySavedChannels_args other) {
      if (other.isSetRequest()) {
        this.request = new GetMySavedChannelsRequest(other.request);
      }
    }

    public getMySavedChannels_args deepCopy() {
      return new getMySavedChannels_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetMySavedChannelsRequest getRequest() {
      return this.request;
    }

    public getMySavedChannels_args setRequest(GetMySavedChannelsRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetMySavedChannelsRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMySavedChannels_args)
        return this.equals((getMySavedChannels_args)that);
      return false;
    }

    public boolean equals(getMySavedChannels_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getMySavedChannels_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMySavedChannels_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMySavedChannels_argsStandardSchemeFactory implements SchemeFactory {
      public getMySavedChannels_argsStandardScheme getScheme() {
        return new getMySavedChannels_argsStandardScheme();
      }
    }

    private static class getMySavedChannels_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMySavedChannels_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetMySavedChannelsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMySavedChannels_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMySavedChannels_argsTupleSchemeFactory implements SchemeFactory {
      public getMySavedChannels_argsTupleScheme getScheme() {
        return new getMySavedChannels_argsTupleScheme();
      }
    }

    private static class getMySavedChannels_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMySavedChannels_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMySavedChannels_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetMySavedChannelsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getMySavedChannels_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMySavedChannels_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getMySavedChannels_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getMySavedChannels_resultTupleSchemeFactory());
    }

    public GetMySavedChannelsResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetMySavedChannelsResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMySavedChannels_result.class, metaDataMap);
    }

    public getMySavedChannels_result() {
    }

    public getMySavedChannels_result(
      GetMySavedChannelsResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
    }

    /**
     * Performs a deep copy on other.
     */
    public getMySavedChannels_result(getMySavedChannels_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetMySavedChannelsResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
    }

    public getMySavedChannels_result deepCopy() {
      return new getMySavedChannels_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
    }

    public GetMySavedChannelsResponse getSuccess() {
      return this.success;
    }

    public getMySavedChannels_result setSuccess(GetMySavedChannelsResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getMySavedChannels_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getMySavedChannels_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getMySavedChannels_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetMySavedChannelsResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getMySavedChannels_result)
        return this.equals((getMySavedChannels_result)that);
      return false;
    }

    public boolean equals(getMySavedChannels_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      return list.hashCode();
    }

    @Override
    public int compareTo(getMySavedChannels_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getMySavedChannels_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMySavedChannels_resultStandardSchemeFactory implements SchemeFactory {
      public getMySavedChannels_resultStandardScheme getScheme() {
        return new getMySavedChannels_resultStandardScheme();
      }
    }

    private static class getMySavedChannels_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMySavedChannels_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetMySavedChannelsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMySavedChannels_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMySavedChannels_resultTupleSchemeFactory implements SchemeFactory {
      public getMySavedChannels_resultTupleScheme getScheme() {
        return new getMySavedChannels_resultTupleScheme();
      }
    }

    private static class getMySavedChannels_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMySavedChannels_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMySavedChannels_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetMySavedChannelsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
      }
    }

  }

  public static class getReactions_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getReactions_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getReactions_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getReactions_argsTupleSchemeFactory());
    }

    public GetReactionsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetReactionsRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getReactions_args.class, metaDataMap);
    }

    public getReactions_args() {
    }

    public getReactions_args(
      GetReactionsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getReactions_args(getReactions_args other) {
      if (other.isSetRequest()) {
        this.request = new GetReactionsRequest(other.request);
      }
    }

    public getReactions_args deepCopy() {
      return new getReactions_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetReactionsRequest getRequest() {
      return this.request;
    }

    public getReactions_args setRequest(GetReactionsRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetReactionsRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getReactions_args)
        return this.equals((getReactions_args)that);
      return false;
    }

    public boolean equals(getReactions_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getReactions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getReactions_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getReactions_argsStandardSchemeFactory implements SchemeFactory {
      public getReactions_argsStandardScheme getScheme() {
        return new getReactions_argsStandardScheme();
      }
    }

    private static class getReactions_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getReactions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetReactionsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getReactions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getReactions_argsTupleSchemeFactory implements SchemeFactory {
      public getReactions_argsTupleScheme getScheme() {
        return new getReactions_argsTupleScheme();
      }
    }

    private static class getReactions_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getReactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getReactions_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetReactionsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getReactions_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getReactions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getReactions_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getReactions_resultTupleSchemeFactory());
    }

    public GetReactionsResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetReactionsResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "ApplicationDoesNotExistException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getReactions_result.class, metaDataMap);
    }

    public getReactions_result() {
    }

    public getReactions_result(
      GetReactionsResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4,
      tech.aroma.thrift.exceptions.UnauthorizedException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getReactions_result(getReactions_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetReactionsResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getReactions_result deepCopy() {
      return new getReactions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetReactionsResponse getSuccess() {
      return this.success;
    }

    public getReactions_result setSuccess(GetReactionsResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getReactions_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getReactions_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getReactions_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.ApplicationDoesNotExistException getEx4() {
      return this.ex4;
    }

    public getReactions_result setEx4(tech.aroma.thrift.exceptions.ApplicationDoesNotExistException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx5() {
      return this.ex5;
    }

    public getReactions_result setEx5(tech.aroma.thrift.exceptions.UnauthorizedException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetReactionsResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.ApplicationDoesNotExistException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getReactions_result)
        return this.equals((getReactions_result)that);
      return false;
    }

    public boolean equals(getReactions_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getReactions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getReactions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getReactions_resultStandardSchemeFactory implements SchemeFactory {
      public getReactions_resultStandardScheme getScheme() {
        return new getReactions_resultStandardScheme();
      }
    }

    private static class getReactions_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getReactions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetReactionsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getReactions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getReactions_resultTupleSchemeFactory implements SchemeFactory {
      public getReactions_resultTupleScheme getScheme() {
        return new getReactions_resultTupleScheme();
      }
    }

    private static class getReactions_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getReactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getReactions_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetReactionsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.ApplicationDoesNotExistException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class getUserInfo_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserInfo_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getUserInfo_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getUserInfo_argsTupleSchemeFactory());
    }

    public GetUserInfoRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetUserInfoRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserInfo_args.class, metaDataMap);
    }

    public getUserInfo_args() {
    }

    public getUserInfo_args(
      GetUserInfoRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public getUserInfo_args(getUserInfo_args other) {
      if (other.isSetRequest()) {
        this.request = new GetUserInfoRequest(other.request);
      }
    }

    public getUserInfo_args deepCopy() {
      return new getUserInfo_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public GetUserInfoRequest getRequest() {
      return this.request;
    }

    public getUserInfo_args setRequest(GetUserInfoRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetUserInfoRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getUserInfo_args)
        return this.equals((getUserInfo_args)that);
      return false;
    }

    public boolean equals(getUserInfo_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(getUserInfo_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getUserInfo_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getUserInfo_argsStandardSchemeFactory implements SchemeFactory {
      public getUserInfo_argsStandardScheme getScheme() {
        return new getUserInfo_argsStandardScheme();
      }
    }

    private static class getUserInfo_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserInfo_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetUserInfoRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserInfo_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getUserInfo_argsTupleSchemeFactory implements SchemeFactory {
      public getUserInfo_argsTupleScheme getScheme() {
        return new getUserInfo_argsTupleScheme();
      }
    }

    private static class getUserInfo_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getUserInfo_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getUserInfo_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetUserInfoRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class getUserInfo_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserInfo_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField("ex5", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new getUserInfo_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new getUserInfo_resultTupleSchemeFactory());
    }

    public GetUserInfoResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required
    public tech.aroma.thrift.exceptions.UserDoesNotExistException ex5; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4"),
      EX5((short)5, "ex5");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          case 5: // EX5
            return EX5;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetUserInfoResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      tmpMap.put(_Fields.EX5, new org.apache.thrift.meta_data.FieldMetaData("ex5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UserDoesNotExistException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserInfo_result.class, metaDataMap);
    }

    public getUserInfo_result() {
    }

    public getUserInfo_result(
      GetUserInfoResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4,
      tech.aroma.thrift.exceptions.UserDoesNotExistException ex5)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
      this.ex5 = ex5;
    }

    /**
     * Performs a deep copy on other.
     */
    public getUserInfo_result(getUserInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetUserInfoResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
      if (other.isSetEx5()) {
        this.ex5 = other.ex5;
      }
    }

    public getUserInfo_result deepCopy() {
      return new getUserInfo_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
      this.ex5 = null;
    }

    public GetUserInfoResponse getSuccess() {
      return this.success;
    }

    public getUserInfo_result setSuccess(GetUserInfoResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public getUserInfo_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public getUserInfo_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public getUserInfo_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public getUserInfo_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UserDoesNotExistException getEx5() {
      return this.ex5;
    }

    public getUserInfo_result setEx5(tech.aroma.thrift.exceptions.UserDoesNotExistException ex5) {
      this.ex5 = ex5;
      return this;
    }

    public void unsetEx5() {
      this.ex5 = null;
    }

    /** Returns true if field ex5 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx5() {
      return this.ex5 != null;
    }

    public void setEx5IsSet(boolean value) {
      if (!value) {
        this.ex5 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetUserInfoResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      case EX5:
        if (value == null) {
          unsetEx5();
        } else {
          setEx5((tech.aroma.thrift.exceptions.UserDoesNotExistException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      case EX5:
        return getEx5();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      case EX5:
        return isSetEx5();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getUserInfo_result)
        return this.equals((getUserInfo_result)that);
      return false;
    }

    public boolean equals(getUserInfo_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      boolean this_present_ex5 = true && this.isSetEx5();
      boolean that_present_ex5 = true && that.isSetEx5();
      if (this_present_ex5 || that_present_ex5) {
        if (!(this_present_ex5 && that_present_ex5))
          return false;
        if (!this.ex5.equals(that.ex5))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      boolean present_ex5 = true && (isSetEx5());
      list.add(present_ex5);
      if (present_ex5)
        list.add(ex5);

      return list.hashCode();
    }

    @Override
    public int compareTo(getUserInfo_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx5()).compareTo(other.isSetEx5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex5, other.ex5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getUserInfo_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex5:");
      if (this.ex5 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex5);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getUserInfo_resultStandardSchemeFactory implements SchemeFactory {
      public getUserInfo_resultStandardScheme getScheme() {
        return new getUserInfo_resultStandardScheme();
      }
    }

    private static class getUserInfo_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserInfo_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetUserInfoResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // EX5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex5 = new tech.aroma.thrift.exceptions.UserDoesNotExistException();
                struct.ex5.read(iprot);
                struct.setEx5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserInfo_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex5 != null) {
          oprot.writeFieldBegin(EX5_FIELD_DESC);
          struct.ex5.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getUserInfo_resultTupleSchemeFactory implements SchemeFactory {
      public getUserInfo_resultTupleScheme getScheme() {
        return new getUserInfo_resultTupleScheme();
      }
    }

    private static class getUserInfo_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getUserInfo_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        if (struct.isSetEx5()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
        if (struct.isSetEx5()) {
          struct.ex5.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getUserInfo_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.success = new GetUserInfoResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.ex5 = new tech.aroma.thrift.exceptions.UserDoesNotExistException();
          struct.ex5.read(iprot);
          struct.setEx5IsSet(true);
        }
      }
    }

  }

  public static class searchForApplications_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("searchForApplications_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new searchForApplications_argsStandardSchemeFactory());
      schemes.put(TupleScheme.class, new searchForApplications_argsTupleSchemeFactory());
    }

    public SearchForApplicationsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SearchForApplicationsRequest.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(searchForApplications_args.class, metaDataMap);
    }

    public searchForApplications_args() {
    }

    public searchForApplications_args(
      SearchForApplicationsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on other.
     */
    public searchForApplications_args(searchForApplications_args other) {
      if (other.isSetRequest()) {
        this.request = new SearchForApplicationsRequest(other.request);
      }
    }

    public searchForApplications_args deepCopy() {
      return new searchForApplications_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    public SearchForApplicationsRequest getRequest() {
      return this.request;
    }

    public searchForApplications_args setRequest(SearchForApplicationsRequest request) {
      this.request = request;
      return this;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SearchForApplicationsRequest)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof searchForApplications_args)
        return this.equals((searchForApplications_args)that);
      return false;
    }

    public boolean equals(searchForApplications_args that) {
      if (that == null)
        return false;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_request = true && (isSetRequest());
      list.add(present_request);
      if (present_request)
        list.add(request);

      return list.hashCode();
    }

    @Override
    public int compareTo(searchForApplications_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetRequest()).compareTo(other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("searchForApplications_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class searchForApplications_argsStandardSchemeFactory implements SchemeFactory {
      public searchForApplications_argsStandardScheme getScheme() {
        return new searchForApplications_argsStandardScheme();
      }
    }

    private static class searchForApplications_argsStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, searchForApplications_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SearchForApplicationsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, searchForApplications_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class searchForApplications_argsTupleSchemeFactory implements SchemeFactory {
      public searchForApplications_argsTupleScheme getScheme() {
        return new searchForApplications_argsTupleScheme();
      }
    }

    private static class searchForApplications_argsTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, searchForApplications_args struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, searchForApplications_args struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SearchForApplicationsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

  }

  public static class searchForApplications_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("searchForApplications_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField EX1_FIELD_DESC = new org.apache.thrift.protocol.TField("ex1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField("ex2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField("ex3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField("ex4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
    static {
      schemes.put(StandardScheme.class, new searchForApplications_resultStandardSchemeFactory());
      schemes.put(TupleScheme.class, new searchForApplications_resultTupleSchemeFactory());
    }

    public SearchForApplicationsResponse success; // required
    public tech.aroma.thrift.exceptions.OperationFailedException ex1; // required
    public tech.aroma.thrift.exceptions.InvalidArgumentException ex2; // required
    public tech.aroma.thrift.exceptions.InvalidTokenException ex3; // required
    public tech.aroma.thrift.exceptions.UnauthorizedException ex4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX1((short)1, "ex1"),
      EX2((short)2, "ex2"),
      EX3((short)3, "ex3"),
      EX4((short)4, "ex4");

      private static final Map byName = new HashMap();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX1
            return EX1;
          case 2: // EX2
            return EX2;
          case 3: // EX3
            return EX3;
          case 4: // EX4
            return EX4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SearchForApplicationsResponse.class)));
      tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "OperationFailedException")));
      tmpMap.put(_Fields.EX2, new org.apache.thrift.meta_data.FieldMetaData("ex2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidArgumentException")));
      tmpMap.put(_Fields.EX3, new org.apache.thrift.meta_data.FieldMetaData("ex3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "InvalidTokenException")));
      tmpMap.put(_Fields.EX4, new org.apache.thrift.meta_data.FieldMetaData("ex4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT          , "UnauthorizedException")));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(searchForApplications_result.class, metaDataMap);
    }

    public searchForApplications_result() {
    }

    public searchForApplications_result(
      SearchForApplicationsResponse success,
      tech.aroma.thrift.exceptions.OperationFailedException ex1,
      tech.aroma.thrift.exceptions.InvalidArgumentException ex2,
      tech.aroma.thrift.exceptions.InvalidTokenException ex3,
      tech.aroma.thrift.exceptions.UnauthorizedException ex4)
    {
      this();
      this.success = success;
      this.ex1 = ex1;
      this.ex2 = ex2;
      this.ex3 = ex3;
      this.ex4 = ex4;
    }

    /**
     * Performs a deep copy on other.
     */
    public searchForApplications_result(searchForApplications_result other) {
      if (other.isSetSuccess()) {
        this.success = new SearchForApplicationsResponse(other.success);
      }
      if (other.isSetEx1()) {
        this.ex1 = other.ex1;
      }
      if (other.isSetEx2()) {
        this.ex2 = other.ex2;
      }
      if (other.isSetEx3()) {
        this.ex3 = other.ex3;
      }
      if (other.isSetEx4()) {
        this.ex4 = other.ex4;
      }
    }

    public searchForApplications_result deepCopy() {
      return new searchForApplications_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.ex1 = null;
      this.ex2 = null;
      this.ex3 = null;
      this.ex4 = null;
    }

    public SearchForApplicationsResponse getSuccess() {
      return this.success;
    }

    public searchForApplications_result setSuccess(SearchForApplicationsResponse success) {
      this.success = success;
      return this;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public tech.aroma.thrift.exceptions.OperationFailedException getEx1() {
      return this.ex1;
    }

    public searchForApplications_result setEx1(tech.aroma.thrift.exceptions.OperationFailedException ex1) {
      this.ex1 = ex1;
      return this;
    }

    public void unsetEx1() {
      this.ex1 = null;
    }

    /** Returns true if field ex1 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx1() {
      return this.ex1 != null;
    }

    public void setEx1IsSet(boolean value) {
      if (!value) {
        this.ex1 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidArgumentException getEx2() {
      return this.ex2;
    }

    public searchForApplications_result setEx2(tech.aroma.thrift.exceptions.InvalidArgumentException ex2) {
      this.ex2 = ex2;
      return this;
    }

    public void unsetEx2() {
      this.ex2 = null;
    }

    /** Returns true if field ex2 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx2() {
      return this.ex2 != null;
    }

    public void setEx2IsSet(boolean value) {
      if (!value) {
        this.ex2 = null;
      }
    }

    public tech.aroma.thrift.exceptions.InvalidTokenException getEx3() {
      return this.ex3;
    }

    public searchForApplications_result setEx3(tech.aroma.thrift.exceptions.InvalidTokenException ex3) {
      this.ex3 = ex3;
      return this;
    }

    public void unsetEx3() {
      this.ex3 = null;
    }

    /** Returns true if field ex3 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx3() {
      return this.ex3 != null;
    }

    public void setEx3IsSet(boolean value) {
      if (!value) {
        this.ex3 = null;
      }
    }

    public tech.aroma.thrift.exceptions.UnauthorizedException getEx4() {
      return this.ex4;
    }

    public searchForApplications_result setEx4(tech.aroma.thrift.exceptions.UnauthorizedException ex4) {
      this.ex4 = ex4;
      return this;
    }

    public void unsetEx4() {
      this.ex4 = null;
    }

    /** Returns true if field ex4 is set (has been assigned a value) and false otherwise */
    public boolean isSetEx4() {
      return this.ex4 != null;
    }

    public void setEx4IsSet(boolean value) {
      if (!value) {
        this.ex4 = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((SearchForApplicationsResponse)value);
        }
        break;

      case EX1:
        if (value == null) {
          unsetEx1();
        } else {
          setEx1((tech.aroma.thrift.exceptions.OperationFailedException)value);
        }
        break;

      case EX2:
        if (value == null) {
          unsetEx2();
        } else {
          setEx2((tech.aroma.thrift.exceptions.InvalidArgumentException)value);
        }
        break;

      case EX3:
        if (value == null) {
          unsetEx3();
        } else {
          setEx3((tech.aroma.thrift.exceptions.InvalidTokenException)value);
        }
        break;

      case EX4:
        if (value == null) {
          unsetEx4();
        } else {
          setEx4((tech.aroma.thrift.exceptions.UnauthorizedException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case EX1:
        return getEx1();

      case EX2:
        return getEx2();

      case EX3:
        return getEx3();

      case EX4:
        return getEx4();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX1:
        return isSetEx1();
      case EX2:
        return isSetEx2();
      case EX3:
        return isSetEx3();
      case EX4:
        return isSetEx4();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof searchForApplications_result)
        return this.equals((searchForApplications_result)that);
      return false;
    }

    public boolean equals(searchForApplications_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_ex1 = true && this.isSetEx1();
      boolean that_present_ex1 = true && that.isSetEx1();
      if (this_present_ex1 || that_present_ex1) {
        if (!(this_present_ex1 && that_present_ex1))
          return false;
        if (!this.ex1.equals(that.ex1))
          return false;
      }

      boolean this_present_ex2 = true && this.isSetEx2();
      boolean that_present_ex2 = true && that.isSetEx2();
      if (this_present_ex2 || that_present_ex2) {
        if (!(this_present_ex2 && that_present_ex2))
          return false;
        if (!this.ex2.equals(that.ex2))
          return false;
      }

      boolean this_present_ex3 = true && this.isSetEx3();
      boolean that_present_ex3 = true && that.isSetEx3();
      if (this_present_ex3 || that_present_ex3) {
        if (!(this_present_ex3 && that_present_ex3))
          return false;
        if (!this.ex3.equals(that.ex3))
          return false;
      }

      boolean this_present_ex4 = true && this.isSetEx4();
      boolean that_present_ex4 = true && that.isSetEx4();
      if (this_present_ex4 || that_present_ex4) {
        if (!(this_present_ex4 && that_present_ex4))
          return false;
        if (!this.ex4.equals(that.ex4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      List list = new ArrayList();

      boolean present_success = true && (isSetSuccess());
      list.add(present_success);
      if (present_success)
        list.add(success);

      boolean present_ex1 = true && (isSetEx1());
      list.add(present_ex1);
      if (present_ex1)
        list.add(ex1);

      boolean present_ex2 = true && (isSetEx2());
      list.add(present_ex2);
      if (present_ex2)
        list.add(ex2);

      boolean present_ex3 = true && (isSetEx3());
      list.add(present_ex3);
      if (present_ex3)
        list.add(ex3);

      boolean present_ex4 = true && (isSetEx4());
      list.add(present_ex4);
      if (present_ex4)
        list.add(ex4);

      return list.hashCode();
    }

    @Override
    public int compareTo(searchForApplications_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx1()).compareTo(other.isSetEx1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex1, other.ex1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx2()).compareTo(other.isSetEx2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex2, other.ex2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx3()).compareTo(other.isSetEx3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex3, other.ex3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetEx4()).compareTo(other.isSetEx4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex4, other.ex4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
      }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("searchForApplications_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex1:");
      if (this.ex1 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex2:");
      if (this.ex2 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex3:");
      if (this.ex3 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex4:");
      if (this.ex4 == null) {
        sb.append("null");
      } else {
        sb.append(this.ex4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class searchForApplications_resultStandardSchemeFactory implements SchemeFactory {
      public searchForApplications_resultStandardScheme getScheme() {
        return new searchForApplications_resultStandardScheme();
      }
    }

    private static class searchForApplications_resultStandardScheme extends StandardScheme {

      public void read(org.apache.thrift.protocol.TProtocol iprot, searchForApplications_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SearchForApplicationsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
                struct.ex1.read(iprot);
                struct.setEx1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // EX2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
                struct.ex2.read(iprot);
                struct.setEx2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // EX3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
                struct.ex3.read(iprot);
                struct.setEx3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EX4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
                struct.ex4.read(iprot);
                struct.setEx4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, searchForApplications_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex1 != null) {
          oprot.writeFieldBegin(EX1_FIELD_DESC);
          struct.ex1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex2 != null) {
          oprot.writeFieldBegin(EX2_FIELD_DESC);
          struct.ex2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex3 != null) {
          oprot.writeFieldBegin(EX3_FIELD_DESC);
          struct.ex3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.ex4 != null) {
          oprot.writeFieldBegin(EX4_FIELD_DESC);
          struct.ex4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class searchForApplications_resultTupleSchemeFactory implements SchemeFactory {
      public searchForApplications_resultTupleScheme getScheme() {
        return new searchForApplications_resultTupleScheme();
      }
    }

    private static class searchForApplications_resultTupleScheme extends TupleScheme {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, searchForApplications_result struct) throws org.apache.thrift.TException {
        TTupleProtocol oprot = (TTupleProtocol) prot;
        BitSet optionals = new BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx1()) {
          optionals.set(1);
        }
        if (struct.isSetEx2()) {
          optionals.set(2);
        }
        if (struct.isSetEx3()) {
          optionals.set(3);
        }
        if (struct.isSetEx4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetEx1()) {
          struct.ex1.write(oprot);
        }
        if (struct.isSetEx2()) {
          struct.ex2.write(oprot);
        }
        if (struct.isSetEx3()) {
          struct.ex3.write(oprot);
        }
        if (struct.isSetEx4()) {
          struct.ex4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, searchForApplications_result struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new SearchForApplicationsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex1 = new tech.aroma.thrift.exceptions.OperationFailedException();
          struct.ex1.read(iprot);
          struct.setEx1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.ex2 = new tech.aroma.thrift.exceptions.InvalidArgumentException();
          struct.ex2.read(iprot);
          struct.setEx2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.ex3 = new tech.aroma.thrift.exceptions.InvalidTokenException();
          struct.ex3.read(iprot);
          struct.setEx3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.ex4 = new tech.aroma.thrift.exceptions.UnauthorizedException();
          struct.ex4.read(iprot);
          struct.setEx4IsSet(true);
        }
      }
    }

  }

}