Subversion Repositories SmartDukaan

Rev

Rev 19421 | Rev 20744 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * Autogenerated by Thrift Compiler (0.7.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
package in.shop2020.logistics;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogisticsService {

  public interface Iface extends in.shop2020.generic.GenericService.Iface {

    /**
     * Returns a provider for a given provider ID. Throws an exception if none found.
     * 
     * @param providerId
     */
    public Provider getProvider(long providerId) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns a list containing all the providers.
     */
    public List<Provider> getAllProviders() throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
     * Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
     * is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
     * 
     * @param itemId
     * @param destination_pin
     * @param type
     */
    public LogisticsInfo getLogisticsEstimation(long itemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException;

    public LogisticsInfo getLogisticsEstimationForStore(long itemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Same as above excpet that an airway bill number is also allocated and returned.
     * 
     * @param destination_pincode
     * @param item_id
     * @param type
     * @param pickUp
     */
    public LogisticsInfo getLogisticsInfo(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns an unused AWB number for the given provider.
     * 
     * @param providerId
     * @param type
     */
    public String getEmptyAWB(long providerId, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns the list of updates for the given AWB number and provider id. The list is empty if there are no updates yet.
     * 
     * @param awbNumber
     * @param providerId
     */
    public List<AwbUpdate> getShipmentInfo(String awbNumber, long providerId) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Store the update for the given AWB number and provider id.
     * 
     * @param update
     */
    public void storeShipmentInfo(AwbUpdate update) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns the short three letter code of a pincode for the given provider.
     *    Raises an exception if the pin code is not serviced by the given provider.
     * 
     * @param providerId
     * @param pinCode
     */
    public String getDestinationCode(long providerId, String pinCode) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns the number of unused AWB numbers for the given provider of the given type
     * 
     * @param providerId
     * @param type
     */
    public long getFreeAwbCount(long providerId, String type) throws org.apache.thrift.TException;

    /**
     * Returns list of Holiday dates between fromDate and toDate (both inclusive)
     * fromDate should be passed as milliseconds corresponding to the start of the day.
     * If fromDate is passed as -1, fromDate is not considered for filtering
     * If toDate is passed as -1, toDate is not considered for filtering
     * 
     * @param fromDate
     * @param toDate
     */
    public List<Long> getHolidays(long fromDate, long toDate) throws org.apache.thrift.TException;

    /**
     * Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
     * Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
     * is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
     * 
     * @param catalogItemId
     * @param destination_pin
     * @param type
     */
    public List<ItemText> getEntityLogisticsEstimation(long catalogItemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * Returns the id for a given pickUpType
     * 
     * @param pickUp
     */
    public long getProviderForPickupType(long pickUp) throws org.apache.thrift.TException;

    public List<PickupStore> getAllPickupStores() throws org.apache.thrift.TException;

    public PickupStore getPickupStore(long storeId) throws org.apache.thrift.TException;

    public PickupStore getPickupStoreByHotspotId(String hotspotId) throws org.apache.thrift.TException;

    public void addPincode(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable) throws org.apache.thrift.TException;

    public void updatePincode(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable) throws org.apache.thrift.TException;

    public boolean addNewAwbs(long providerId, boolean cod, List<String> awbs, long awbUsedFor) throws org.apache.thrift.TException;

    public void runLogisticsLocationInfoUpdate(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate) throws org.apache.thrift.TException;

    public long adjustDeliveryDays(long startDate, long days) throws org.apache.thrift.TException;

    public long getFirstDeliveryEstimateForWhLocation(String pincode, long whLocation) throws org.apache.thrift.TException;

    public String getNewEmptyAwb(long providerId, DeliveryType type, long orderQuantity) throws LogisticsServiceException, org.apache.thrift.TException;

    public Map<String,String> getProviderLimitDetailsForPincode(long providerId, String pincode) throws LogisticsServiceException, org.apache.thrift.TException;

    /**
     * This returns map for locations and providers corresponding their serviceability and delay
     * 
     * @param destPincode
     * @param price
     */
    public Map<Long,Map<Long,LocationInfo>> getLocationInfoMap(String destPincode, List<Long> price) throws org.apache.thrift.TException;

    public DeliveryEstimateAndCosting getCostingAndDeliveryEstimateForPincode(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn) throws LogisticsServiceException, org.apache.thrift.TException;

  }

  public interface AsyncIface extends in.shop2020.generic.GenericService .AsyncIface {

    public void getProvider(long providerId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getProvider_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllProviders(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllProviders_call> resultHandler) throws org.apache.thrift.TException;

    public void getLogisticsEstimation(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getLogisticsEstimation_call> resultHandler) throws org.apache.thrift.TException;

    public void getLogisticsEstimationForStore(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getLogisticsEstimationForStore_call> resultHandler) throws org.apache.thrift.TException;

    public void getLogisticsInfo(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getLogisticsInfo_call> resultHandler) throws org.apache.thrift.TException;

    public void getEmptyAWB(long providerId, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getEmptyAWB_call> resultHandler) throws org.apache.thrift.TException;

    public void getShipmentInfo(String awbNumber, long providerId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getShipmentInfo_call> resultHandler) throws org.apache.thrift.TException;

    public void storeShipmentInfo(AwbUpdate update, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.storeShipmentInfo_call> resultHandler) throws org.apache.thrift.TException;

    public void getDestinationCode(long providerId, String pinCode, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getDestinationCode_call> resultHandler) throws org.apache.thrift.TException;

    public void getFreeAwbCount(long providerId, String type, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getFreeAwbCount_call> resultHandler) throws org.apache.thrift.TException;

    public void getHolidays(long fromDate, long toDate, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getHolidays_call> resultHandler) throws org.apache.thrift.TException;

    public void getEntityLogisticsEstimation(long catalogItemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getEntityLogisticsEstimation_call> resultHandler) throws org.apache.thrift.TException;

    public void getProviderForPickupType(long pickUp, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getProviderForPickupType_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllPickupStores(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllPickupStores_call> resultHandler) throws org.apache.thrift.TException;

    public void getPickupStore(long storeId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getPickupStore_call> resultHandler) throws org.apache.thrift.TException;

    public void getPickupStoreByHotspotId(String hotspotId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getPickupStoreByHotspotId_call> resultHandler) throws org.apache.thrift.TException;

    public void addPincode(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addPincode_call> resultHandler) throws org.apache.thrift.TException;

    public void updatePincode(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updatePincode_call> resultHandler) throws org.apache.thrift.TException;

    public void addNewAwbs(long providerId, boolean cod, List<String> awbs, long awbUsedFor, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addNewAwbs_call> resultHandler) throws org.apache.thrift.TException;

    public void runLogisticsLocationInfoUpdate(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.runLogisticsLocationInfoUpdate_call> resultHandler) throws org.apache.thrift.TException;

    public void adjustDeliveryDays(long startDate, long days, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.adjustDeliveryDays_call> resultHandler) throws org.apache.thrift.TException;

    public void getFirstDeliveryEstimateForWhLocation(String pincode, long whLocation, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getFirstDeliveryEstimateForWhLocation_call> resultHandler) throws org.apache.thrift.TException;

    public void getNewEmptyAwb(long providerId, DeliveryType type, long orderQuantity, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getNewEmptyAwb_call> resultHandler) throws org.apache.thrift.TException;

    public void getProviderLimitDetailsForPincode(long providerId, String pincode, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getProviderLimitDetailsForPincode_call> resultHandler) throws org.apache.thrift.TException;

    public void getLocationInfoMap(String destPincode, List<Long> price, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getLocationInfoMap_call> resultHandler) throws org.apache.thrift.TException;

    public void getCostingAndDeliveryEstimateForPincode(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getCostingAndDeliveryEstimateForPincode_call> resultHandler) throws org.apache.thrift.TException;

  }

  public static class Client extends in.shop2020.generic.GenericService.Client implements Iface {
    public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
      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 Provider getProvider(long providerId) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getProvider(providerId);
      return recv_getProvider();
    }

    public void send_getProvider(long providerId) throws org.apache.thrift.TException
    {
      getProvider_args args = new getProvider_args();
      args.setProviderId(providerId);
      sendBase("getProvider", args);
    }

    public Provider recv_getProvider() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getProvider_result result = new getProvider_result();
      receiveBase(result, "getProvider");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.lse != null) {
        throw result.lse;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getProvider failed: unknown result");
    }

    public List<Provider> getAllProviders() throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getAllProviders();
      return recv_getAllProviders();
    }

    public void send_getAllProviders() throws org.apache.thrift.TException
    {
      getAllProviders_args args = new getAllProviders_args();
      sendBase("getAllProviders", args);
    }

    public List<Provider> recv_getAllProviders() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getAllProviders_result result = new getAllProviders_result();
      receiveBase(result, "getAllProviders");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.lse != null) {
        throw result.lse;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllProviders failed: unknown result");
    }

    public LogisticsInfo getLogisticsEstimation(long itemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getLogisticsEstimation(itemId, destination_pin, type);
      return recv_getLogisticsEstimation();
    }

    public void send_getLogisticsEstimation(long itemId, String destination_pin, DeliveryType type) throws org.apache.thrift.TException
    {
      getLogisticsEstimation_args args = new getLogisticsEstimation_args();
      args.setItemId(itemId);
      args.setDestination_pin(destination_pin);
      args.setType(type);
      sendBase("getLogisticsEstimation", args);
    }

    public LogisticsInfo recv_getLogisticsEstimation() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getLogisticsEstimation_result result = new getLogisticsEstimation_result();
      receiveBase(result, "getLogisticsEstimation");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLogisticsEstimation failed: unknown result");
    }

    public LogisticsInfo getLogisticsEstimationForStore(long itemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getLogisticsEstimationForStore(itemId, destination_pin, type);
      return recv_getLogisticsEstimationForStore();
    }

    public void send_getLogisticsEstimationForStore(long itemId, String destination_pin, DeliveryType type) throws org.apache.thrift.TException
    {
      getLogisticsEstimationForStore_args args = new getLogisticsEstimationForStore_args();
      args.setItemId(itemId);
      args.setDestination_pin(destination_pin);
      args.setType(type);
      sendBase("getLogisticsEstimationForStore", args);
    }

    public LogisticsInfo recv_getLogisticsEstimationForStore() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getLogisticsEstimationForStore_result result = new getLogisticsEstimationForStore_result();
      receiveBase(result, "getLogisticsEstimationForStore");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLogisticsEstimationForStore failed: unknown result");
    }

    public LogisticsInfo getLogisticsInfo(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getLogisticsInfo(destination_pincode, item_id, type, pickUp);
      return recv_getLogisticsInfo();
    }

    public void send_getLogisticsInfo(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp) throws org.apache.thrift.TException
    {
      getLogisticsInfo_args args = new getLogisticsInfo_args();
      args.setDestination_pincode(destination_pincode);
      args.setItem_id(item_id);
      args.setType(type);
      args.setPickUp(pickUp);
      sendBase("getLogisticsInfo", args);
    }

    public LogisticsInfo recv_getLogisticsInfo() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getLogisticsInfo_result result = new getLogisticsInfo_result();
      receiveBase(result, "getLogisticsInfo");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLogisticsInfo failed: unknown result");
    }

    public String getEmptyAWB(long providerId, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getEmptyAWB(providerId, type);
      return recv_getEmptyAWB();
    }

    public void send_getEmptyAWB(long providerId, DeliveryType type) throws org.apache.thrift.TException
    {
      getEmptyAWB_args args = new getEmptyAWB_args();
      args.setProviderId(providerId);
      args.setType(type);
      sendBase("getEmptyAWB", args);
    }

    public String recv_getEmptyAWB() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getEmptyAWB_result result = new getEmptyAWB_result();
      receiveBase(result, "getEmptyAWB");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getEmptyAWB failed: unknown result");
    }

    public List<AwbUpdate> getShipmentInfo(String awbNumber, long providerId) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getShipmentInfo(awbNumber, providerId);
      return recv_getShipmentInfo();
    }

    public void send_getShipmentInfo(String awbNumber, long providerId) throws org.apache.thrift.TException
    {
      getShipmentInfo_args args = new getShipmentInfo_args();
      args.setAwbNumber(awbNumber);
      args.setProviderId(providerId);
      sendBase("getShipmentInfo", args);
    }

    public List<AwbUpdate> recv_getShipmentInfo() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getShipmentInfo_result result = new getShipmentInfo_result();
      receiveBase(result, "getShipmentInfo");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getShipmentInfo failed: unknown result");
    }

    public void storeShipmentInfo(AwbUpdate update) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_storeShipmentInfo(update);
      recv_storeShipmentInfo();
    }

    public void send_storeShipmentInfo(AwbUpdate update) throws org.apache.thrift.TException
    {
      storeShipmentInfo_args args = new storeShipmentInfo_args();
      args.setUpdate(update);
      sendBase("storeShipmentInfo", args);
    }

    public void recv_storeShipmentInfo() throws LogisticsServiceException, org.apache.thrift.TException
    {
      storeShipmentInfo_result result = new storeShipmentInfo_result();
      receiveBase(result, "storeShipmentInfo");
      if (result.se != null) {
        throw result.se;
      }
      return;
    }

    public String getDestinationCode(long providerId, String pinCode) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getDestinationCode(providerId, pinCode);
      return recv_getDestinationCode();
    }

    public void send_getDestinationCode(long providerId, String pinCode) throws org.apache.thrift.TException
    {
      getDestinationCode_args args = new getDestinationCode_args();
      args.setProviderId(providerId);
      args.setPinCode(pinCode);
      sendBase("getDestinationCode", args);
    }

    public String recv_getDestinationCode() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getDestinationCode_result result = new getDestinationCode_result();
      receiveBase(result, "getDestinationCode");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getDestinationCode failed: unknown result");
    }

    public long getFreeAwbCount(long providerId, String type) throws org.apache.thrift.TException
    {
      send_getFreeAwbCount(providerId, type);
      return recv_getFreeAwbCount();
    }

    public void send_getFreeAwbCount(long providerId, String type) throws org.apache.thrift.TException
    {
      getFreeAwbCount_args args = new getFreeAwbCount_args();
      args.setProviderId(providerId);
      args.setType(type);
      sendBase("getFreeAwbCount", args);
    }

    public long recv_getFreeAwbCount() throws org.apache.thrift.TException
    {
      getFreeAwbCount_result result = new getFreeAwbCount_result();
      receiveBase(result, "getFreeAwbCount");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getFreeAwbCount failed: unknown result");
    }

    public List<Long> getHolidays(long fromDate, long toDate) throws org.apache.thrift.TException
    {
      send_getHolidays(fromDate, toDate);
      return recv_getHolidays();
    }

    public void send_getHolidays(long fromDate, long toDate) throws org.apache.thrift.TException
    {
      getHolidays_args args = new getHolidays_args();
      args.setFromDate(fromDate);
      args.setToDate(toDate);
      sendBase("getHolidays", args);
    }

    public List<Long> recv_getHolidays() throws org.apache.thrift.TException
    {
      getHolidays_result result = new getHolidays_result();
      receiveBase(result, "getHolidays");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getHolidays failed: unknown result");
    }

    public List<ItemText> getEntityLogisticsEstimation(long catalogItemId, String destination_pin, DeliveryType type) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getEntityLogisticsEstimation(catalogItemId, destination_pin, type);
      return recv_getEntityLogisticsEstimation();
    }

    public void send_getEntityLogisticsEstimation(long catalogItemId, String destination_pin, DeliveryType type) throws org.apache.thrift.TException
    {
      getEntityLogisticsEstimation_args args = new getEntityLogisticsEstimation_args();
      args.setCatalogItemId(catalogItemId);
      args.setDestination_pin(destination_pin);
      args.setType(type);
      sendBase("getEntityLogisticsEstimation", args);
    }

    public List<ItemText> recv_getEntityLogisticsEstimation() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getEntityLogisticsEstimation_result result = new getEntityLogisticsEstimation_result();
      receiveBase(result, "getEntityLogisticsEstimation");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getEntityLogisticsEstimation failed: unknown result");
    }

    public long getProviderForPickupType(long pickUp) throws org.apache.thrift.TException
    {
      send_getProviderForPickupType(pickUp);
      return recv_getProviderForPickupType();
    }

    public void send_getProviderForPickupType(long pickUp) throws org.apache.thrift.TException
    {
      getProviderForPickupType_args args = new getProviderForPickupType_args();
      args.setPickUp(pickUp);
      sendBase("getProviderForPickupType", args);
    }

    public long recv_getProviderForPickupType() throws org.apache.thrift.TException
    {
      getProviderForPickupType_result result = new getProviderForPickupType_result();
      receiveBase(result, "getProviderForPickupType");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getProviderForPickupType failed: unknown result");
    }

    public List<PickupStore> getAllPickupStores() throws org.apache.thrift.TException
    {
      send_getAllPickupStores();
      return recv_getAllPickupStores();
    }

    public void send_getAllPickupStores() throws org.apache.thrift.TException
    {
      getAllPickupStores_args args = new getAllPickupStores_args();
      sendBase("getAllPickupStores", args);
    }

    public List<PickupStore> recv_getAllPickupStores() throws org.apache.thrift.TException
    {
      getAllPickupStores_result result = new getAllPickupStores_result();
      receiveBase(result, "getAllPickupStores");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllPickupStores failed: unknown result");
    }

    public PickupStore getPickupStore(long storeId) throws org.apache.thrift.TException
    {
      send_getPickupStore(storeId);
      return recv_getPickupStore();
    }

    public void send_getPickupStore(long storeId) throws org.apache.thrift.TException
    {
      getPickupStore_args args = new getPickupStore_args();
      args.setStoreId(storeId);
      sendBase("getPickupStore", args);
    }

    public PickupStore recv_getPickupStore() throws org.apache.thrift.TException
    {
      getPickupStore_result result = new getPickupStore_result();
      receiveBase(result, "getPickupStore");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getPickupStore failed: unknown result");
    }

    public PickupStore getPickupStoreByHotspotId(String hotspotId) throws org.apache.thrift.TException
    {
      send_getPickupStoreByHotspotId(hotspotId);
      return recv_getPickupStoreByHotspotId();
    }

    public void send_getPickupStoreByHotspotId(String hotspotId) throws org.apache.thrift.TException
    {
      getPickupStoreByHotspotId_args args = new getPickupStoreByHotspotId_args();
      args.setHotspotId(hotspotId);
      sendBase("getPickupStoreByHotspotId", args);
    }

    public PickupStore recv_getPickupStoreByHotspotId() throws org.apache.thrift.TException
    {
      getPickupStoreByHotspotId_result result = new getPickupStoreByHotspotId_result();
      receiveBase(result, "getPickupStoreByHotspotId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getPickupStoreByHotspotId failed: unknown result");
    }

    public void addPincode(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable) throws org.apache.thrift.TException
    {
      send_addPincode(providerId, pincode, destCode, exp, cod, stationType, otgAvailable);
      recv_addPincode();
    }

    public void send_addPincode(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable) throws org.apache.thrift.TException
    {
      addPincode_args args = new addPincode_args();
      args.setProviderId(providerId);
      args.setPincode(pincode);
      args.setDestCode(destCode);
      args.setExp(exp);
      args.setCod(cod);
      args.setStationType(stationType);
      args.setOtgAvailable(otgAvailable);
      sendBase("addPincode", args);
    }

    public void recv_addPincode() throws org.apache.thrift.TException
    {
      addPincode_result result = new addPincode_result();
      receiveBase(result, "addPincode");
      return;
    }

    public void updatePincode(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable) throws org.apache.thrift.TException
    {
      send_updatePincode(providerId, pincode, exp, cod, otgAvailable);
      recv_updatePincode();
    }

    public void send_updatePincode(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable) throws org.apache.thrift.TException
    {
      updatePincode_args args = new updatePincode_args();
      args.setProviderId(providerId);
      args.setPincode(pincode);
      args.setExp(exp);
      args.setCod(cod);
      args.setOtgAvailable(otgAvailable);
      sendBase("updatePincode", args);
    }

    public void recv_updatePincode() throws org.apache.thrift.TException
    {
      updatePincode_result result = new updatePincode_result();
      receiveBase(result, "updatePincode");
      return;
    }

    public boolean addNewAwbs(long providerId, boolean cod, List<String> awbs, long awbUsedFor) throws org.apache.thrift.TException
    {
      send_addNewAwbs(providerId, cod, awbs, awbUsedFor);
      return recv_addNewAwbs();
    }

    public void send_addNewAwbs(long providerId, boolean cod, List<String> awbs, long awbUsedFor) throws org.apache.thrift.TException
    {
      addNewAwbs_args args = new addNewAwbs_args();
      args.setProviderId(providerId);
      args.setCod(cod);
      args.setAwbs(awbs);
      args.setAwbUsedFor(awbUsedFor);
      sendBase("addNewAwbs", args);
    }

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

    public void runLogisticsLocationInfoUpdate(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate) throws org.apache.thrift.TException
    {
      send_runLogisticsLocationInfoUpdate(logisticsLocationInfoList, runCompleteUpdate);
      recv_runLogisticsLocationInfoUpdate();
    }

    public void send_runLogisticsLocationInfoUpdate(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate) throws org.apache.thrift.TException
    {
      runLogisticsLocationInfoUpdate_args args = new runLogisticsLocationInfoUpdate_args();
      args.setLogisticsLocationInfoList(logisticsLocationInfoList);
      args.setRunCompleteUpdate(runCompleteUpdate);
      sendBase("runLogisticsLocationInfoUpdate", args);
    }

    public void recv_runLogisticsLocationInfoUpdate() throws org.apache.thrift.TException
    {
      runLogisticsLocationInfoUpdate_result result = new runLogisticsLocationInfoUpdate_result();
      receiveBase(result, "runLogisticsLocationInfoUpdate");
      return;
    }

    public long adjustDeliveryDays(long startDate, long days) throws org.apache.thrift.TException
    {
      send_adjustDeliveryDays(startDate, days);
      return recv_adjustDeliveryDays();
    }

    public void send_adjustDeliveryDays(long startDate, long days) throws org.apache.thrift.TException
    {
      adjustDeliveryDays_args args = new adjustDeliveryDays_args();
      args.setStartDate(startDate);
      args.setDays(days);
      sendBase("adjustDeliveryDays", args);
    }

    public long recv_adjustDeliveryDays() throws org.apache.thrift.TException
    {
      adjustDeliveryDays_result result = new adjustDeliveryDays_result();
      receiveBase(result, "adjustDeliveryDays");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "adjustDeliveryDays failed: unknown result");
    }

    public long getFirstDeliveryEstimateForWhLocation(String pincode, long whLocation) throws org.apache.thrift.TException
    {
      send_getFirstDeliveryEstimateForWhLocation(pincode, whLocation);
      return recv_getFirstDeliveryEstimateForWhLocation();
    }

    public void send_getFirstDeliveryEstimateForWhLocation(String pincode, long whLocation) throws org.apache.thrift.TException
    {
      getFirstDeliveryEstimateForWhLocation_args args = new getFirstDeliveryEstimateForWhLocation_args();
      args.setPincode(pincode);
      args.setWhLocation(whLocation);
      sendBase("getFirstDeliveryEstimateForWhLocation", args);
    }

    public long recv_getFirstDeliveryEstimateForWhLocation() throws org.apache.thrift.TException
    {
      getFirstDeliveryEstimateForWhLocation_result result = new getFirstDeliveryEstimateForWhLocation_result();
      receiveBase(result, "getFirstDeliveryEstimateForWhLocation");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getFirstDeliveryEstimateForWhLocation failed: unknown result");
    }

    public String getNewEmptyAwb(long providerId, DeliveryType type, long orderQuantity) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getNewEmptyAwb(providerId, type, orderQuantity);
      return recv_getNewEmptyAwb();
    }

    public void send_getNewEmptyAwb(long providerId, DeliveryType type, long orderQuantity) throws org.apache.thrift.TException
    {
      getNewEmptyAwb_args args = new getNewEmptyAwb_args();
      args.setProviderId(providerId);
      args.setType(type);
      args.setOrderQuantity(orderQuantity);
      sendBase("getNewEmptyAwb", args);
    }

    public String recv_getNewEmptyAwb() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getNewEmptyAwb_result result = new getNewEmptyAwb_result();
      receiveBase(result, "getNewEmptyAwb");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getNewEmptyAwb failed: unknown result");
    }

    public Map<String,String> getProviderLimitDetailsForPincode(long providerId, String pincode) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getProviderLimitDetailsForPincode(providerId, pincode);
      return recv_getProviderLimitDetailsForPincode();
    }

    public void send_getProviderLimitDetailsForPincode(long providerId, String pincode) throws org.apache.thrift.TException
    {
      getProviderLimitDetailsForPincode_args args = new getProviderLimitDetailsForPincode_args();
      args.setProviderId(providerId);
      args.setPincode(pincode);
      sendBase("getProviderLimitDetailsForPincode", args);
    }

    public Map<String,String> recv_getProviderLimitDetailsForPincode() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getProviderLimitDetailsForPincode_result result = new getProviderLimitDetailsForPincode_result();
      receiveBase(result, "getProviderLimitDetailsForPincode");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getProviderLimitDetailsForPincode failed: unknown result");
    }

    public Map<Long,Map<Long,LocationInfo>> getLocationInfoMap(String destPincode, List<Long> price) throws org.apache.thrift.TException
    {
      send_getLocationInfoMap(destPincode, price);
      return recv_getLocationInfoMap();
    }

    public void send_getLocationInfoMap(String destPincode, List<Long> price) throws org.apache.thrift.TException
    {
      getLocationInfoMap_args args = new getLocationInfoMap_args();
      args.setDestPincode(destPincode);
      args.setPrice(price);
      sendBase("getLocationInfoMap", args);
    }

    public Map<Long,Map<Long,LocationInfo>> recv_getLocationInfoMap() throws org.apache.thrift.TException
    {
      getLocationInfoMap_result result = new getLocationInfoMap_result();
      receiveBase(result, "getLocationInfoMap");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLocationInfoMap failed: unknown result");
    }

    public DeliveryEstimateAndCosting getCostingAndDeliveryEstimateForPincode(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn) throws LogisticsServiceException, org.apache.thrift.TException
    {
      send_getCostingAndDeliveryEstimateForPincode(pincode, transactionAmount, isCod, weight, billingWarehouseId, isCompleteTxn);
      return recv_getCostingAndDeliveryEstimateForPincode();
    }

    public void send_getCostingAndDeliveryEstimateForPincode(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn) throws org.apache.thrift.TException
    {
      getCostingAndDeliveryEstimateForPincode_args args = new getCostingAndDeliveryEstimateForPincode_args();
      args.setPincode(pincode);
      args.setTransactionAmount(transactionAmount);
      args.setIsCod(isCod);
      args.setWeight(weight);
      args.setBillingWarehouseId(billingWarehouseId);
      args.setIsCompleteTxn(isCompleteTxn);
      sendBase("getCostingAndDeliveryEstimateForPincode", args);
    }

    public DeliveryEstimateAndCosting recv_getCostingAndDeliveryEstimateForPincode() throws LogisticsServiceException, org.apache.thrift.TException
    {
      getCostingAndDeliveryEstimateForPincode_result result = new getCostingAndDeliveryEstimateForPincode_result();
      receiveBase(result, "getCostingAndDeliveryEstimateForPincode");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.se != null) {
        throw result.se;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getCostingAndDeliveryEstimateForPincode failed: unknown result");
    }

  }
  public static class AsyncClient extends in.shop2020.generic.GenericService.AsyncClient implements AsyncIface {
    public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
      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 getProvider(long providerId, org.apache.thrift.async.AsyncMethodCallback<getProvider_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getProvider_call method_call = new getProvider_call(providerId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

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

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

      public Provider getResult() throws LogisticsServiceException, 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_getProvider();
      }
    }

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

    public static class getAllProviders_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllProviders_call(org.apache.thrift.async.AsyncMethodCallback<getAllProviders_call> 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("getAllProviders", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllProviders_args args = new getAllProviders_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<Provider> getResult() throws LogisticsServiceException, 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_getAllProviders();
      }
    }

    public void getLogisticsEstimation(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getLogisticsEstimation_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getLogisticsEstimation_call method_call = new getLogisticsEstimation_call(itemId, destination_pin, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getLogisticsEstimation_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long itemId;
      private String destination_pin;
      private DeliveryType type;
      public getLogisticsEstimation_call(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getLogisticsEstimation_call> 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.itemId = itemId;
        this.destination_pin = destination_pin;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLogisticsEstimation", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getLogisticsEstimation_args args = new getLogisticsEstimation_args();
        args.setItemId(itemId);
        args.setDestination_pin(destination_pin);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LogisticsInfo getResult() throws LogisticsServiceException, 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_getLogisticsEstimation();
      }
    }

    public void getLogisticsEstimationForStore(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getLogisticsEstimationForStore_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getLogisticsEstimationForStore_call method_call = new getLogisticsEstimationForStore_call(itemId, destination_pin, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getLogisticsEstimationForStore_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long itemId;
      private String destination_pin;
      private DeliveryType type;
      public getLogisticsEstimationForStore_call(long itemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getLogisticsEstimationForStore_call> 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.itemId = itemId;
        this.destination_pin = destination_pin;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLogisticsEstimationForStore", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getLogisticsEstimationForStore_args args = new getLogisticsEstimationForStore_args();
        args.setItemId(itemId);
        args.setDestination_pin(destination_pin);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LogisticsInfo getResult() throws LogisticsServiceException, 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_getLogisticsEstimationForStore();
      }
    }

    public void getLogisticsInfo(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp, org.apache.thrift.async.AsyncMethodCallback<getLogisticsInfo_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getLogisticsInfo_call method_call = new getLogisticsInfo_call(destination_pincode, item_id, type, pickUp, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getLogisticsInfo_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String destination_pincode;
      private long item_id;
      private DeliveryType type;
      private PickUpType pickUp;
      public getLogisticsInfo_call(String destination_pincode, long item_id, DeliveryType type, PickUpType pickUp, org.apache.thrift.async.AsyncMethodCallback<getLogisticsInfo_call> 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.destination_pincode = destination_pincode;
        this.item_id = item_id;
        this.type = type;
        this.pickUp = pickUp;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLogisticsInfo", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getLogisticsInfo_args args = new getLogisticsInfo_args();
        args.setDestination_pincode(destination_pincode);
        args.setItem_id(item_id);
        args.setType(type);
        args.setPickUp(pickUp);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LogisticsInfo getResult() throws LogisticsServiceException, 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_getLogisticsInfo();
      }
    }

    public void getEmptyAWB(long providerId, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getEmptyAWB_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getEmptyAWB_call method_call = new getEmptyAWB_call(providerId, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getEmptyAWB_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private DeliveryType type;
      public getEmptyAWB_call(long providerId, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getEmptyAWB_call> 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.providerId = providerId;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getEmptyAWB", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getEmptyAWB_args args = new getEmptyAWB_args();
        args.setProviderId(providerId);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void getShipmentInfo(String awbNumber, long providerId, org.apache.thrift.async.AsyncMethodCallback<getShipmentInfo_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getShipmentInfo_call method_call = new getShipmentInfo_call(awbNumber, providerId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getShipmentInfo_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String awbNumber;
      private long providerId;
      public getShipmentInfo_call(String awbNumber, long providerId, org.apache.thrift.async.AsyncMethodCallback<getShipmentInfo_call> 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.awbNumber = awbNumber;
        this.providerId = providerId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getShipmentInfo", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getShipmentInfo_args args = new getShipmentInfo_args();
        args.setAwbNumber(awbNumber);
        args.setProviderId(providerId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AwbUpdate> getResult() throws LogisticsServiceException, 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_getShipmentInfo();
      }
    }

    public void storeShipmentInfo(AwbUpdate update, org.apache.thrift.async.AsyncMethodCallback<storeShipmentInfo_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      storeShipmentInfo_call method_call = new storeShipmentInfo_call(update, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

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

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

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

    public void getDestinationCode(long providerId, String pinCode, org.apache.thrift.async.AsyncMethodCallback<getDestinationCode_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getDestinationCode_call method_call = new getDestinationCode_call(providerId, pinCode, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getDestinationCode_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private String pinCode;
      public getDestinationCode_call(long providerId, String pinCode, org.apache.thrift.async.AsyncMethodCallback<getDestinationCode_call> 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.providerId = providerId;
        this.pinCode = pinCode;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getDestinationCode", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getDestinationCode_args args = new getDestinationCode_args();
        args.setProviderId(providerId);
        args.setPinCode(pinCode);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void getFreeAwbCount(long providerId, String type, org.apache.thrift.async.AsyncMethodCallback<getFreeAwbCount_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getFreeAwbCount_call method_call = new getFreeAwbCount_call(providerId, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getFreeAwbCount_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private String type;
      public getFreeAwbCount_call(long providerId, String type, org.apache.thrift.async.AsyncMethodCallback<getFreeAwbCount_call> 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.providerId = providerId;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getFreeAwbCount", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getFreeAwbCount_args args = new getFreeAwbCount_args();
        args.setProviderId(providerId);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public long 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_getFreeAwbCount();
      }
    }

    public void getHolidays(long fromDate, long toDate, org.apache.thrift.async.AsyncMethodCallback<getHolidays_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getHolidays_call method_call = new getHolidays_call(fromDate, toDate, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getHolidays_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long fromDate;
      private long toDate;
      public getHolidays_call(long fromDate, long toDate, org.apache.thrift.async.AsyncMethodCallback<getHolidays_call> 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.fromDate = fromDate;
        this.toDate = toDate;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getHolidays", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getHolidays_args args = new getHolidays_args();
        args.setFromDate(fromDate);
        args.setToDate(toDate);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<Long> 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_getHolidays();
      }
    }

    public void getEntityLogisticsEstimation(long catalogItemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getEntityLogisticsEstimation_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getEntityLogisticsEstimation_call method_call = new getEntityLogisticsEstimation_call(catalogItemId, destination_pin, type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getEntityLogisticsEstimation_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long catalogItemId;
      private String destination_pin;
      private DeliveryType type;
      public getEntityLogisticsEstimation_call(long catalogItemId, String destination_pin, DeliveryType type, org.apache.thrift.async.AsyncMethodCallback<getEntityLogisticsEstimation_call> 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.catalogItemId = catalogItemId;
        this.destination_pin = destination_pin;
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getEntityLogisticsEstimation", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getEntityLogisticsEstimation_args args = new getEntityLogisticsEstimation_args();
        args.setCatalogItemId(catalogItemId);
        args.setDestination_pin(destination_pin);
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<ItemText> getResult() throws LogisticsServiceException, 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_getEntityLogisticsEstimation();
      }
    }

    public void getProviderForPickupType(long pickUp, org.apache.thrift.async.AsyncMethodCallback<getProviderForPickupType_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getProviderForPickupType_call method_call = new getProviderForPickupType_call(pickUp, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

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

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

      public long 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_getProviderForPickupType();
      }
    }

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

    public static class getAllPickupStores_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllPickupStores_call(org.apache.thrift.async.AsyncMethodCallback<getAllPickupStores_call> 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("getAllPickupStores", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllPickupStores_args args = new getAllPickupStores_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<PickupStore> 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_getAllPickupStores();
      }
    }

    public void getPickupStore(long storeId, org.apache.thrift.async.AsyncMethodCallback<getPickupStore_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getPickupStore_call method_call = new getPickupStore_call(storeId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

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

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

      public PickupStore 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_getPickupStore();
      }
    }

    public void getPickupStoreByHotspotId(String hotspotId, org.apache.thrift.async.AsyncMethodCallback<getPickupStoreByHotspotId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getPickupStoreByHotspotId_call method_call = new getPickupStoreByHotspotId_call(hotspotId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

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

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

      public PickupStore 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_getPickupStoreByHotspotId();
      }
    }

    public void addPincode(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<addPincode_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addPincode_call method_call = new addPincode_call(providerId, pincode, destCode, exp, cod, stationType, otgAvailable, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addPincode_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private String pincode;
      private String destCode;
      private boolean exp;
      private boolean cod;
      private int stationType;
      private boolean otgAvailable;
      public addPincode_call(long providerId, String pincode, String destCode, boolean exp, boolean cod, int stationType, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<addPincode_call> 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.providerId = providerId;
        this.pincode = pincode;
        this.destCode = destCode;
        this.exp = exp;
        this.cod = cod;
        this.stationType = stationType;
        this.otgAvailable = otgAvailable;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addPincode", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addPincode_args args = new addPincode_args();
        args.setProviderId(providerId);
        args.setPincode(pincode);
        args.setDestCode(destCode);
        args.setExp(exp);
        args.setCod(cod);
        args.setStationType(stationType);
        args.setOtgAvailable(otgAvailable);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void updatePincode(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<updatePincode_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updatePincode_call method_call = new updatePincode_call(providerId, pincode, exp, cod, otgAvailable, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updatePincode_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private String pincode;
      private boolean exp;
      private boolean cod;
      private boolean otgAvailable;
      public updatePincode_call(long providerId, String pincode, boolean exp, boolean cod, boolean otgAvailable, org.apache.thrift.async.AsyncMethodCallback<updatePincode_call> 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.providerId = providerId;
        this.pincode = pincode;
        this.exp = exp;
        this.cod = cod;
        this.otgAvailable = otgAvailable;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updatePincode", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updatePincode_args args = new updatePincode_args();
        args.setProviderId(providerId);
        args.setPincode(pincode);
        args.setExp(exp);
        args.setCod(cod);
        args.setOtgAvailable(otgAvailable);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void addNewAwbs(long providerId, boolean cod, List<String> awbs, long awbUsedFor, org.apache.thrift.async.AsyncMethodCallback<addNewAwbs_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addNewAwbs_call method_call = new addNewAwbs_call(providerId, cod, awbs, awbUsedFor, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addNewAwbs_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private boolean cod;
      private List<String> awbs;
      private long awbUsedFor;
      public addNewAwbs_call(long providerId, boolean cod, List<String> awbs, long awbUsedFor, org.apache.thrift.async.AsyncMethodCallback<addNewAwbs_call> 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.providerId = providerId;
        this.cod = cod;
        this.awbs = awbs;
        this.awbUsedFor = awbUsedFor;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addNewAwbs", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addNewAwbs_args args = new addNewAwbs_args();
        args.setProviderId(providerId);
        args.setCod(cod);
        args.setAwbs(awbs);
        args.setAwbUsedFor(awbUsedFor);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void runLogisticsLocationInfoUpdate(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate, org.apache.thrift.async.AsyncMethodCallback<runLogisticsLocationInfoUpdate_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      runLogisticsLocationInfoUpdate_call method_call = new runLogisticsLocationInfoUpdate_call(logisticsLocationInfoList, runCompleteUpdate, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class runLogisticsLocationInfoUpdate_call extends org.apache.thrift.async.TAsyncMethodCall {
      private List<LogisticsLocationInfo> logisticsLocationInfoList;
      private boolean runCompleteUpdate;
      public runLogisticsLocationInfoUpdate_call(List<LogisticsLocationInfo> logisticsLocationInfoList, boolean runCompleteUpdate, org.apache.thrift.async.AsyncMethodCallback<runLogisticsLocationInfoUpdate_call> 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.logisticsLocationInfoList = logisticsLocationInfoList;
        this.runCompleteUpdate = runCompleteUpdate;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("runLogisticsLocationInfoUpdate", org.apache.thrift.protocol.TMessageType.CALL, 0));
        runLogisticsLocationInfoUpdate_args args = new runLogisticsLocationInfoUpdate_args();
        args.setLogisticsLocationInfoList(logisticsLocationInfoList);
        args.setRunCompleteUpdate(runCompleteUpdate);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void adjustDeliveryDays(long startDate, long days, org.apache.thrift.async.AsyncMethodCallback<adjustDeliveryDays_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      adjustDeliveryDays_call method_call = new adjustDeliveryDays_call(startDate, days, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class adjustDeliveryDays_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long startDate;
      private long days;
      public adjustDeliveryDays_call(long startDate, long days, org.apache.thrift.async.AsyncMethodCallback<adjustDeliveryDays_call> 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.startDate = startDate;
        this.days = days;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("adjustDeliveryDays", org.apache.thrift.protocol.TMessageType.CALL, 0));
        adjustDeliveryDays_args args = new adjustDeliveryDays_args();
        args.setStartDate(startDate);
        args.setDays(days);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public long 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_adjustDeliveryDays();
      }
    }

    public void getFirstDeliveryEstimateForWhLocation(String pincode, long whLocation, org.apache.thrift.async.AsyncMethodCallback<getFirstDeliveryEstimateForWhLocation_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getFirstDeliveryEstimateForWhLocation_call method_call = new getFirstDeliveryEstimateForWhLocation_call(pincode, whLocation, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getFirstDeliveryEstimateForWhLocation_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String pincode;
      private long whLocation;
      public getFirstDeliveryEstimateForWhLocation_call(String pincode, long whLocation, org.apache.thrift.async.AsyncMethodCallback<getFirstDeliveryEstimateForWhLocation_call> 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.pincode = pincode;
        this.whLocation = whLocation;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getFirstDeliveryEstimateForWhLocation", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getFirstDeliveryEstimateForWhLocation_args args = new getFirstDeliveryEstimateForWhLocation_args();
        args.setPincode(pincode);
        args.setWhLocation(whLocation);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public long 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_getFirstDeliveryEstimateForWhLocation();
      }
    }

    public void getNewEmptyAwb(long providerId, DeliveryType type, long orderQuantity, org.apache.thrift.async.AsyncMethodCallback<getNewEmptyAwb_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getNewEmptyAwb_call method_call = new getNewEmptyAwb_call(providerId, type, orderQuantity, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getNewEmptyAwb_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private DeliveryType type;
      private long orderQuantity;
      public getNewEmptyAwb_call(long providerId, DeliveryType type, long orderQuantity, org.apache.thrift.async.AsyncMethodCallback<getNewEmptyAwb_call> 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.providerId = providerId;
        this.type = type;
        this.orderQuantity = orderQuantity;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getNewEmptyAwb", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getNewEmptyAwb_args args = new getNewEmptyAwb_args();
        args.setProviderId(providerId);
        args.setType(type);
        args.setOrderQuantity(orderQuantity);
        args.write(prot);
        prot.writeMessageEnd();
      }

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

    public void getProviderLimitDetailsForPincode(long providerId, String pincode, org.apache.thrift.async.AsyncMethodCallback<getProviderLimitDetailsForPincode_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getProviderLimitDetailsForPincode_call method_call = new getProviderLimitDetailsForPincode_call(providerId, pincode, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getProviderLimitDetailsForPincode_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long providerId;
      private String pincode;
      public getProviderLimitDetailsForPincode_call(long providerId, String pincode, org.apache.thrift.async.AsyncMethodCallback<getProviderLimitDetailsForPincode_call> 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.providerId = providerId;
        this.pincode = pincode;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getProviderLimitDetailsForPincode", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getProviderLimitDetailsForPincode_args args = new getProviderLimitDetailsForPincode_args();
        args.setProviderId(providerId);
        args.setPincode(pincode);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map<String,String> getResult() throws LogisticsServiceException, 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_getProviderLimitDetailsForPincode();
      }
    }

    public void getLocationInfoMap(String destPincode, List<Long> price, org.apache.thrift.async.AsyncMethodCallback<getLocationInfoMap_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getLocationInfoMap_call method_call = new getLocationInfoMap_call(destPincode, price, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getLocationInfoMap_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String destPincode;
      private List<Long> price;
      public getLocationInfoMap_call(String destPincode, List<Long> price, org.apache.thrift.async.AsyncMethodCallback<getLocationInfoMap_call> 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.destPincode = destPincode;
        this.price = price;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLocationInfoMap", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getLocationInfoMap_args args = new getLocationInfoMap_args();
        args.setDestPincode(destPincode);
        args.setPrice(price);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Map<Long,Map<Long,LocationInfo>> 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_getLocationInfoMap();
      }
    }

    public void getCostingAndDeliveryEstimateForPincode(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn, org.apache.thrift.async.AsyncMethodCallback<getCostingAndDeliveryEstimateForPincode_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getCostingAndDeliveryEstimateForPincode_call method_call = new getCostingAndDeliveryEstimateForPincode_call(pincode, transactionAmount, isCod, weight, billingWarehouseId, isCompleteTxn, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getCostingAndDeliveryEstimateForPincode_call extends org.apache.thrift.async.TAsyncMethodCall {
      private String pincode;
      private double transactionAmount;
      private boolean isCod;
      private double weight;
      private long billingWarehouseId;
      private boolean isCompleteTxn;
      public getCostingAndDeliveryEstimateForPincode_call(String pincode, double transactionAmount, boolean isCod, double weight, long billingWarehouseId, boolean isCompleteTxn, org.apache.thrift.async.AsyncMethodCallback<getCostingAndDeliveryEstimateForPincode_call> 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.pincode = pincode;
        this.transactionAmount = transactionAmount;
        this.isCod = isCod;
        this.weight = weight;
        this.billingWarehouseId = billingWarehouseId;
        this.isCompleteTxn = isCompleteTxn;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getCostingAndDeliveryEstimateForPincode", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getCostingAndDeliveryEstimateForPincode_args args = new getCostingAndDeliveryEstimateForPincode_args();
        args.setPincode(pincode);
        args.setTransactionAmount(transactionAmount);
        args.setIsCod(isCod);
        args.setWeight(weight);
        args.setBillingWarehouseId(billingWarehouseId);
        args.setIsCompleteTxn(isCompleteTxn);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public DeliveryEstimateAndCosting getResult() throws LogisticsServiceException, 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_getCostingAndDeliveryEstimateForPincode();
      }
    }

  }

  public static class Processor<I extends Iface> extends in.shop2020.generic.GenericService.Processor implements org.apache.thrift.TProcessor {
    private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
    public Processor(I iface) {
      super(iface, getProcessMap(new HashMap<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
    }

    protected Processor(I iface, Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends Iface> Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> getProcessMap(Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      processMap.put("getProvider", new getProvider());
      processMap.put("getAllProviders", new getAllProviders());
      processMap.put("getLogisticsEstimation", new getLogisticsEstimation());
      processMap.put("getLogisticsEstimationForStore", new getLogisticsEstimationForStore());
      processMap.put("getLogisticsInfo", new getLogisticsInfo());
      processMap.put("getEmptyAWB", new getEmptyAWB());
      processMap.put("getShipmentInfo", new getShipmentInfo());
      processMap.put("storeShipmentInfo", new storeShipmentInfo());
      processMap.put("getDestinationCode", new getDestinationCode());
      processMap.put("getFreeAwbCount", new getFreeAwbCount());
      processMap.put("getHolidays", new getHolidays());
      processMap.put("getEntityLogisticsEstimation", new getEntityLogisticsEstimation());
      processMap.put("getProviderForPickupType", new getProviderForPickupType());
      processMap.put("getAllPickupStores", new getAllPickupStores());
      processMap.put("getPickupStore", new getPickupStore());
      processMap.put("getPickupStoreByHotspotId", new getPickupStoreByHotspotId());
      processMap.put("addPincode", new addPincode());
      processMap.put("updatePincode", new updatePincode());
      processMap.put("addNewAwbs", new addNewAwbs());
      processMap.put("runLogisticsLocationInfoUpdate", new runLogisticsLocationInfoUpdate());
      processMap.put("adjustDeliveryDays", new adjustDeliveryDays());
      processMap.put("getFirstDeliveryEstimateForWhLocation", new getFirstDeliveryEstimateForWhLocation());
      processMap.put("getNewEmptyAwb", new getNewEmptyAwb());
      processMap.put("getProviderLimitDetailsForPincode", new getProviderLimitDetailsForPincode());
      processMap.put("getLocationInfoMap", new getLocationInfoMap());
      processMap.put("getCostingAndDeliveryEstimateForPincode", new getCostingAndDeliveryEstimateForPincode());
      return processMap;
    }

    private static class getProvider<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getProvider_args> {
      public getProvider() {
        super("getProvider");
      }

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

      protected getProvider_result getResult(I iface, getProvider_args args) throws org.apache.thrift.TException {
        getProvider_result result = new getProvider_result();
        try {
          result.success = iface.getProvider(args.providerId);
        } catch (LogisticsServiceException lse) {
          result.lse = lse;
        }
        return result;
      }
    }

    private static class getAllProviders<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllProviders_args> {
      public getAllProviders() {
        super("getAllProviders");
      }

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

      protected getAllProviders_result getResult(I iface, getAllProviders_args args) throws org.apache.thrift.TException {
        getAllProviders_result result = new getAllProviders_result();
        try {
          result.success = iface.getAllProviders();
        } catch (LogisticsServiceException lse) {
          result.lse = lse;
        }
        return result;
      }
    }

    private static class getLogisticsEstimation<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getLogisticsEstimation_args> {
      public getLogisticsEstimation() {
        super("getLogisticsEstimation");
      }

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

      protected getLogisticsEstimation_result getResult(I iface, getLogisticsEstimation_args args) throws org.apache.thrift.TException {
        getLogisticsEstimation_result result = new getLogisticsEstimation_result();
        try {
          result.success = iface.getLogisticsEstimation(args.itemId, args.destination_pin, args.type);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getLogisticsEstimationForStore<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getLogisticsEstimationForStore_args> {
      public getLogisticsEstimationForStore() {
        super("getLogisticsEstimationForStore");
      }

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

      protected getLogisticsEstimationForStore_result getResult(I iface, getLogisticsEstimationForStore_args args) throws org.apache.thrift.TException {
        getLogisticsEstimationForStore_result result = new getLogisticsEstimationForStore_result();
        try {
          result.success = iface.getLogisticsEstimationForStore(args.itemId, args.destination_pin, args.type);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getLogisticsInfo<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getLogisticsInfo_args> {
      public getLogisticsInfo() {
        super("getLogisticsInfo");
      }

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

      protected getLogisticsInfo_result getResult(I iface, getLogisticsInfo_args args) throws org.apache.thrift.TException {
        getLogisticsInfo_result result = new getLogisticsInfo_result();
        try {
          result.success = iface.getLogisticsInfo(args.destination_pincode, args.item_id, args.type, args.pickUp);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getEmptyAWB<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getEmptyAWB_args> {
      public getEmptyAWB() {
        super("getEmptyAWB");
      }

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

      protected getEmptyAWB_result getResult(I iface, getEmptyAWB_args args) throws org.apache.thrift.TException {
        getEmptyAWB_result result = new getEmptyAWB_result();
        try {
          result.success = iface.getEmptyAWB(args.providerId, args.type);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getShipmentInfo<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getShipmentInfo_args> {
      public getShipmentInfo() {
        super("getShipmentInfo");
      }

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

      protected getShipmentInfo_result getResult(I iface, getShipmentInfo_args args) throws org.apache.thrift.TException {
        getShipmentInfo_result result = new getShipmentInfo_result();
        try {
          result.success = iface.getShipmentInfo(args.awbNumber, args.providerId);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class storeShipmentInfo<I extends Iface> extends org.apache.thrift.ProcessFunction<I, storeShipmentInfo_args> {
      public storeShipmentInfo() {
        super("storeShipmentInfo");
      }

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

      protected storeShipmentInfo_result getResult(I iface, storeShipmentInfo_args args) throws org.apache.thrift.TException {
        storeShipmentInfo_result result = new storeShipmentInfo_result();
        try {
          iface.storeShipmentInfo(args.update);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getDestinationCode<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getDestinationCode_args> {
      public getDestinationCode() {
        super("getDestinationCode");
      }

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

      protected getDestinationCode_result getResult(I iface, getDestinationCode_args args) throws org.apache.thrift.TException {
        getDestinationCode_result result = new getDestinationCode_result();
        try {
          result.success = iface.getDestinationCode(args.providerId, args.pinCode);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getFreeAwbCount<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getFreeAwbCount_args> {
      public getFreeAwbCount() {
        super("getFreeAwbCount");
      }

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

      protected getFreeAwbCount_result getResult(I iface, getFreeAwbCount_args args) throws org.apache.thrift.TException {
        getFreeAwbCount_result result = new getFreeAwbCount_result();
        result.success = iface.getFreeAwbCount(args.providerId, args.type);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    private static class getHolidays<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getHolidays_args> {
      public getHolidays() {
        super("getHolidays");
      }

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

      protected getHolidays_result getResult(I iface, getHolidays_args args) throws org.apache.thrift.TException {
        getHolidays_result result = new getHolidays_result();
        result.success = iface.getHolidays(args.fromDate, args.toDate);
        return result;
      }
    }

    private static class getEntityLogisticsEstimation<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getEntityLogisticsEstimation_args> {
      public getEntityLogisticsEstimation() {
        super("getEntityLogisticsEstimation");
      }

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

      protected getEntityLogisticsEstimation_result getResult(I iface, getEntityLogisticsEstimation_args args) throws org.apache.thrift.TException {
        getEntityLogisticsEstimation_result result = new getEntityLogisticsEstimation_result();
        try {
          result.success = iface.getEntityLogisticsEstimation(args.catalogItemId, args.destination_pin, args.type);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getProviderForPickupType<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getProviderForPickupType_args> {
      public getProviderForPickupType() {
        super("getProviderForPickupType");
      }

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

      protected getProviderForPickupType_result getResult(I iface, getProviderForPickupType_args args) throws org.apache.thrift.TException {
        getProviderForPickupType_result result = new getProviderForPickupType_result();
        result.success = iface.getProviderForPickupType(args.pickUp);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    private static class getAllPickupStores<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllPickupStores_args> {
      public getAllPickupStores() {
        super("getAllPickupStores");
      }

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

      protected getAllPickupStores_result getResult(I iface, getAllPickupStores_args args) throws org.apache.thrift.TException {
        getAllPickupStores_result result = new getAllPickupStores_result();
        result.success = iface.getAllPickupStores();
        return result;
      }
    }

    private static class getPickupStore<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getPickupStore_args> {
      public getPickupStore() {
        super("getPickupStore");
      }

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

      protected getPickupStore_result getResult(I iface, getPickupStore_args args) throws org.apache.thrift.TException {
        getPickupStore_result result = new getPickupStore_result();
        result.success = iface.getPickupStore(args.storeId);
        return result;
      }
    }

    private static class getPickupStoreByHotspotId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getPickupStoreByHotspotId_args> {
      public getPickupStoreByHotspotId() {
        super("getPickupStoreByHotspotId");
      }

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

      protected getPickupStoreByHotspotId_result getResult(I iface, getPickupStoreByHotspotId_args args) throws org.apache.thrift.TException {
        getPickupStoreByHotspotId_result result = new getPickupStoreByHotspotId_result();
        result.success = iface.getPickupStoreByHotspotId(args.hotspotId);
        return result;
      }
    }

    private static class addPincode<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addPincode_args> {
      public addPincode() {
        super("addPincode");
      }

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

      protected addPincode_result getResult(I iface, addPincode_args args) throws org.apache.thrift.TException {
        addPincode_result result = new addPincode_result();
        iface.addPincode(args.providerId, args.pincode, args.destCode, args.exp, args.cod, args.stationType, args.otgAvailable);
        return result;
      }
    }

    private static class updatePincode<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updatePincode_args> {
      public updatePincode() {
        super("updatePincode");
      }

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

      protected updatePincode_result getResult(I iface, updatePincode_args args) throws org.apache.thrift.TException {
        updatePincode_result result = new updatePincode_result();
        iface.updatePincode(args.providerId, args.pincode, args.exp, args.cod, args.otgAvailable);
        return result;
      }
    }

    private static class addNewAwbs<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addNewAwbs_args> {
      public addNewAwbs() {
        super("addNewAwbs");
      }

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

      protected addNewAwbs_result getResult(I iface, addNewAwbs_args args) throws org.apache.thrift.TException {
        addNewAwbs_result result = new addNewAwbs_result();
        result.success = iface.addNewAwbs(args.providerId, args.cod, args.awbs, args.awbUsedFor);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    private static class runLogisticsLocationInfoUpdate<I extends Iface> extends org.apache.thrift.ProcessFunction<I, runLogisticsLocationInfoUpdate_args> {
      public runLogisticsLocationInfoUpdate() {
        super("runLogisticsLocationInfoUpdate");
      }

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

      protected runLogisticsLocationInfoUpdate_result getResult(I iface, runLogisticsLocationInfoUpdate_args args) throws org.apache.thrift.TException {
        runLogisticsLocationInfoUpdate_result result = new runLogisticsLocationInfoUpdate_result();
        iface.runLogisticsLocationInfoUpdate(args.logisticsLocationInfoList, args.runCompleteUpdate);
        return result;
      }
    }

    private static class adjustDeliveryDays<I extends Iface> extends org.apache.thrift.ProcessFunction<I, adjustDeliveryDays_args> {
      public adjustDeliveryDays() {
        super("adjustDeliveryDays");
      }

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

      protected adjustDeliveryDays_result getResult(I iface, adjustDeliveryDays_args args) throws org.apache.thrift.TException {
        adjustDeliveryDays_result result = new adjustDeliveryDays_result();
        result.success = iface.adjustDeliveryDays(args.startDate, args.days);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    private static class getFirstDeliveryEstimateForWhLocation<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getFirstDeliveryEstimateForWhLocation_args> {
      public getFirstDeliveryEstimateForWhLocation() {
        super("getFirstDeliveryEstimateForWhLocation");
      }

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

      protected getFirstDeliveryEstimateForWhLocation_result getResult(I iface, getFirstDeliveryEstimateForWhLocation_args args) throws org.apache.thrift.TException {
        getFirstDeliveryEstimateForWhLocation_result result = new getFirstDeliveryEstimateForWhLocation_result();
        result.success = iface.getFirstDeliveryEstimateForWhLocation(args.pincode, args.whLocation);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    private static class getNewEmptyAwb<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getNewEmptyAwb_args> {
      public getNewEmptyAwb() {
        super("getNewEmptyAwb");
      }

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

      protected getNewEmptyAwb_result getResult(I iface, getNewEmptyAwb_args args) throws org.apache.thrift.TException {
        getNewEmptyAwb_result result = new getNewEmptyAwb_result();
        try {
          result.success = iface.getNewEmptyAwb(args.providerId, args.type, args.orderQuantity);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getProviderLimitDetailsForPincode<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getProviderLimitDetailsForPincode_args> {
      public getProviderLimitDetailsForPincode() {
        super("getProviderLimitDetailsForPincode");
      }

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

      protected getProviderLimitDetailsForPincode_result getResult(I iface, getProviderLimitDetailsForPincode_args args) throws org.apache.thrift.TException {
        getProviderLimitDetailsForPincode_result result = new getProviderLimitDetailsForPincode_result();
        try {
          result.success = iface.getProviderLimitDetailsForPincode(args.providerId, args.pincode);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

    private static class getLocationInfoMap<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getLocationInfoMap_args> {
      public getLocationInfoMap() {
        super("getLocationInfoMap");
      }

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

      protected getLocationInfoMap_result getResult(I iface, getLocationInfoMap_args args) throws org.apache.thrift.TException {
        getLocationInfoMap_result result = new getLocationInfoMap_result();
        result.success = iface.getLocationInfoMap(args.destPincode, args.price);
        return result;
      }
    }

    private static class getCostingAndDeliveryEstimateForPincode<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getCostingAndDeliveryEstimateForPincode_args> {
      public getCostingAndDeliveryEstimateForPincode() {
        super("getCostingAndDeliveryEstimateForPincode");
      }

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

      protected getCostingAndDeliveryEstimateForPincode_result getResult(I iface, getCostingAndDeliveryEstimateForPincode_args args) throws org.apache.thrift.TException {
        getCostingAndDeliveryEstimateForPincode_result result = new getCostingAndDeliveryEstimateForPincode_result();
        try {
          result.success = iface.getCostingAndDeliveryEstimateForPincode(args.pincode, args.transactionAmount, args.isCod, args.weight, args.billingWarehouseId, args.isCompleteTxn);
        } catch (LogisticsServiceException se) {
          result.se = se;
        }
        return result;
      }
    }

  }

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

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

    private long providerId; // 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 {
      PROVIDER_ID((short)1, "providerId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProvider_args.class, metaDataMap);
    }

    public getProvider_args() {
    }

    public getProvider_args(
      long providerId)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProvider_args(getProvider_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
    }

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

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      }
    }

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

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private Provider success; // required
    private LogisticsServiceException lse; // 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"),
      LSE((short)1, "lse");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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, Provider.class)));
      tmpMap.put(_Fields.LSE, new org.apache.thrift.meta_data.FieldMetaData("lse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProvider_result.class, metaDataMap);
    }

    public getProvider_result() {
    }

    public getProvider_result(
      Provider success,
      LogisticsServiceException lse)
    {
      this();
      this.success = success;
      this.lse = lse;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProvider_result(getProvider_result other) {
      if (other.isSetSuccess()) {
        this.success = new Provider(other.success);
      }
      if (other.isSetLse()) {
        this.lse = new LogisticsServiceException(other.lse);
      }
    }

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

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

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

    public void setSuccess(Provider success) {
      this.success = success;
    }

    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 LogisticsServiceException getLse() {
      return this.lse;
    }

    public void setLse(LogisticsServiceException lse) {
      this.lse = lse;
    }

    public void unsetLse() {
      this.lse = null;
    }

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

    public void setLseIsSet(boolean value) {
      if (!value) {
        this.lse = null;
      }
    }

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

      case LSE:
        if (value == null) {
          unsetLse();
        } else {
          setLse((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case LSE:
        return getLse();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 LSE:
        return isSetLse();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getProvider_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_lse = true && this.isSetLse();
      boolean that_present_lse = true && that.isSetLse();
      if (this_present_lse || that_present_lse) {
        if (!(this_present_lse && that_present_lse))
          return false;
        if (!this.lse.equals(that.lse))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

  }

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



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

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.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(getAllProviders_args.class, metaDataMap);
    }

    public getAllProviders_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllProviders_args(getAllProviders_args other) {
    }

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

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

      return true;
    }

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

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

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

      return 0;
    }

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

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

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

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

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField LSE_FIELD_DESC = new org.apache.thrift.protocol.TField("lse", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<Provider> success; // required
    private LogisticsServiceException lse; // 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"),
      LSE((short)1, "lse");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Provider.class))));
      tmpMap.put(_Fields.LSE, new org.apache.thrift.meta_data.FieldMetaData("lse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllProviders_result.class, metaDataMap);
    }

    public getAllProviders_result() {
    }

    public getAllProviders_result(
      List<Provider> success,
      LogisticsServiceException lse)
    {
      this();
      this.success = success;
      this.lse = lse;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllProviders_result(getAllProviders_result other) {
      if (other.isSetSuccess()) {
        List<Provider> __this__success = new ArrayList<Provider>();
        for (Provider other_element : other.success) {
          __this__success.add(new Provider(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetLse()) {
        this.lse = new LogisticsServiceException(other.lse);
      }
    }

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

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

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

    public java.util.Iterator<Provider> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Provider elem) {
      if (this.success == null) {
        this.success = new ArrayList<Provider>();
      }
      this.success.add(elem);
    }

    public List<Provider> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<Provider> success) {
      this.success = success;
    }

    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 LogisticsServiceException getLse() {
      return this.lse;
    }

    public void setLse(LogisticsServiceException lse) {
      this.lse = lse;
    }

    public void unsetLse() {
      this.lse = null;
    }

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

    public void setLseIsSet(boolean value) {
      if (!value) {
        this.lse = null;
      }
    }

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

      case LSE:
        if (value == null) {
          unsetLse();
        } else {
          setLse((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case LSE:
        return getLse();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 LSE:
        return isSetLse();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getAllProviders_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_lse = true && this.isSetLse();
      boolean that_present_lse = true && that.isSetLse();
      if (this_present_lse || that_present_lse) {
        if (!(this_present_lse && that_present_lse))
          return false;
        if (!this.lse.equals(that.lse))
          return false;
      }

      return true;
    }

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

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

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

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

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
                this.success = new ArrayList<Provider>(_list4.size);
                for (int _i5 = 0; _i5 < _list4.size; ++_i5)
                {
                  Provider _elem6; // required
                  _elem6 = new Provider();
                  _elem6.read(iprot);
                  this.success.add(_elem6);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // LSE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.lse = new LogisticsServiceException();
              this.lse.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (Provider _iter7 : this.success)
          {
            _iter7.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetLse()) {
        oprot.writeFieldBegin(LSE_FIELD_DESC);
        this.lse.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField ITEM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("itemId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField DESTINATION_PIN_FIELD_DESC = new org.apache.thrift.protocol.TField("destination_pin", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3);

    private long itemId; // required
    private String destination_pin; // required
    private DeliveryType type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ITEM_ID((short)1, "itemId"),
      DESTINATION_PIN((short)2, "destination_pin"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)3, "type");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ITEMID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ITEM_ID, new org.apache.thrift.meta_data.FieldMetaData("itemId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.DESTINATION_PIN, new org.apache.thrift.meta_data.FieldMetaData("destination_pin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsEstimation_args.class, metaDataMap);
    }

    public getLogisticsEstimation_args() {
    }

    public getLogisticsEstimation_args(
      long itemId,
      String destination_pin,
      DeliveryType type)
    {
      this();
      this.itemId = itemId;
      setItemIdIsSet(true);
      this.destination_pin = destination_pin;
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsEstimation_args(getLogisticsEstimation_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.itemId = other.itemId;
      if (other.isSetDestination_pin()) {
        this.destination_pin = other.destination_pin;
      }
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

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

    @Override
    public void clear() {
      setItemIdIsSet(false);
      this.itemId = 0;
      this.destination_pin = null;
      this.type = null;
    }

    public long getItemId() {
      return this.itemId;
    }

    public void setItemId(long itemId) {
      this.itemId = itemId;
      setItemIdIsSet(true);
    }

    public void unsetItemId() {
      __isset_bit_vector.clear(__ITEMID_ISSET_ID);
    }

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

    public void setItemIdIsSet(boolean value) {
      __isset_bit_vector.set(__ITEMID_ISSET_ID, value);
    }

    public String getDestination_pin() {
      return this.destination_pin;
    }

    public void setDestination_pin(String destination_pin) {
      this.destination_pin = destination_pin;
    }

    public void unsetDestination_pin() {
      this.destination_pin = null;
    }

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

    public void setDestination_pinIsSet(boolean value) {
      if (!value) {
        this.destination_pin = null;
      }
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ITEM_ID:
        if (value == null) {
          unsetItemId();
        } else {
          setItemId((Long)value);
        }
        break;

      case DESTINATION_PIN:
        if (value == null) {
          unsetDestination_pin();
        } else {
          setDestination_pin((String)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      }
    }

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

      case DESTINATION_PIN:
        return getDestination_pin();

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case ITEM_ID:
        return isSetItemId();
      case DESTINATION_PIN:
        return isSetDestination_pin();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_itemId = true;
      boolean that_present_itemId = true;
      if (this_present_itemId || that_present_itemId) {
        if (!(this_present_itemId && that_present_itemId))
          return false;
        if (this.itemId != that.itemId)
          return false;
      }

      boolean this_present_destination_pin = true && this.isSetDestination_pin();
      boolean that_present_destination_pin = true && that.isSetDestination_pin();
      if (this_present_destination_pin || that_present_destination_pin) {
        if (!(this_present_destination_pin && that_present_destination_pin))
          return false;
        if (!this.destination_pin.equals(that.destination_pin))
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetItemId()).compareTo(typedOther.isSetItemId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetItemId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.itemId, typedOther.itemId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDestination_pin()).compareTo(typedOther.isSetDestination_pin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestination_pin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destination_pin, typedOther.destination_pin);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ITEM_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.itemId = iprot.readI64();
              setItemIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // DESTINATION_PIN
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destination_pin = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ITEM_ID_FIELD_DESC);
      oprot.writeI64(this.itemId);
      oprot.writeFieldEnd();
      if (this.destination_pin != null) {
        oprot.writeFieldBegin(DESTINATION_PIN_FIELD_DESC);
        oprot.writeString(this.destination_pin);
        oprot.writeFieldEnd();
      }
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private LogisticsInfo success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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, LogisticsInfo.class)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsEstimation_result.class, metaDataMap);
    }

    public getLogisticsEstimation_result() {
    }

    public getLogisticsEstimation_result(
      LogisticsInfo success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsEstimation_result(getLogisticsEstimation_result other) {
      if (other.isSetSuccess()) {
        this.success = new LogisticsInfo(other.success);
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public void setSuccess(LogisticsInfo success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getLogisticsEstimation_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField ITEM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("itemId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField DESTINATION_PIN_FIELD_DESC = new org.apache.thrift.protocol.TField("destination_pin", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3);

    private long itemId; // required
    private String destination_pin; // required
    private DeliveryType type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ITEM_ID((short)1, "itemId"),
      DESTINATION_PIN((short)2, "destination_pin"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)3, "type");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ITEMID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ITEM_ID, new org.apache.thrift.meta_data.FieldMetaData("itemId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.DESTINATION_PIN, new org.apache.thrift.meta_data.FieldMetaData("destination_pin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsEstimationForStore_args.class, metaDataMap);
    }

    public getLogisticsEstimationForStore_args() {
    }

    public getLogisticsEstimationForStore_args(
      long itemId,
      String destination_pin,
      DeliveryType type)
    {
      this();
      this.itemId = itemId;
      setItemIdIsSet(true);
      this.destination_pin = destination_pin;
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsEstimationForStore_args(getLogisticsEstimationForStore_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.itemId = other.itemId;
      if (other.isSetDestination_pin()) {
        this.destination_pin = other.destination_pin;
      }
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

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

    @Override
    public void clear() {
      setItemIdIsSet(false);
      this.itemId = 0;
      this.destination_pin = null;
      this.type = null;
    }

    public long getItemId() {
      return this.itemId;
    }

    public void setItemId(long itemId) {
      this.itemId = itemId;
      setItemIdIsSet(true);
    }

    public void unsetItemId() {
      __isset_bit_vector.clear(__ITEMID_ISSET_ID);
    }

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

    public void setItemIdIsSet(boolean value) {
      __isset_bit_vector.set(__ITEMID_ISSET_ID, value);
    }

    public String getDestination_pin() {
      return this.destination_pin;
    }

    public void setDestination_pin(String destination_pin) {
      this.destination_pin = destination_pin;
    }

    public void unsetDestination_pin() {
      this.destination_pin = null;
    }

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

    public void setDestination_pinIsSet(boolean value) {
      if (!value) {
        this.destination_pin = null;
      }
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ITEM_ID:
        if (value == null) {
          unsetItemId();
        } else {
          setItemId((Long)value);
        }
        break;

      case DESTINATION_PIN:
        if (value == null) {
          unsetDestination_pin();
        } else {
          setDestination_pin((String)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      }
    }

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

      case DESTINATION_PIN:
        return getDestination_pin();

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case ITEM_ID:
        return isSetItemId();
      case DESTINATION_PIN:
        return isSetDestination_pin();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_itemId = true;
      boolean that_present_itemId = true;
      if (this_present_itemId || that_present_itemId) {
        if (!(this_present_itemId && that_present_itemId))
          return false;
        if (this.itemId != that.itemId)
          return false;
      }

      boolean this_present_destination_pin = true && this.isSetDestination_pin();
      boolean that_present_destination_pin = true && that.isSetDestination_pin();
      if (this_present_destination_pin || that_present_destination_pin) {
        if (!(this_present_destination_pin && that_present_destination_pin))
          return false;
        if (!this.destination_pin.equals(that.destination_pin))
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetItemId()).compareTo(typedOther.isSetItemId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetItemId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.itemId, typedOther.itemId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDestination_pin()).compareTo(typedOther.isSetDestination_pin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestination_pin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destination_pin, typedOther.destination_pin);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ITEM_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.itemId = iprot.readI64();
              setItemIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // DESTINATION_PIN
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destination_pin = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ITEM_ID_FIELD_DESC);
      oprot.writeI64(this.itemId);
      oprot.writeFieldEnd();
      if (this.destination_pin != null) {
        oprot.writeFieldBegin(DESTINATION_PIN_FIELD_DESC);
        oprot.writeString(this.destination_pin);
        oprot.writeFieldEnd();
      }
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private LogisticsInfo success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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, LogisticsInfo.class)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsEstimationForStore_result.class, metaDataMap);
    }

    public getLogisticsEstimationForStore_result() {
    }

    public getLogisticsEstimationForStore_result(
      LogisticsInfo success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsEstimationForStore_result(getLogisticsEstimationForStore_result other) {
      if (other.isSetSuccess()) {
        this.success = new LogisticsInfo(other.success);
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public void setSuccess(LogisticsInfo success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getLogisticsEstimationForStore_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField DESTINATION_PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("destination_pincode", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField ITEM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("item_id", org.apache.thrift.protocol.TType.I64, (short)2);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3);
    private static final org.apache.thrift.protocol.TField PICK_UP_FIELD_DESC = new org.apache.thrift.protocol.TField("pickUp", org.apache.thrift.protocol.TType.I32, (short)4);

    private String destination_pincode; // required
    private long item_id; // required
    private DeliveryType type; // required
    private PickUpType pickUp; // 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 {
      DESTINATION_PINCODE((short)1, "destination_pincode"),
      ITEM_ID((short)2, "item_id"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)3, "type"),
      /**
       * 
       * @see PickUpType
       */
      PICK_UP((short)4, "pickUp");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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 __ITEM_ID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DESTINATION_PINCODE, new org.apache.thrift.meta_data.FieldMetaData("destination_pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ITEM_ID, new org.apache.thrift.meta_data.FieldMetaData("item_id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      tmpMap.put(_Fields.PICK_UP, new org.apache.thrift.meta_data.FieldMetaData("pickUp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PickUpType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsInfo_args.class, metaDataMap);
    }

    public getLogisticsInfo_args() {
    }

    public getLogisticsInfo_args(
      String destination_pincode,
      long item_id,
      DeliveryType type,
      PickUpType pickUp)
    {
      this();
      this.destination_pincode = destination_pincode;
      this.item_id = item_id;
      setItem_idIsSet(true);
      this.type = type;
      this.pickUp = pickUp;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsInfo_args(getLogisticsInfo_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetDestination_pincode()) {
        this.destination_pincode = other.destination_pincode;
      }
      this.item_id = other.item_id;
      if (other.isSetType()) {
        this.type = other.type;
      }
      if (other.isSetPickUp()) {
        this.pickUp = other.pickUp;
      }
    }

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

    @Override
    public void clear() {
      this.destination_pincode = null;
      setItem_idIsSet(false);
      this.item_id = 0;
      this.type = null;
      this.pickUp = null;
    }

    public String getDestination_pincode() {
      return this.destination_pincode;
    }

    public void setDestination_pincode(String destination_pincode) {
      this.destination_pincode = destination_pincode;
    }

    public void unsetDestination_pincode() {
      this.destination_pincode = null;
    }

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

    public void setDestination_pincodeIsSet(boolean value) {
      if (!value) {
        this.destination_pincode = null;
      }
    }

    public long getItem_id() {
      return this.item_id;
    }

    public void setItem_id(long item_id) {
      this.item_id = item_id;
      setItem_idIsSet(true);
    }

    public void unsetItem_id() {
      __isset_bit_vector.clear(__ITEM_ID_ISSET_ID);
    }

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

    public void setItem_idIsSet(boolean value) {
      __isset_bit_vector.set(__ITEM_ID_ISSET_ID, value);
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    /**
     * 
     * @see PickUpType
     */
    public PickUpType getPickUp() {
      return this.pickUp;
    }

    /**
     * 
     * @see PickUpType
     */
    public void setPickUp(PickUpType pickUp) {
      this.pickUp = pickUp;
    }

    public void unsetPickUp() {
      this.pickUp = null;
    }

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

    public void setPickUpIsSet(boolean value) {
      if (!value) {
        this.pickUp = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case DESTINATION_PINCODE:
        if (value == null) {
          unsetDestination_pincode();
        } else {
          setDestination_pincode((String)value);
        }
        break;

      case ITEM_ID:
        if (value == null) {
          unsetItem_id();
        } else {
          setItem_id((Long)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      case PICK_UP:
        if (value == null) {
          unsetPickUp();
        } else {
          setPickUp((PickUpType)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case DESTINATION_PINCODE:
        return getDestination_pincode();

      case ITEM_ID:
        return Long.valueOf(getItem_id());

      case TYPE:
        return getType();

      case PICK_UP:
        return getPickUp();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 DESTINATION_PINCODE:
        return isSetDestination_pincode();
      case ITEM_ID:
        return isSetItem_id();
      case TYPE:
        return isSetType();
      case PICK_UP:
        return isSetPickUp();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_destination_pincode = true && this.isSetDestination_pincode();
      boolean that_present_destination_pincode = true && that.isSetDestination_pincode();
      if (this_present_destination_pincode || that_present_destination_pincode) {
        if (!(this_present_destination_pincode && that_present_destination_pincode))
          return false;
        if (!this.destination_pincode.equals(that.destination_pincode))
          return false;
      }

      boolean this_present_item_id = true;
      boolean that_present_item_id = true;
      if (this_present_item_id || that_present_item_id) {
        if (!(this_present_item_id && that_present_item_id))
          return false;
        if (this.item_id != that.item_id)
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      boolean this_present_pickUp = true && this.isSetPickUp();
      boolean that_present_pickUp = true && that.isSetPickUp();
      if (this_present_pickUp || that_present_pickUp) {
        if (!(this_present_pickUp && that_present_pickUp))
          return false;
        if (!this.pickUp.equals(that.pickUp))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetDestination_pincode()).compareTo(typedOther.isSetDestination_pincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestination_pincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destination_pincode, typedOther.destination_pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetItem_id()).compareTo(typedOther.isSetItem_id());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetItem_id()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.item_id, typedOther.item_id);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPickUp()).compareTo(typedOther.isSetPickUp());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPickUp()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pickUp, typedOther.pickUp);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // DESTINATION_PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destination_pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // ITEM_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.item_id = iprot.readI64();
              setItem_idIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // PICK_UP
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.pickUp = PickUpType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.destination_pincode != null) {
        oprot.writeFieldBegin(DESTINATION_PINCODE_FIELD_DESC);
        oprot.writeString(this.destination_pincode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(ITEM_ID_FIELD_DESC);
      oprot.writeI64(this.item_id);
      oprot.writeFieldEnd();
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      if (this.pickUp != null) {
        oprot.writeFieldBegin(PICK_UP_FIELD_DESC);
        oprot.writeI32(this.pickUp.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

      sb.append("destination_pincode:");
      if (this.destination_pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.destination_pincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("item_id:");
      sb.append(this.item_id);
      first = false;
      if (!first) sb.append(", ");
      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("pickUp:");
      if (this.pickUp == null) {
        sb.append("null");
      } else {
        sb.append(this.pickUp);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

  }

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

    private LogisticsInfo success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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, LogisticsInfo.class)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLogisticsInfo_result.class, metaDataMap);
    }

    public getLogisticsInfo_result() {
    }

    public getLogisticsInfo_result(
      LogisticsInfo success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLogisticsInfo_result(getLogisticsInfo_result other) {
      if (other.isSetSuccess()) {
        this.success = new LogisticsInfo(other.success);
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public void setSuccess(LogisticsInfo success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getLogisticsInfo_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)-1);

    private long providerId; // required
    private DeliveryType type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PROVIDER_ID((short)1, "providerId"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)-1, "type");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getEmptyAWB_args.class, metaDataMap);
    }

    public getEmptyAWB_args() {
    }

    public getEmptyAWB_args(
      long providerId,
      DeliveryType type)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getEmptyAWB_args(getEmptyAWB_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

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

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.type = null;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      }
    }

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

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case PROVIDER_ID:
        return isSetProviderId();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case -1: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private String success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getEmptyAWB_result.class, metaDataMap);
    }

    public getEmptyAWB_result() {
    }

    public getEmptyAWB_result(
      String success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getEmptyAWB_result(getEmptyAWB_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public void setSuccess(String success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getEmptyAWB_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField AWB_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("awbNumber", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)2);

    private String awbNumber; // required
    private long providerId; // 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 {
      AWB_NUMBER((short)1, "awbNumber"),
      PROVIDER_ID((short)2, "providerId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.AWB_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("awbNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getShipmentInfo_args.class, metaDataMap);
    }

    public getShipmentInfo_args() {
    }

    public getShipmentInfo_args(
      String awbNumber,
      long providerId)
    {
      this();
      this.awbNumber = awbNumber;
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getShipmentInfo_args(getShipmentInfo_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetAwbNumber()) {
        this.awbNumber = other.awbNumber;
      }
      this.providerId = other.providerId;
    }

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

    @Override
    public void clear() {
      this.awbNumber = null;
      setProviderIdIsSet(false);
      this.providerId = 0;
    }

    public String getAwbNumber() {
      return this.awbNumber;
    }

    public void setAwbNumber(String awbNumber) {
      this.awbNumber = awbNumber;
    }

    public void unsetAwbNumber() {
      this.awbNumber = null;
    }

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

    public void setAwbNumberIsSet(boolean value) {
      if (!value) {
        this.awbNumber = null;
      }
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case AWB_NUMBER:
        if (value == null) {
          unsetAwbNumber();
        } else {
          setAwbNumber((String)value);
        }
        break;

      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case AWB_NUMBER:
        return getAwbNumber();

      case PROVIDER_ID:
        return Long.valueOf(getProviderId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 AWB_NUMBER:
        return isSetAwbNumber();
      case PROVIDER_ID:
        return isSetProviderId();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_awbNumber = true && this.isSetAwbNumber();
      boolean that_present_awbNumber = true && that.isSetAwbNumber();
      if (this_present_awbNumber || that_present_awbNumber) {
        if (!(this_present_awbNumber && that_present_awbNumber))
          return false;
        if (!this.awbNumber.equals(that.awbNumber))
          return false;
      }

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetAwbNumber()).compareTo(typedOther.isSetAwbNumber());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAwbNumber()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.awbNumber, typedOther.awbNumber);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // AWB_NUMBER
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.awbNumber = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.awbNumber != null) {
        oprot.writeFieldBegin(AWB_NUMBER_FIELD_DESC);
        oprot.writeString(this.awbNumber);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AwbUpdate> success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AwbUpdate.class))));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getShipmentInfo_result.class, metaDataMap);
    }

    public getShipmentInfo_result() {
    }

    public getShipmentInfo_result(
      List<AwbUpdate> success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getShipmentInfo_result(getShipmentInfo_result other) {
      if (other.isSetSuccess()) {
        List<AwbUpdate> __this__success = new ArrayList<AwbUpdate>();
        for (AwbUpdate other_element : other.success) {
          __this__success.add(new AwbUpdate(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public java.util.Iterator<AwbUpdate> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AwbUpdate elem) {
      if (this.success == null) {
        this.success = new ArrayList<AwbUpdate>();
      }
      this.success.add(elem);
    }

    public List<AwbUpdate> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AwbUpdate> success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getShipmentInfo_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
                this.success = new ArrayList<AwbUpdate>(_list8.size);
                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
                {
                  AwbUpdate _elem10; // required
                  _elem10 = new AwbUpdate();
                  _elem10.read(iprot);
                  this.success.add(_elem10);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AwbUpdate _iter11 : this.success)
          {
            _iter11.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

  }

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

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

    private AwbUpdate update; // 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 {
      UPDATE((short)1, "update");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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.UPDATE, new org.apache.thrift.meta_data.FieldMetaData("update", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AwbUpdate.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(storeShipmentInfo_args.class, metaDataMap);
    }

    public storeShipmentInfo_args() {
    }

    public storeShipmentInfo_args(
      AwbUpdate update)
    {
      this();
      this.update = update;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public storeShipmentInfo_args(storeShipmentInfo_args other) {
      if (other.isSetUpdate()) {
        this.update = new AwbUpdate(other.update);
      }
    }

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

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

    public AwbUpdate getUpdate() {
      return this.update;
    }

    public void setUpdate(AwbUpdate update) {
      this.update = update;
    }

    public void unsetUpdate() {
      this.update = null;
    }

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

    public void setUpdateIsSet(boolean value) {
      if (!value) {
        this.update = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case UPDATE:
        if (value == null) {
          unsetUpdate();
        } else {
          setUpdate((AwbUpdate)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case UPDATE:
        return getUpdate();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 UPDATE:
        return isSetUpdate();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_update = true && this.isSetUpdate();
      boolean that_present_update = true && that.isSetUpdate();
      if (this_present_update || that_present_update) {
        if (!(this_present_update && that_present_update))
          return false;
        if (!this.update.equals(that.update))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetUpdate()).compareTo(typedOther.isSetUpdate());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUpdate()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.update, typedOther.update);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // UPDATE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.update = new AwbUpdate();
              this.update.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.update != null) {
        oprot.writeFieldBegin(UPDATE_FIELD_DESC);
        this.update.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

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

    private LogisticsServiceException se; // 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 {
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(storeShipmentInfo_result.class, metaDataMap);
    }

    public storeShipmentInfo_result() {
    }

    public storeShipmentInfo_result(
      LogisticsServiceException se)
    {
      this();
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public storeShipmentInfo_result(storeShipmentInfo_result other) {
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

    public LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetSe()).compareTo(typedOther.isSetSe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.se, typedOther.se);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField PIN_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pinCode", org.apache.thrift.protocol.TType.STRING, (short)2);

    private long providerId; // required
    private String pinCode; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      PIN_CODE((short)2, "pinCode");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.PIN_CODE, new org.apache.thrift.meta_data.FieldMetaData("pinCode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDestinationCode_args.class, metaDataMap);
    }

    public getDestinationCode_args() {
    }

    public getDestinationCode_args(
      long providerId,
      String pinCode)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.pinCode = pinCode;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getDestinationCode_args(getDestinationCode_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetPinCode()) {
        this.pinCode = other.pinCode;
      }
    }

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

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.pinCode = null;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public String getPinCode() {
      return this.pinCode;
    }

    public void setPinCode(String pinCode) {
      this.pinCode = pinCode;
    }

    public void unsetPinCode() {
      this.pinCode = null;
    }

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

    public void setPinCodeIsSet(boolean value) {
      if (!value) {
        this.pinCode = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case PIN_CODE:
        if (value == null) {
          unsetPinCode();
        } else {
          setPinCode((String)value);
        }
        break;

      }
    }

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

      case PIN_CODE:
        return getPinCode();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case PIN_CODE:
        return isSetPinCode();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_pinCode = true && this.isSetPinCode();
      boolean that_present_pinCode = true && that.isSetPinCode();
      if (this_present_pinCode || that_present_pinCode) {
        if (!(this_present_pinCode && that_present_pinCode))
          return false;
        if (!this.pinCode.equals(that.pinCode))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPinCode()).compareTo(typedOther.isSetPinCode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPinCode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pinCode, typedOther.pinCode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PIN_CODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pinCode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.pinCode != null) {
        oprot.writeFieldBegin(PIN_CODE_FIELD_DESC);
        oprot.writeString(this.pinCode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private String success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDestinationCode_result.class, metaDataMap);
    }

    public getDestinationCode_result() {
    }

    public getDestinationCode_result(
      String success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getDestinationCode_result(getDestinationCode_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public void setSuccess(String success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getDestinationCode_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

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

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.STRING, (short)2);

    private long providerId; // required
    private String type; // required

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

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFreeAwbCount_args.class, metaDataMap);
    }

    public getFreeAwbCount_args() {
    }

    public getFreeAwbCount_args(
      long providerId,
      String type)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getFreeAwbCount_args(getFreeAwbCount_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

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

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.type = null;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public String getType() {
      return this.type;
    }

    public void setType(String type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((String)value);
        }
        break;

      }
    }

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

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case PROVIDER_ID:
        return isSetProviderId();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.type = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeString(this.type);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

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

    private long 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.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.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFreeAwbCount_result.class, metaDataMap);
    }

    public getFreeAwbCount_result() {
    }

    public getFreeAwbCount_result(
      long success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getFreeAwbCount_result(getFreeAwbCount_result other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.success = other.success;
    }

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

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

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

    public void setSuccess(long success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
    }

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

    public void setSuccessIsSet(boolean value) {
      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
    }

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

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Long.valueOf(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 getFreeAwbCount_result)
        return this.equals((getFreeAwbCount_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

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

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

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFreeAwbCount_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
    }

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

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

  }

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

    private static final org.apache.thrift.protocol.TField FROM_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("fromDate", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField TO_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("toDate", org.apache.thrift.protocol.TType.I64, (short)2);

    private long fromDate; // required
    private long toDate; // 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 {
      FROM_DATE((short)1, "fromDate"),
      TO_DATE((short)2, "toDate");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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 __FROMDATE_ISSET_ID = 0;
    private static final int __TODATE_ISSET_ID = 1;
    private BitSet __isset_bit_vector = new BitSet(2);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.FROM_DATE, new org.apache.thrift.meta_data.FieldMetaData("fromDate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.TO_DATE, new org.apache.thrift.meta_data.FieldMetaData("toDate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getHolidays_args.class, metaDataMap);
    }

    public getHolidays_args() {
    }

    public getHolidays_args(
      long fromDate,
      long toDate)
    {
      this();
      this.fromDate = fromDate;
      setFromDateIsSet(true);
      this.toDate = toDate;
      setToDateIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getHolidays_args(getHolidays_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.fromDate = other.fromDate;
      this.toDate = other.toDate;
    }

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

    @Override
    public void clear() {
      setFromDateIsSet(false);
      this.fromDate = 0;
      setToDateIsSet(false);
      this.toDate = 0;
    }

    public long getFromDate() {
      return this.fromDate;
    }

    public void setFromDate(long fromDate) {
      this.fromDate = fromDate;
      setFromDateIsSet(true);
    }

    public void unsetFromDate() {
      __isset_bit_vector.clear(__FROMDATE_ISSET_ID);
    }

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

    public void setFromDateIsSet(boolean value) {
      __isset_bit_vector.set(__FROMDATE_ISSET_ID, value);
    }

    public long getToDate() {
      return this.toDate;
    }

    public void setToDate(long toDate) {
      this.toDate = toDate;
      setToDateIsSet(true);
    }

    public void unsetToDate() {
      __isset_bit_vector.clear(__TODATE_ISSET_ID);
    }

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

    public void setToDateIsSet(boolean value) {
      __isset_bit_vector.set(__TODATE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case FROM_DATE:
        if (value == null) {
          unsetFromDate();
        } else {
          setFromDate((Long)value);
        }
        break;

      case TO_DATE:
        if (value == null) {
          unsetToDate();
        } else {
          setToDate((Long)value);
        }
        break;

      }
    }

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

      case TO_DATE:
        return Long.valueOf(getToDate());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 FROM_DATE:
        return isSetFromDate();
      case TO_DATE:
        return isSetToDate();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_fromDate = true;
      boolean that_present_fromDate = true;
      if (this_present_fromDate || that_present_fromDate) {
        if (!(this_present_fromDate && that_present_fromDate))
          return false;
        if (this.fromDate != that.fromDate)
          return false;
      }

      boolean this_present_toDate = true;
      boolean that_present_toDate = true;
      if (this_present_toDate || that_present_toDate) {
        if (!(this_present_toDate && that_present_toDate))
          return false;
        if (this.toDate != that.toDate)
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetFromDate()).compareTo(typedOther.isSetFromDate());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFromDate()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fromDate, typedOther.fromDate);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetToDate()).compareTo(typedOther.isSetToDate());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToDate()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.toDate, typedOther.toDate);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // FROM_DATE
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.fromDate = iprot.readI64();
              setFromDateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // TO_DATE
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.toDate = iprot.readI64();
              setToDateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(FROM_DATE_FIELD_DESC);
      oprot.writeI64(this.fromDate);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(TO_DATE_FIELD_DESC);
      oprot.writeI64(this.toDate);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

      sb.append("fromDate:");
      sb.append(this.fromDate);
      first = false;
      if (!first) sb.append(", ");
      sb.append("toDate:");
      sb.append(this.toDate);
      first = false;
      sb.append(")");
      return sb.toString();
    }

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

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

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

  }

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

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

    private List<Long> 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getHolidays_result.class, metaDataMap);
    }

    public getHolidays_result() {
    }

    public getHolidays_result(
      List<Long> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getHolidays_result(getHolidays_result other) {
      if (other.isSetSuccess()) {
        List<Long> __this__success = new ArrayList<Long>();
        for (Long other_element : other.success) {
          __this__success.add(other_element);
        }
        this.success = __this__success;
      }
    }

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

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

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

    public java.util.Iterator<Long> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(long elem) {
      if (this.success == null) {
        this.success = new ArrayList<Long>();
      }
      this.success.add(elem);
    }

    public List<Long> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<Long> success) {
      this.success = success;
    }

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

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

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

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<Long>)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 getHolidays_result)
        return this.equals((getHolidays_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
                this.success = new ArrayList<Long>(_list12.size);
                for (int _i13 = 0; _i13 < _list12.size; ++_i13)
                {
                  long _elem14; // required
                  _elem14 = iprot.readI64();
                  this.success.add(_elem14);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, this.success.size()));
          for (long _iter15 : this.success)
          {
            oprot.writeI64(_iter15);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField CATALOG_ITEM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogItemId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField DESTINATION_PIN_FIELD_DESC = new org.apache.thrift.protocol.TField("destination_pin", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3);

    private long catalogItemId; // required
    private String destination_pin; // required
    private DeliveryType type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CATALOG_ITEM_ID((short)1, "catalogItemId"),
      DESTINATION_PIN((short)2, "destination_pin"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)3, "type");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CATALOGITEMID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CATALOG_ITEM_ID, new org.apache.thrift.meta_data.FieldMetaData("catalogItemId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.DESTINATION_PIN, new org.apache.thrift.meta_data.FieldMetaData("destination_pin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getEntityLogisticsEstimation_args.class, metaDataMap);
    }

    public getEntityLogisticsEstimation_args() {
    }

    public getEntityLogisticsEstimation_args(
      long catalogItemId,
      String destination_pin,
      DeliveryType type)
    {
      this();
      this.catalogItemId = catalogItemId;
      setCatalogItemIdIsSet(true);
      this.destination_pin = destination_pin;
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getEntityLogisticsEstimation_args(getEntityLogisticsEstimation_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.catalogItemId = other.catalogItemId;
      if (other.isSetDestination_pin()) {
        this.destination_pin = other.destination_pin;
      }
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

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

    @Override
    public void clear() {
      setCatalogItemIdIsSet(false);
      this.catalogItemId = 0;
      this.destination_pin = null;
      this.type = null;
    }

    public long getCatalogItemId() {
      return this.catalogItemId;
    }

    public void setCatalogItemId(long catalogItemId) {
      this.catalogItemId = catalogItemId;
      setCatalogItemIdIsSet(true);
    }

    public void unsetCatalogItemId() {
      __isset_bit_vector.clear(__CATALOGITEMID_ISSET_ID);
    }

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

    public void setCatalogItemIdIsSet(boolean value) {
      __isset_bit_vector.set(__CATALOGITEMID_ISSET_ID, value);
    }

    public String getDestination_pin() {
      return this.destination_pin;
    }

    public void setDestination_pin(String destination_pin) {
      this.destination_pin = destination_pin;
    }

    public void unsetDestination_pin() {
      this.destination_pin = null;
    }

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

    public void setDestination_pinIsSet(boolean value) {
      if (!value) {
        this.destination_pin = null;
      }
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

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

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CATALOG_ITEM_ID:
        if (value == null) {
          unsetCatalogItemId();
        } else {
          setCatalogItemId((Long)value);
        }
        break;

      case DESTINATION_PIN:
        if (value == null) {
          unsetDestination_pin();
        } else {
          setDestination_pin((String)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      }
    }

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

      case DESTINATION_PIN:
        return getDestination_pin();

      case TYPE:
        return getType();

      }
      throw new IllegalStateException();
    }

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

      switch (field) {
      case CATALOG_ITEM_ID:
        return isSetCatalogItemId();
      case DESTINATION_PIN:
        return isSetDestination_pin();
      case TYPE:
        return isSetType();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_catalogItemId = true;
      boolean that_present_catalogItemId = true;
      if (this_present_catalogItemId || that_present_catalogItemId) {
        if (!(this_present_catalogItemId && that_present_catalogItemId))
          return false;
        if (this.catalogItemId != that.catalogItemId)
          return false;
      }

      boolean this_present_destination_pin = true && this.isSetDestination_pin();
      boolean that_present_destination_pin = true && that.isSetDestination_pin();
      if (this_present_destination_pin || that_present_destination_pin) {
        if (!(this_present_destination_pin && that_present_destination_pin))
          return false;
        if (!this.destination_pin.equals(that.destination_pin))
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetCatalogItemId()).compareTo(typedOther.isSetCatalogItemId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCatalogItemId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogItemId, typedOther.catalogItemId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDestination_pin()).compareTo(typedOther.isSetDestination_pin());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestination_pin()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destination_pin, typedOther.destination_pin);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CATALOG_ITEM_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.catalogItemId = iprot.readI64();
              setCatalogItemIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // DESTINATION_PIN
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destination_pin = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CATALOG_ITEM_ID_FIELD_DESC);
      oprot.writeI64(this.catalogItemId);
      oprot.writeFieldEnd();
      if (this.destination_pin != null) {
        oprot.writeFieldBegin(DESTINATION_PIN_FIELD_DESC);
        oprot.writeString(this.destination_pin);
        oprot.writeFieldEnd();
      }
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<ItemText> success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ItemText.class))));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getEntityLogisticsEstimation_result.class, metaDataMap);
    }

    public getEntityLogisticsEstimation_result() {
    }

    public getEntityLogisticsEstimation_result(
      List<ItemText> success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getEntityLogisticsEstimation_result(getEntityLogisticsEstimation_result other) {
      if (other.isSetSuccess()) {
        List<ItemText> __this__success = new ArrayList<ItemText>();
        for (ItemText other_element : other.success) {
          __this__success.add(new ItemText(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

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

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

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

    public java.util.Iterator<ItemText> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(ItemText elem) {
      if (this.success == null) {
        this.success = new ArrayList<ItemText>();
      }
      this.success.add(elem);
    }

    public List<ItemText> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<ItemText> success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

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

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

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

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

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

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

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

    public boolean equals(getEntityLogisticsEstimation_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

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

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

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

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

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
                this.success = new ArrayList<ItemText>(_list16.size);
                for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                {
                  ItemText _elem18; // required
                  _elem18 = new ItemText();
                  _elem18.read(iprot);
                  this.success.add(_elem18);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (ItemText _iter19 : this.success)
          {
            _iter19.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

  }

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

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

    private long pickUp; // 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 {
      PICK_UP((short)1, "pickUp");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _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 __PICKUP_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PICK_UP, new org.apache.thrift.meta_data.FieldMetaData("pickUp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProviderForPickupType_args.class, metaDataMap);
    }

    public getProviderForPickupType_args() {
    }

    public getProviderForPickupType_args(
      long pickUp)
    {
      this();
      this.pickUp = pickUp;
      setPickUpIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProviderForPickupType_args(getProviderForPickupType_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.pickUp = other.pickUp;
    }

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

    @Override
    public void clear() {
      setPickUpIsSet(false);
      this.pickUp = 0;
    }

    public long getPickUp() {
      return this.pickUp;
    }

    public void setPickUp(long pickUp) {
      this.pickUp = pickUp;
      setPickUpIsSet(true);
    }

    public void unsetPickUp() {
      __isset_bit_vector.clear(__PICKUP_ISSET_ID);
    }

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

    public void setPickUpIsSet(boolean value) {
      __isset_bit_vector.set(__PICKUP_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PICK_UP:
        if (value == null) {
          unsetPickUp();
        } else {
          setPickUp((Long)value);
        }
        break;

      }
    }

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

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PICK_UP:
        return isSetPickUp();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_pickUp = true;
      boolean that_present_pickUp = true;
      if (this_present_pickUp || that_present_pickUp) {
        if (!(this_present_pickUp && that_present_pickUp))
          return false;
        if (this.pickUp != that.pickUp)
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetPickUp()).compareTo(typedOther.isSetPickUp());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPickUp()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pickUp, typedOther.pickUp);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PICK_UP
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.pickUp = iprot.readI64();
              setPickUpIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PICK_UP_FIELD_DESC);
      oprot.writeI64(this.pickUp);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

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

    private long 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.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.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProviderForPickupType_result.class, metaDataMap);
    }

    public getProviderForPickupType_result() {
    }

    public getProviderForPickupType_result(
      long success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProviderForPickupType_result(getProviderForPickupType_result other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.success = other.success;
    }

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

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

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

    public void setSuccess(long success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
    }

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

    public void setSuccessIsSet(boolean value) {
      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
    }

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

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Long.valueOf(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 getProviderForPickupType_result)
        return this.equals((getProviderForPickupType_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

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

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

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

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getProviderForPickupType_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
    }

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

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

  }

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



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

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.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(getAllPickupStores_args.class, metaDataMap);
    }

    public getAllPickupStores_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllPickupStores_args(getAllPickupStores_args other) {
    }

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

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

      return true;
    }

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

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

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

      return 0;
    }

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

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

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

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

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

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

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

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

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

  }

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

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

    private List<PickupStore> 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PickupStore.class))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllPickupStores_result.class, metaDataMap);
    }

    public getAllPickupStores_result() {
    }

    public getAllPickupStores_result(
      List<PickupStore> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllPickupStores_result(getAllPickupStores_result other) {
      if (other.isSetSuccess()) {
        List<PickupStore> __this__success = new ArrayList<PickupStore>();
        for (PickupStore other_element : other.success) {
          __this__success.add(new PickupStore(other_element));
        }
        this.success = __this__success;
      }
    }

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

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

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

    public java.util.Iterator<PickupStore> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(PickupStore elem) {
      if (this.success == null) {
        this.success = new ArrayList<PickupStore>();
      }
      this.success.add(elem);
    }

    public List<PickupStore> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<PickupStore> success) {
      this.success = success;
    }

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

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

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

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<PickupStore>)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 getAllPickupStores_result)
        return this.equals((getAllPickupStores_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list20 = iprot.readListBegin();
                this.success = new ArrayList<PickupStore>(_list20.size);
                for (int _i21 = 0; _i21 < _list20.size; ++_i21)
                {
                  PickupStore _elem22; // required
                  _elem22 = new PickupStore();
                  _elem22.read(iprot);
                  this.success.add(_elem22);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (PickupStore _iter23 : this.success)
          {
            _iter23.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

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

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

    private long storeId; // 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 {
      STORE_ID((short)1, "storeId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __STOREID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.STORE_ID, new org.apache.thrift.meta_data.FieldMetaData("storeId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getPickupStore_args.class, metaDataMap);
    }

    public getPickupStore_args() {
    }

    public getPickupStore_args(
      long storeId)
    {
      this();
      this.storeId = storeId;
      setStoreIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getPickupStore_args(getPickupStore_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.storeId = other.storeId;
    }

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

    @Override
    public void clear() {
      setStoreIdIsSet(false);
      this.storeId = 0;
    }

    public long getStoreId() {
      return this.storeId;
    }

    public void setStoreId(long storeId) {
      this.storeId = storeId;
      setStoreIdIsSet(true);
    }

    public void unsetStoreId() {
      __isset_bit_vector.clear(__STOREID_ISSET_ID);
    }

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

    public void setStoreIdIsSet(boolean value) {
      __isset_bit_vector.set(__STOREID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case STORE_ID:
        if (value == null) {
          unsetStoreId();
        } else {
          setStoreId((Long)value);
        }
        break;

      }
    }

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

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 STORE_ID:
        return isSetStoreId();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_storeId = true;
      boolean that_present_storeId = true;
      if (this_present_storeId || that_present_storeId) {
        if (!(this_present_storeId && that_present_storeId))
          return false;
        if (this.storeId != that.storeId)
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetStoreId()).compareTo(typedOther.isSetStoreId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStoreId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storeId, typedOther.storeId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // STORE_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.storeId = iprot.readI64();
              setStoreIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(STORE_ID_FIELD_DESC);
      oprot.writeI64(this.storeId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

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

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

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

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

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

  }

  public static class getPickupStore_result implements org.apache.thrift.TBase<getPickupStore_result, getPickupStore_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getPickupStore_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 PickupStore 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.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, PickupStore.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getPickupStore_result.class, metaDataMap);
    }

    public getPickupStore_result() {
    }

    public getPickupStore_result(
      PickupStore success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getPickupStore_result(getPickupStore_result other) {
      if (other.isSetSuccess()) {
        this.success = new PickupStore(other.success);
      }
    }

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

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

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

    public void setSuccess(PickupStore success) {
      this.success = success;
    }

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

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

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

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PickupStore)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 getPickupStore_result)
        return this.equals((getPickupStore_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

  }

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

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

    private String hotspotId; // 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 {
      HOTSPOT_ID((short)1, "hotspotId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.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.HOTSPOT_ID, new org.apache.thrift.meta_data.FieldMetaData("hotspotId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getPickupStoreByHotspotId_args.class, metaDataMap);
    }

    public getPickupStoreByHotspotId_args() {
    }

    public getPickupStoreByHotspotId_args(
      String hotspotId)
    {
      this();
      this.hotspotId = hotspotId;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getPickupStoreByHotspotId_args(getPickupStoreByHotspotId_args other) {
      if (other.isSetHotspotId()) {
        this.hotspotId = other.hotspotId;
      }
    }

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

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

    public String getHotspotId() {
      return this.hotspotId;
    }

    public void setHotspotId(String hotspotId) {
      this.hotspotId = hotspotId;
    }

    public void unsetHotspotId() {
      this.hotspotId = null;
    }

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

    public void setHotspotIdIsSet(boolean value) {
      if (!value) {
        this.hotspotId = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case HOTSPOT_ID:
        if (value == null) {
          unsetHotspotId();
        } else {
          setHotspotId((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case HOTSPOT_ID:
        return getHotspotId();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 HOTSPOT_ID:
        return isSetHotspotId();
      }
      throw new IllegalStateException();
    }

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

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

      boolean this_present_hotspotId = true && this.isSetHotspotId();
      boolean that_present_hotspotId = true && that.isSetHotspotId();
      if (this_present_hotspotId || that_present_hotspotId) {
        if (!(this_present_hotspotId && that_present_hotspotId))
          return false;
        if (!this.hotspotId.equals(that.hotspotId))
          return false;
      }

      return true;
    }

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

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

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

      lastComparison = Boolean.valueOf(isSetHotspotId()).compareTo(typedOther.isSetHotspotId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetHotspotId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hotspotId, typedOther.hotspotId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

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

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

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

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

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

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

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

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

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

  }

  public static class getPickupStoreByHotspotId_result implements org.apache.thrift.TBase<getPickupStoreByHotspotId_result, getPickupStoreByHotspotId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getPickupStoreByHotspotId_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 PickupStore 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<String, _Fields> byName = new HashMap<String, _Fields>();

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

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

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

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

      private final short _thriftId;
      private final String _fieldName;

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

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.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, PickupStore.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getPickupStoreByHotspotId_result.class, metaDataMap);
    }

    public getPickupStoreByHotspotId_result() {
    }

    public getPickupStoreByHotspotId_result(
      PickupStore success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getPickupStoreByHotspotId_result(getPickupStoreByHotspotId_result other) {
      if (other.isSetSuccess()) {
        this.success = new PickupStore(other.success);
      }
    }

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

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

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

    public void setSuccess(PickupStore success) {
      this.success = success;
    }

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

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

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

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PickupStore)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 getPickupStoreByHotspotId_result)
        return this.equals((getPickupStoreByHotspotId_result)that);
      return false;
    }

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

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

      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

  }

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

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pincode", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField DEST_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("destCode", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField EXP_FIELD_DESC = new org.apache.thrift.protocol.TField("exp", org.apache.thrift.protocol.TType.BOOL, (short)4);
    private static final org.apache.thrift.protocol.TField COD_FIELD_DESC = new org.apache.thrift.protocol.TField("cod", org.apache.thrift.protocol.TType.BOOL, (short)5);
    private static final org.apache.thrift.protocol.TField STATION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("stationType", org.apache.thrift.protocol.TType.I32, (short)6);
    private static final org.apache.thrift.protocol.TField OTG_AVAILABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("otgAvailable", org.apache.thrift.protocol.TType.BOOL, (short)7);

    private long providerId; // required
    private String pincode; // required
    private String destCode; // required
    private boolean exp; // required
    private boolean cod; // required
    private int stationType; // required
    private boolean otgAvailable; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      PINCODE((short)2, "pincode"),
      DEST_CODE((short)3, "destCode"),
      EXP((short)4, "exp"),
      COD((short)5, "cod"),
      STATION_TYPE((short)6, "stationType"),
      OTG_AVAILABLE((short)7, "otgAvailable");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

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

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PROVIDER_ID
            return PROVIDER_ID;
          case 2: // PINCODE
            return PINCODE;
          case 3: // DEST_CODE
            return DEST_CODE;
          case 4: // EXP
            return EXP;
          case 5: // COD
            return COD;
          case 6: // STATION_TYPE
            return STATION_TYPE;
          case 7: // OTG_AVAILABLE
            return OTG_AVAILABLE;
          default:
            return null;
        }
      }

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

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

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private static final int __EXP_ISSET_ID = 1;
    private static final int __COD_ISSET_ID = 2;
    private static final int __STATIONTYPE_ISSET_ID = 3;
    private static final int __OTGAVAILABLE_ISSET_ID = 4;
    private BitSet __isset_bit_vector = new BitSet(5);

    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.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.PINCODE, new org.apache.thrift.meta_data.FieldMetaData("pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEST_CODE, new org.apache.thrift.meta_data.FieldMetaData("destCode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.EXP, new org.apache.thrift.meta_data.FieldMetaData("exp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.COD, new org.apache.thrift.meta_data.FieldMetaData("cod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.STATION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("stationType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.OTG_AVAILABLE, new org.apache.thrift.meta_data.FieldMetaData("otgAvailable", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addPincode_args.class, metaDataMap);
    }

    public addPincode_args() {
    }

    public addPincode_args(
      long providerId,
      String pincode,
      String destCode,
      boolean exp,
      boolean cod,
      int stationType,
      boolean otgAvailable)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.pincode = pincode;
      this.destCode = destCode;
      this.exp = exp;
      setExpIsSet(true);
      this.cod = cod;
      setCodIsSet(true);
      this.stationType = stationType;
      setStationTypeIsSet(true);
      this.otgAvailable = otgAvailable;
      setOtgAvailableIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addPincode_args(addPincode_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetPincode()) {
        this.pincode = other.pincode;
      }
      if (other.isSetDestCode()) {
        this.destCode = other.destCode;
      }
      this.exp = other.exp;
      this.cod = other.cod;
      this.stationType = other.stationType;
      this.otgAvailable = other.otgAvailable;
    }

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

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.pincode = null;
      this.destCode = null;
      setExpIsSet(false);
      this.exp = false;
      setCodIsSet(false);
      this.cod = false;
      setStationTypeIsSet(false);
      this.stationType = 0;
      setOtgAvailableIsSet(false);
      this.otgAvailable = false;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

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

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public String getPincode() {
      return this.pincode;
    }

    public void setPincode(String pincode) {
      this.pincode = pincode;
    }

    public void unsetPincode() {
      this.pincode = null;
    }

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

    public void setPincodeIsSet(boolean value) {
      if (!value) {
        this.pincode = null;
      }
    }

    public String getDestCode() {
      return this.destCode;
    }

    public void setDestCode(String destCode) {
      this.destCode = destCode;
    }

    public void unsetDestCode() {
      this.destCode = null;
    }

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

    public void setDestCodeIsSet(boolean value) {
      if (!value) {
        this.destCode = null;
      }
    }

    public boolean isExp() {
      return this.exp;
    }

    public void setExp(boolean exp) {
      this.exp = exp;
      setExpIsSet(true);
    }

    public void unsetExp() {
      __isset_bit_vector.clear(__EXP_ISSET_ID);
    }

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

    public void setExpIsSet(boolean value) {
      __isset_bit_vector.set(__EXP_ISSET_ID, value);
    }

    public boolean isCod() {
      return this.cod;
    }

    public void setCod(boolean cod) {
      this.cod = cod;
      setCodIsSet(true);
    }

    public void unsetCod() {
      __isset_bit_vector.clear(__COD_ISSET_ID);
    }

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

    public void setCodIsSet(boolean value) {
      __isset_bit_vector.set(__COD_ISSET_ID, value);
    }

    public int getStationType() {
      return this.stationType;
    }

    public void setStationType(int stationType) {
      this.stationType = stationType;
      setStationTypeIsSet(true);
    }

    public void unsetStationType() {
      __isset_bit_vector.clear(__STATIONTYPE_ISSET_ID);
    }

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

    public void setStationTypeIsSet(boolean value) {
      __isset_bit_vector.set(__STATIONTYPE_ISSET_ID, value);
    }

    public boolean isOtgAvailable() {
      return this.otgAvailable;
    }

    public void setOtgAvailable(boolean otgAvailable) {
      this.otgAvailable = otgAvailable;
      setOtgAvailableIsSet(true);
    }

    public void unsetOtgAvailable() {
      __isset_bit_vector.clear(__OTGAVAILABLE_ISSET_ID);
    }

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

    public void setOtgAvailableIsSet(boolean value) {
      __isset_bit_vector.set(__OTGAVAILABLE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case PINCODE:
        if (value == null) {
          unsetPincode();
        } else {
          setPincode((String)value);
        }
        break;

      case DEST_CODE:
        if (value == null) {
          unsetDestCode();
        } else {
          setDestCode((String)value);
        }
        break;

      case EXP:
        if (value == null) {
          unsetExp();
        } else {
          setExp((Boolean)value);
        }
        break;

      case COD:
        if (value == null) {
          unsetCod();
        } else {
          setCod((Boolean)value);
        }
        break;

      case STATION_TYPE:
        if (value == null) {
          unsetStationType();
        } else {
          setStationType((Integer)value);
        }
        break;

      case OTG_AVAILABLE:
        if (value == null) {
          unsetOtgAvailable();
        } else {
          setOtgAvailable((Boolean)value);
        }
        break;

      }
    }

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

      case PINCODE:
        return getPincode();

      case DEST_CODE:
        return getDestCode();

      case EXP:
        return Boolean.valueOf(isExp());

      case COD:
        return Boolean.valueOf(isCod());

      case STATION_TYPE:
        return Integer.valueOf(getStationType());

      case OTG_AVAILABLE:
        return Boolean.valueOf(isOtgAvailable());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case PINCODE:
        return isSetPincode();
      case DEST_CODE:
        return isSetDestCode();
      case EXP:
        return isSetExp();
      case COD:
        return isSetCod();
      case STATION_TYPE:
        return isSetStationType();
      case OTG_AVAILABLE:
        return isSetOtgAvailable();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addPincode_args)
        return this.equals((addPincode_args)that);
      return false;
    }

    public boolean equals(addPincode_args that) {
      if (that == null)
        return false;

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_pincode = true && this.isSetPincode();
      boolean that_present_pincode = true && that.isSetPincode();
      if (this_present_pincode || that_present_pincode) {
        if (!(this_present_pincode && that_present_pincode))
          return false;
        if (!this.pincode.equals(that.pincode))
          return false;
      }

      boolean this_present_destCode = true && this.isSetDestCode();
      boolean that_present_destCode = true && that.isSetDestCode();
      if (this_present_destCode || that_present_destCode) {
        if (!(this_present_destCode && that_present_destCode))
          return false;
        if (!this.destCode.equals(that.destCode))
          return false;
      }

      boolean this_present_exp = true;
      boolean that_present_exp = true;
      if (this_present_exp || that_present_exp) {
        if (!(this_present_exp && that_present_exp))
          return false;
        if (this.exp != that.exp)
          return false;
      }

      boolean this_present_cod = true;
      boolean that_present_cod = true;
      if (this_present_cod || that_present_cod) {
        if (!(this_present_cod && that_present_cod))
          return false;
        if (this.cod != that.cod)
          return false;
      }

      boolean this_present_stationType = true;
      boolean that_present_stationType = true;
      if (this_present_stationType || that_present_stationType) {
        if (!(this_present_stationType && that_present_stationType))
          return false;
        if (this.stationType != that.stationType)
          return false;
      }

      boolean this_present_otgAvailable = true;
      boolean that_present_otgAvailable = true;
      if (this_present_otgAvailable || that_present_otgAvailable) {
        if (!(this_present_otgAvailable && that_present_otgAvailable))
          return false;
        if (this.otgAvailable != that.otgAvailable)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addPincode_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addPincode_args typedOther = (addPincode_args)other;

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPincode()).compareTo(typedOther.isSetPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pincode, typedOther.pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDestCode()).compareTo(typedOther.isSetDestCode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestCode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destCode, typedOther.destCode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExp()).compareTo(typedOther.isSetExp());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExp()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exp, typedOther.exp);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCod()).compareTo(typedOther.isSetCod());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCod()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cod, typedOther.cod);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetStationType()).compareTo(typedOther.isSetStationType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStationType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stationType, typedOther.stationType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOtgAvailable()).compareTo(typedOther.isSetOtgAvailable());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOtgAvailable()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.otgAvailable, typedOther.otgAvailable);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // DEST_CODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destCode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // EXP
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.exp = iprot.readBool();
              setExpIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 5: // COD
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.cod = iprot.readBool();
              setCodIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 6: // STATION_TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.stationType = iprot.readI32();
              setStationTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 7: // OTG_AVAILABLE
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.otgAvailable = iprot.readBool();
              setOtgAvailableIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.pincode != null) {
        oprot.writeFieldBegin(PINCODE_FIELD_DESC);
        oprot.writeString(this.pincode);
        oprot.writeFieldEnd();
      }
      if (this.destCode != null) {
        oprot.writeFieldBegin(DEST_CODE_FIELD_DESC);
        oprot.writeString(this.destCode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(EXP_FIELD_DESC);
      oprot.writeBool(this.exp);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(COD_FIELD_DESC);
      oprot.writeBool(this.cod);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(STATION_TYPE_FIELD_DESC);
      oprot.writeI32(this.stationType);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(OTG_AVAILABLE_FIELD_DESC);
      oprot.writeBool(this.otgAvailable);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addPincode_args(");
      boolean first = true;

      sb.append("providerId:");
      sb.append(this.providerId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("pincode:");
      if (this.pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.pincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("destCode:");
      if (this.destCode == null) {
        sb.append("null");
      } else {
        sb.append(this.destCode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("exp:");
      sb.append(this.exp);
      first = false;
      if (!first) sb.append(", ");
      sb.append("cod:");
      sb.append(this.cod);
      first = false;
      if (!first) sb.append(", ");
      sb.append("stationType:");
      sb.append(this.stationType);
      first = false;
      if (!first) sb.append(", ");
      sb.append("otgAvailable:");
      sb.append(this.otgAvailable);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addPincode_result implements org.apache.thrift.TBase<addPincode_result, addPincode_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addPincode_result");



    /** 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.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(addPincode_result.class, metaDataMap);
    }

    public addPincode_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addPincode_result(addPincode_result other) {
    }

    public addPincode_result deepCopy() {
      return new addPincode_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addPincode_result)
        return this.equals((addPincode_result)that);
      return false;
    }

    public boolean equals(addPincode_result that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addPincode_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addPincode_result typedOther = (addPincode_result)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addPincode_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updatePincode_args implements org.apache.thrift.TBase<updatePincode_args, updatePincode_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updatePincode_args");

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pincode", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField EXP_FIELD_DESC = new org.apache.thrift.protocol.TField("exp", org.apache.thrift.protocol.TType.BOOL, (short)3);
    private static final org.apache.thrift.protocol.TField COD_FIELD_DESC = new org.apache.thrift.protocol.TField("cod", org.apache.thrift.protocol.TType.BOOL, (short)4);
    private static final org.apache.thrift.protocol.TField OTG_AVAILABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("otgAvailable", org.apache.thrift.protocol.TType.BOOL, (short)5);

    private long providerId; // required
    private String pincode; // required
    private boolean exp; // required
    private boolean cod; // required
    private boolean otgAvailable; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      PINCODE((short)2, "pincode"),
      EXP((short)3, "exp"),
      COD((short)4, "cod"),
      OTG_AVAILABLE((short)5, "otgAvailable");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PROVIDER_ID
            return PROVIDER_ID;
          case 2: // PINCODE
            return PINCODE;
          case 3: // EXP
            return EXP;
          case 4: // COD
            return COD;
          case 5: // OTG_AVAILABLE
            return OTG_AVAILABLE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private static final int __EXP_ISSET_ID = 1;
    private static final int __COD_ISSET_ID = 2;
    private static final int __OTGAVAILABLE_ISSET_ID = 3;
    private BitSet __isset_bit_vector = new BitSet(4);

    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.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.PINCODE, new org.apache.thrift.meta_data.FieldMetaData("pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.EXP, new org.apache.thrift.meta_data.FieldMetaData("exp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.COD, new org.apache.thrift.meta_data.FieldMetaData("cod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.OTG_AVAILABLE, new org.apache.thrift.meta_data.FieldMetaData("otgAvailable", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updatePincode_args.class, metaDataMap);
    }

    public updatePincode_args() {
    }

    public updatePincode_args(
      long providerId,
      String pincode,
      boolean exp,
      boolean cod,
      boolean otgAvailable)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.pincode = pincode;
      this.exp = exp;
      setExpIsSet(true);
      this.cod = cod;
      setCodIsSet(true);
      this.otgAvailable = otgAvailable;
      setOtgAvailableIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updatePincode_args(updatePincode_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetPincode()) {
        this.pincode = other.pincode;
      }
      this.exp = other.exp;
      this.cod = other.cod;
      this.otgAvailable = other.otgAvailable;
    }

    public updatePincode_args deepCopy() {
      return new updatePincode_args(this);
    }

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.pincode = null;
      setExpIsSet(false);
      this.exp = false;
      setCodIsSet(false);
      this.cod = false;
      setOtgAvailableIsSet(false);
      this.otgAvailable = false;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

    /** Returns true if field providerId is set (has been assigned a value) and false otherwise */
    public boolean isSetProviderId() {
      return __isset_bit_vector.get(__PROVIDERID_ISSET_ID);
    }

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public String getPincode() {
      return this.pincode;
    }

    public void setPincode(String pincode) {
      this.pincode = pincode;
    }

    public void unsetPincode() {
      this.pincode = null;
    }

    /** Returns true if field pincode is set (has been assigned a value) and false otherwise */
    public boolean isSetPincode() {
      return this.pincode != null;
    }

    public void setPincodeIsSet(boolean value) {
      if (!value) {
        this.pincode = null;
      }
    }

    public boolean isExp() {
      return this.exp;
    }

    public void setExp(boolean exp) {
      this.exp = exp;
      setExpIsSet(true);
    }

    public void unsetExp() {
      __isset_bit_vector.clear(__EXP_ISSET_ID);
    }

    /** Returns true if field exp is set (has been assigned a value) and false otherwise */
    public boolean isSetExp() {
      return __isset_bit_vector.get(__EXP_ISSET_ID);
    }

    public void setExpIsSet(boolean value) {
      __isset_bit_vector.set(__EXP_ISSET_ID, value);
    }

    public boolean isCod() {
      return this.cod;
    }

    public void setCod(boolean cod) {
      this.cod = cod;
      setCodIsSet(true);
    }

    public void unsetCod() {
      __isset_bit_vector.clear(__COD_ISSET_ID);
    }

    /** Returns true if field cod is set (has been assigned a value) and false otherwise */
    public boolean isSetCod() {
      return __isset_bit_vector.get(__COD_ISSET_ID);
    }

    public void setCodIsSet(boolean value) {
      __isset_bit_vector.set(__COD_ISSET_ID, value);
    }

    public boolean isOtgAvailable() {
      return this.otgAvailable;
    }

    public void setOtgAvailable(boolean otgAvailable) {
      this.otgAvailable = otgAvailable;
      setOtgAvailableIsSet(true);
    }

    public void unsetOtgAvailable() {
      __isset_bit_vector.clear(__OTGAVAILABLE_ISSET_ID);
    }

    /** Returns true if field otgAvailable is set (has been assigned a value) and false otherwise */
    public boolean isSetOtgAvailable() {
      return __isset_bit_vector.get(__OTGAVAILABLE_ISSET_ID);
    }

    public void setOtgAvailableIsSet(boolean value) {
      __isset_bit_vector.set(__OTGAVAILABLE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case PINCODE:
        if (value == null) {
          unsetPincode();
        } else {
          setPincode((String)value);
        }
        break;

      case EXP:
        if (value == null) {
          unsetExp();
        } else {
          setExp((Boolean)value);
        }
        break;

      case COD:
        if (value == null) {
          unsetCod();
        } else {
          setCod((Boolean)value);
        }
        break;

      case OTG_AVAILABLE:
        if (value == null) {
          unsetOtgAvailable();
        } else {
          setOtgAvailable((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PROVIDER_ID:
        return Long.valueOf(getProviderId());

      case PINCODE:
        return getPincode();

      case EXP:
        return Boolean.valueOf(isExp());

      case COD:
        return Boolean.valueOf(isCod());

      case OTG_AVAILABLE:
        return Boolean.valueOf(isOtgAvailable());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case PINCODE:
        return isSetPincode();
      case EXP:
        return isSetExp();
      case COD:
        return isSetCod();
      case OTG_AVAILABLE:
        return isSetOtgAvailable();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updatePincode_args)
        return this.equals((updatePincode_args)that);
      return false;
    }

    public boolean equals(updatePincode_args that) {
      if (that == null)
        return false;

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_pincode = true && this.isSetPincode();
      boolean that_present_pincode = true && that.isSetPincode();
      if (this_present_pincode || that_present_pincode) {
        if (!(this_present_pincode && that_present_pincode))
          return false;
        if (!this.pincode.equals(that.pincode))
          return false;
      }

      boolean this_present_exp = true;
      boolean that_present_exp = true;
      if (this_present_exp || that_present_exp) {
        if (!(this_present_exp && that_present_exp))
          return false;
        if (this.exp != that.exp)
          return false;
      }

      boolean this_present_cod = true;
      boolean that_present_cod = true;
      if (this_present_cod || that_present_cod) {
        if (!(this_present_cod && that_present_cod))
          return false;
        if (this.cod != that.cod)
          return false;
      }

      boolean this_present_otgAvailable = true;
      boolean that_present_otgAvailable = true;
      if (this_present_otgAvailable || that_present_otgAvailable) {
        if (!(this_present_otgAvailable && that_present_otgAvailable))
          return false;
        if (this.otgAvailable != that.otgAvailable)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updatePincode_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updatePincode_args typedOther = (updatePincode_args)other;

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPincode()).compareTo(typedOther.isSetPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pincode, typedOther.pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetExp()).compareTo(typedOther.isSetExp());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetExp()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exp, typedOther.exp);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCod()).compareTo(typedOther.isSetCod());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCod()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cod, typedOther.cod);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOtgAvailable()).compareTo(typedOther.isSetOtgAvailable());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOtgAvailable()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.otgAvailable, typedOther.otgAvailable);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // EXP
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.exp = iprot.readBool();
              setExpIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // COD
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.cod = iprot.readBool();
              setCodIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 5: // OTG_AVAILABLE
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.otgAvailable = iprot.readBool();
              setOtgAvailableIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.pincode != null) {
        oprot.writeFieldBegin(PINCODE_FIELD_DESC);
        oprot.writeString(this.pincode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(EXP_FIELD_DESC);
      oprot.writeBool(this.exp);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(COD_FIELD_DESC);
      oprot.writeBool(this.cod);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(OTG_AVAILABLE_FIELD_DESC);
      oprot.writeBool(this.otgAvailable);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updatePincode_args(");
      boolean first = true;

      sb.append("providerId:");
      sb.append(this.providerId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("pincode:");
      if (this.pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.pincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("exp:");
      sb.append(this.exp);
      first = false;
      if (!first) sb.append(", ");
      sb.append("cod:");
      sb.append(this.cod);
      first = false;
      if (!first) sb.append(", ");
      sb.append("otgAvailable:");
      sb.append(this.otgAvailable);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updatePincode_result implements org.apache.thrift.TBase<updatePincode_result, updatePincode_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updatePincode_result");



    /** 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.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(updatePincode_result.class, metaDataMap);
    }

    public updatePincode_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updatePincode_result(updatePincode_result other) {
    }

    public updatePincode_result deepCopy() {
      return new updatePincode_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updatePincode_result)
        return this.equals((updatePincode_result)that);
      return false;
    }

    public boolean equals(updatePincode_result that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updatePincode_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updatePincode_result typedOther = (updatePincode_result)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updatePincode_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addNewAwbs_args implements org.apache.thrift.TBase<addNewAwbs_args, addNewAwbs_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addNewAwbs_args");

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField COD_FIELD_DESC = new org.apache.thrift.protocol.TField("cod", org.apache.thrift.protocol.TType.BOOL, (short)2);
    private static final org.apache.thrift.protocol.TField AWBS_FIELD_DESC = new org.apache.thrift.protocol.TField("awbs", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField AWB_USED_FOR_FIELD_DESC = new org.apache.thrift.protocol.TField("awbUsedFor", org.apache.thrift.protocol.TType.I64, (short)4);

    private long providerId; // required
    private boolean cod; // required
    private List<String> awbs; // required
    private long awbUsedFor; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      COD((short)2, "cod"),
      AWBS((short)3, "awbs"),
      AWB_USED_FOR((short)4, "awbUsedFor");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PROVIDER_ID
            return PROVIDER_ID;
          case 2: // COD
            return COD;
          case 3: // AWBS
            return AWBS;
          case 4: // AWB_USED_FOR
            return AWB_USED_FOR;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private static final int __COD_ISSET_ID = 1;
    private static final int __AWBUSEDFOR_ISSET_ID = 2;
    private BitSet __isset_bit_vector = new BitSet(3);

    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.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.COD, new org.apache.thrift.meta_data.FieldMetaData("cod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.AWBS, new org.apache.thrift.meta_data.FieldMetaData("awbs", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.AWB_USED_FOR, new org.apache.thrift.meta_data.FieldMetaData("awbUsedFor", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addNewAwbs_args.class, metaDataMap);
    }

    public addNewAwbs_args() {
    }

    public addNewAwbs_args(
      long providerId,
      boolean cod,
      List<String> awbs,
      long awbUsedFor)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.cod = cod;
      setCodIsSet(true);
      this.awbs = awbs;
      this.awbUsedFor = awbUsedFor;
      setAwbUsedForIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addNewAwbs_args(addNewAwbs_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      this.cod = other.cod;
      if (other.isSetAwbs()) {
        List<String> __this__awbs = new ArrayList<String>();
        for (String other_element : other.awbs) {
          __this__awbs.add(other_element);
        }
        this.awbs = __this__awbs;
      }
      this.awbUsedFor = other.awbUsedFor;
    }

    public addNewAwbs_args deepCopy() {
      return new addNewAwbs_args(this);
    }

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      setCodIsSet(false);
      this.cod = false;
      this.awbs = null;
      setAwbUsedForIsSet(false);
      this.awbUsedFor = 0;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

    /** Returns true if field providerId is set (has been assigned a value) and false otherwise */
    public boolean isSetProviderId() {
      return __isset_bit_vector.get(__PROVIDERID_ISSET_ID);
    }

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public boolean isCod() {
      return this.cod;
    }

    public void setCod(boolean cod) {
      this.cod = cod;
      setCodIsSet(true);
    }

    public void unsetCod() {
      __isset_bit_vector.clear(__COD_ISSET_ID);
    }

    /** Returns true if field cod is set (has been assigned a value) and false otherwise */
    public boolean isSetCod() {
      return __isset_bit_vector.get(__COD_ISSET_ID);
    }

    public void setCodIsSet(boolean value) {
      __isset_bit_vector.set(__COD_ISSET_ID, value);
    }

    public int getAwbsSize() {
      return (this.awbs == null) ? 0 : this.awbs.size();
    }

    public java.util.Iterator<String> getAwbsIterator() {
      return (this.awbs == null) ? null : this.awbs.iterator();
    }

    public void addToAwbs(String elem) {
      if (this.awbs == null) {
        this.awbs = new ArrayList<String>();
      }
      this.awbs.add(elem);
    }

    public List<String> getAwbs() {
      return this.awbs;
    }

    public void setAwbs(List<String> awbs) {
      this.awbs = awbs;
    }

    public void unsetAwbs() {
      this.awbs = null;
    }

    /** Returns true if field awbs is set (has been assigned a value) and false otherwise */
    public boolean isSetAwbs() {
      return this.awbs != null;
    }

    public void setAwbsIsSet(boolean value) {
      if (!value) {
        this.awbs = null;
      }
    }

    public long getAwbUsedFor() {
      return this.awbUsedFor;
    }

    public void setAwbUsedFor(long awbUsedFor) {
      this.awbUsedFor = awbUsedFor;
      setAwbUsedForIsSet(true);
    }

    public void unsetAwbUsedFor() {
      __isset_bit_vector.clear(__AWBUSEDFOR_ISSET_ID);
    }

    /** Returns true if field awbUsedFor is set (has been assigned a value) and false otherwise */
    public boolean isSetAwbUsedFor() {
      return __isset_bit_vector.get(__AWBUSEDFOR_ISSET_ID);
    }

    public void setAwbUsedForIsSet(boolean value) {
      __isset_bit_vector.set(__AWBUSEDFOR_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case COD:
        if (value == null) {
          unsetCod();
        } else {
          setCod((Boolean)value);
        }
        break;

      case AWBS:
        if (value == null) {
          unsetAwbs();
        } else {
          setAwbs((List<String>)value);
        }
        break;

      case AWB_USED_FOR:
        if (value == null) {
          unsetAwbUsedFor();
        } else {
          setAwbUsedFor((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PROVIDER_ID:
        return Long.valueOf(getProviderId());

      case COD:
        return Boolean.valueOf(isCod());

      case AWBS:
        return getAwbs();

      case AWB_USED_FOR:
        return Long.valueOf(getAwbUsedFor());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case COD:
        return isSetCod();
      case AWBS:
        return isSetAwbs();
      case AWB_USED_FOR:
        return isSetAwbUsedFor();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addNewAwbs_args)
        return this.equals((addNewAwbs_args)that);
      return false;
    }

    public boolean equals(addNewAwbs_args that) {
      if (that == null)
        return false;

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_cod = true;
      boolean that_present_cod = true;
      if (this_present_cod || that_present_cod) {
        if (!(this_present_cod && that_present_cod))
          return false;
        if (this.cod != that.cod)
          return false;
      }

      boolean this_present_awbs = true && this.isSetAwbs();
      boolean that_present_awbs = true && that.isSetAwbs();
      if (this_present_awbs || that_present_awbs) {
        if (!(this_present_awbs && that_present_awbs))
          return false;
        if (!this.awbs.equals(that.awbs))
          return false;
      }

      boolean this_present_awbUsedFor = true;
      boolean that_present_awbUsedFor = true;
      if (this_present_awbUsedFor || that_present_awbUsedFor) {
        if (!(this_present_awbUsedFor && that_present_awbUsedFor))
          return false;
        if (this.awbUsedFor != that.awbUsedFor)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addNewAwbs_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addNewAwbs_args typedOther = (addNewAwbs_args)other;

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetCod()).compareTo(typedOther.isSetCod());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCod()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cod, typedOther.cod);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAwbs()).compareTo(typedOther.isSetAwbs());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAwbs()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.awbs, typedOther.awbs);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetAwbUsedFor()).compareTo(typedOther.isSetAwbUsedFor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAwbUsedFor()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.awbUsedFor, typedOther.awbUsedFor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // COD
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.cod = iprot.readBool();
              setCodIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // AWBS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list24 = iprot.readListBegin();
                this.awbs = new ArrayList<String>(_list24.size);
                for (int _i25 = 0; _i25 < _list24.size; ++_i25)
                {
                  String _elem26; // required
                  _elem26 = iprot.readString();
                  this.awbs.add(_elem26);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // AWB_USED_FOR
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.awbUsedFor = iprot.readI64();
              setAwbUsedForIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(COD_FIELD_DESC);
      oprot.writeBool(this.cod);
      oprot.writeFieldEnd();
      if (this.awbs != null) {
        oprot.writeFieldBegin(AWBS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.awbs.size()));
          for (String _iter27 : this.awbs)
          {
            oprot.writeString(_iter27);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(AWB_USED_FOR_FIELD_DESC);
      oprot.writeI64(this.awbUsedFor);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addNewAwbs_args(");
      boolean first = true;

      sb.append("providerId:");
      sb.append(this.providerId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("cod:");
      sb.append(this.cod);
      first = false;
      if (!first) sb.append(", ");
      sb.append("awbs:");
      if (this.awbs == null) {
        sb.append("null");
      } else {
        sb.append(this.awbs);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("awbUsedFor:");
      sb.append(this.awbUsedFor);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addNewAwbs_result implements org.apache.thrift.TBase<addNewAwbs_result, addNewAwbs_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addNewAwbs_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private boolean success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addNewAwbs_result.class, metaDataMap);
    }

    public addNewAwbs_result() {
    }

    public addNewAwbs_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addNewAwbs_result(addNewAwbs_result other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.success = other.success;
    }

    public addNewAwbs_result deepCopy() {
      return new addNewAwbs_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Boolean.valueOf(isSuccess());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addNewAwbs_result)
        return this.equals((addNewAwbs_result)that);
      return false;
    }

    public boolean equals(addNewAwbs_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addNewAwbs_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addNewAwbs_result typedOther = (addNewAwbs_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.success = iprot.readBool();
              setSuccessIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeBool(this.success);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addNewAwbs_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
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class runLogisticsLocationInfoUpdate_args implements org.apache.thrift.TBase<runLogisticsLocationInfoUpdate_args, runLogisticsLocationInfoUpdate_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("runLogisticsLocationInfoUpdate_args");

    private static final org.apache.thrift.protocol.TField LOGISTICS_LOCATION_INFO_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("logisticsLocationInfoList", org.apache.thrift.protocol.TType.LIST, (short)1);
    private static final org.apache.thrift.protocol.TField RUN_COMPLETE_UPDATE_FIELD_DESC = new org.apache.thrift.protocol.TField("runCompleteUpdate", org.apache.thrift.protocol.TType.BOOL, (short)2);

    private List<LogisticsLocationInfo> logisticsLocationInfoList; // required
    private boolean runCompleteUpdate; // 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 {
      LOGISTICS_LOCATION_INFO_LIST((short)1, "logisticsLocationInfoList"),
      RUN_COMPLETE_UPDATE((short)2, "runCompleteUpdate");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // LOGISTICS_LOCATION_INFO_LIST
            return LOGISTICS_LOCATION_INFO_LIST;
          case 2: // RUN_COMPLETE_UPDATE
            return RUN_COMPLETE_UPDATE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __RUNCOMPLETEUPDATE_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.LOGISTICS_LOCATION_INFO_LIST, new org.apache.thrift.meta_data.FieldMetaData("logisticsLocationInfoList", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LogisticsLocationInfo.class))));
      tmpMap.put(_Fields.RUN_COMPLETE_UPDATE, new org.apache.thrift.meta_data.FieldMetaData("runCompleteUpdate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(runLogisticsLocationInfoUpdate_args.class, metaDataMap);
    }

    public runLogisticsLocationInfoUpdate_args() {
    }

    public runLogisticsLocationInfoUpdate_args(
      List<LogisticsLocationInfo> logisticsLocationInfoList,
      boolean runCompleteUpdate)
    {
      this();
      this.logisticsLocationInfoList = logisticsLocationInfoList;
      this.runCompleteUpdate = runCompleteUpdate;
      setRunCompleteUpdateIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public runLogisticsLocationInfoUpdate_args(runLogisticsLocationInfoUpdate_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetLogisticsLocationInfoList()) {
        List<LogisticsLocationInfo> __this__logisticsLocationInfoList = new ArrayList<LogisticsLocationInfo>();
        for (LogisticsLocationInfo other_element : other.logisticsLocationInfoList) {
          __this__logisticsLocationInfoList.add(new LogisticsLocationInfo(other_element));
        }
        this.logisticsLocationInfoList = __this__logisticsLocationInfoList;
      }
      this.runCompleteUpdate = other.runCompleteUpdate;
    }

    public runLogisticsLocationInfoUpdate_args deepCopy() {
      return new runLogisticsLocationInfoUpdate_args(this);
    }

    @Override
    public void clear() {
      this.logisticsLocationInfoList = null;
      setRunCompleteUpdateIsSet(false);
      this.runCompleteUpdate = false;
    }

    public int getLogisticsLocationInfoListSize() {
      return (this.logisticsLocationInfoList == null) ? 0 : this.logisticsLocationInfoList.size();
    }

    public java.util.Iterator<LogisticsLocationInfo> getLogisticsLocationInfoListIterator() {
      return (this.logisticsLocationInfoList == null) ? null : this.logisticsLocationInfoList.iterator();
    }

    public void addToLogisticsLocationInfoList(LogisticsLocationInfo elem) {
      if (this.logisticsLocationInfoList == null) {
        this.logisticsLocationInfoList = new ArrayList<LogisticsLocationInfo>();
      }
      this.logisticsLocationInfoList.add(elem);
    }

    public List<LogisticsLocationInfo> getLogisticsLocationInfoList() {
      return this.logisticsLocationInfoList;
    }

    public void setLogisticsLocationInfoList(List<LogisticsLocationInfo> logisticsLocationInfoList) {
      this.logisticsLocationInfoList = logisticsLocationInfoList;
    }

    public void unsetLogisticsLocationInfoList() {
      this.logisticsLocationInfoList = null;
    }

    /** Returns true if field logisticsLocationInfoList is set (has been assigned a value) and false otherwise */
    public boolean isSetLogisticsLocationInfoList() {
      return this.logisticsLocationInfoList != null;
    }

    public void setLogisticsLocationInfoListIsSet(boolean value) {
      if (!value) {
        this.logisticsLocationInfoList = null;
      }
    }

    public boolean isRunCompleteUpdate() {
      return this.runCompleteUpdate;
    }

    public void setRunCompleteUpdate(boolean runCompleteUpdate) {
      this.runCompleteUpdate = runCompleteUpdate;
      setRunCompleteUpdateIsSet(true);
    }

    public void unsetRunCompleteUpdate() {
      __isset_bit_vector.clear(__RUNCOMPLETEUPDATE_ISSET_ID);
    }

    /** Returns true if field runCompleteUpdate is set (has been assigned a value) and false otherwise */
    public boolean isSetRunCompleteUpdate() {
      return __isset_bit_vector.get(__RUNCOMPLETEUPDATE_ISSET_ID);
    }

    public void setRunCompleteUpdateIsSet(boolean value) {
      __isset_bit_vector.set(__RUNCOMPLETEUPDATE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case LOGISTICS_LOCATION_INFO_LIST:
        if (value == null) {
          unsetLogisticsLocationInfoList();
        } else {
          setLogisticsLocationInfoList((List<LogisticsLocationInfo>)value);
        }
        break;

      case RUN_COMPLETE_UPDATE:
        if (value == null) {
          unsetRunCompleteUpdate();
        } else {
          setRunCompleteUpdate((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case LOGISTICS_LOCATION_INFO_LIST:
        return getLogisticsLocationInfoList();

      case RUN_COMPLETE_UPDATE:
        return Boolean.valueOf(isRunCompleteUpdate());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 LOGISTICS_LOCATION_INFO_LIST:
        return isSetLogisticsLocationInfoList();
      case RUN_COMPLETE_UPDATE:
        return isSetRunCompleteUpdate();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof runLogisticsLocationInfoUpdate_args)
        return this.equals((runLogisticsLocationInfoUpdate_args)that);
      return false;
    }

    public boolean equals(runLogisticsLocationInfoUpdate_args that) {
      if (that == null)
        return false;

      boolean this_present_logisticsLocationInfoList = true && this.isSetLogisticsLocationInfoList();
      boolean that_present_logisticsLocationInfoList = true && that.isSetLogisticsLocationInfoList();
      if (this_present_logisticsLocationInfoList || that_present_logisticsLocationInfoList) {
        if (!(this_present_logisticsLocationInfoList && that_present_logisticsLocationInfoList))
          return false;
        if (!this.logisticsLocationInfoList.equals(that.logisticsLocationInfoList))
          return false;
      }

      boolean this_present_runCompleteUpdate = true;
      boolean that_present_runCompleteUpdate = true;
      if (this_present_runCompleteUpdate || that_present_runCompleteUpdate) {
        if (!(this_present_runCompleteUpdate && that_present_runCompleteUpdate))
          return false;
        if (this.runCompleteUpdate != that.runCompleteUpdate)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(runLogisticsLocationInfoUpdate_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      runLogisticsLocationInfoUpdate_args typedOther = (runLogisticsLocationInfoUpdate_args)other;

      lastComparison = Boolean.valueOf(isSetLogisticsLocationInfoList()).compareTo(typedOther.isSetLogisticsLocationInfoList());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetLogisticsLocationInfoList()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.logisticsLocationInfoList, typedOther.logisticsLocationInfoList);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetRunCompleteUpdate()).compareTo(typedOther.isSetRunCompleteUpdate());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRunCompleteUpdate()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.runCompleteUpdate, typedOther.runCompleteUpdate);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // LOGISTICS_LOCATION_INFO_LIST
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list28 = iprot.readListBegin();
                this.logisticsLocationInfoList = new ArrayList<LogisticsLocationInfo>(_list28.size);
                for (int _i29 = 0; _i29 < _list28.size; ++_i29)
                {
                  LogisticsLocationInfo _elem30; // required
                  _elem30 = new LogisticsLocationInfo();
                  _elem30.read(iprot);
                  this.logisticsLocationInfoList.add(_elem30);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // RUN_COMPLETE_UPDATE
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.runCompleteUpdate = iprot.readBool();
              setRunCompleteUpdateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.logisticsLocationInfoList != null) {
        oprot.writeFieldBegin(LOGISTICS_LOCATION_INFO_LIST_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.logisticsLocationInfoList.size()));
          for (LogisticsLocationInfo _iter31 : this.logisticsLocationInfoList)
          {
            _iter31.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(RUN_COMPLETE_UPDATE_FIELD_DESC);
      oprot.writeBool(this.runCompleteUpdate);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("runLogisticsLocationInfoUpdate_args(");
      boolean first = true;

      sb.append("logisticsLocationInfoList:");
      if (this.logisticsLocationInfoList == null) {
        sb.append("null");
      } else {
        sb.append(this.logisticsLocationInfoList);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("runCompleteUpdate:");
      sb.append(this.runCompleteUpdate);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class runLogisticsLocationInfoUpdate_result implements org.apache.thrift.TBase<runLogisticsLocationInfoUpdate_result, runLogisticsLocationInfoUpdate_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("runLogisticsLocationInfoUpdate_result");



    /** 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.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(runLogisticsLocationInfoUpdate_result.class, metaDataMap);
    }

    public runLogisticsLocationInfoUpdate_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public runLogisticsLocationInfoUpdate_result(runLogisticsLocationInfoUpdate_result other) {
    }

    public runLogisticsLocationInfoUpdate_result deepCopy() {
      return new runLogisticsLocationInfoUpdate_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof runLogisticsLocationInfoUpdate_result)
        return this.equals((runLogisticsLocationInfoUpdate_result)that);
      return false;
    }

    public boolean equals(runLogisticsLocationInfoUpdate_result that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(runLogisticsLocationInfoUpdate_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      runLogisticsLocationInfoUpdate_result typedOther = (runLogisticsLocationInfoUpdate_result)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("runLogisticsLocationInfoUpdate_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class adjustDeliveryDays_args implements org.apache.thrift.TBase<adjustDeliveryDays_args, adjustDeliveryDays_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("adjustDeliveryDays_args");

    private static final org.apache.thrift.protocol.TField START_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("startDate", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField DAYS_FIELD_DESC = new org.apache.thrift.protocol.TField("days", org.apache.thrift.protocol.TType.I64, (short)2);

    private long startDate; // required
    private long days; // 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 {
      START_DATE((short)1, "startDate"),
      DAYS((short)2, "days");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // START_DATE
            return START_DATE;
          case 2: // DAYS
            return DAYS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __STARTDATE_ISSET_ID = 0;
    private static final int __DAYS_ISSET_ID = 1;
    private BitSet __isset_bit_vector = new BitSet(2);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.START_DATE, new org.apache.thrift.meta_data.FieldMetaData("startDate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.DAYS, new org.apache.thrift.meta_data.FieldMetaData("days", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(adjustDeliveryDays_args.class, metaDataMap);
    }

    public adjustDeliveryDays_args() {
    }

    public adjustDeliveryDays_args(
      long startDate,
      long days)
    {
      this();
      this.startDate = startDate;
      setStartDateIsSet(true);
      this.days = days;
      setDaysIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public adjustDeliveryDays_args(adjustDeliveryDays_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.startDate = other.startDate;
      this.days = other.days;
    }

    public adjustDeliveryDays_args deepCopy() {
      return new adjustDeliveryDays_args(this);
    }

    @Override
    public void clear() {
      setStartDateIsSet(false);
      this.startDate = 0;
      setDaysIsSet(false);
      this.days = 0;
    }

    public long getStartDate() {
      return this.startDate;
    }

    public void setStartDate(long startDate) {
      this.startDate = startDate;
      setStartDateIsSet(true);
    }

    public void unsetStartDate() {
      __isset_bit_vector.clear(__STARTDATE_ISSET_ID);
    }

    /** Returns true if field startDate is set (has been assigned a value) and false otherwise */
    public boolean isSetStartDate() {
      return __isset_bit_vector.get(__STARTDATE_ISSET_ID);
    }

    public void setStartDateIsSet(boolean value) {
      __isset_bit_vector.set(__STARTDATE_ISSET_ID, value);
    }

    public long getDays() {
      return this.days;
    }

    public void setDays(long days) {
      this.days = days;
      setDaysIsSet(true);
    }

    public void unsetDays() {
      __isset_bit_vector.clear(__DAYS_ISSET_ID);
    }

    /** Returns true if field days is set (has been assigned a value) and false otherwise */
    public boolean isSetDays() {
      return __isset_bit_vector.get(__DAYS_ISSET_ID);
    }

    public void setDaysIsSet(boolean value) {
      __isset_bit_vector.set(__DAYS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case START_DATE:
        if (value == null) {
          unsetStartDate();
        } else {
          setStartDate((Long)value);
        }
        break;

      case DAYS:
        if (value == null) {
          unsetDays();
        } else {
          setDays((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case START_DATE:
        return Long.valueOf(getStartDate());

      case DAYS:
        return Long.valueOf(getDays());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 START_DATE:
        return isSetStartDate();
      case DAYS:
        return isSetDays();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof adjustDeliveryDays_args)
        return this.equals((adjustDeliveryDays_args)that);
      return false;
    }

    public boolean equals(adjustDeliveryDays_args that) {
      if (that == null)
        return false;

      boolean this_present_startDate = true;
      boolean that_present_startDate = true;
      if (this_present_startDate || that_present_startDate) {
        if (!(this_present_startDate && that_present_startDate))
          return false;
        if (this.startDate != that.startDate)
          return false;
      }

      boolean this_present_days = true;
      boolean that_present_days = true;
      if (this_present_days || that_present_days) {
        if (!(this_present_days && that_present_days))
          return false;
        if (this.days != that.days)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(adjustDeliveryDays_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      adjustDeliveryDays_args typedOther = (adjustDeliveryDays_args)other;

      lastComparison = Boolean.valueOf(isSetStartDate()).compareTo(typedOther.isSetStartDate());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStartDate()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.startDate, typedOther.startDate);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetDays()).compareTo(typedOther.isSetDays());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDays()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.days, typedOther.days);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // START_DATE
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.startDate = iprot.readI64();
              setStartDateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // DAYS
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.days = iprot.readI64();
              setDaysIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(START_DATE_FIELD_DESC);
      oprot.writeI64(this.startDate);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(DAYS_FIELD_DESC);
      oprot.writeI64(this.days);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("adjustDeliveryDays_args(");
      boolean first = true;

      sb.append("startDate:");
      sb.append(this.startDate);
      first = false;
      if (!first) sb.append(", ");
      sb.append("days:");
      sb.append(this.days);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class adjustDeliveryDays_result implements org.apache.thrift.TBase<adjustDeliveryDays_result, adjustDeliveryDays_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("adjustDeliveryDays_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I64, (short)0);

    private long 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.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.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(adjustDeliveryDays_result.class, metaDataMap);
    }

    public adjustDeliveryDays_result() {
    }

    public adjustDeliveryDays_result(
      long success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public adjustDeliveryDays_result(adjustDeliveryDays_result other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.success = other.success;
    }

    public adjustDeliveryDays_result deepCopy() {
      return new adjustDeliveryDays_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
    }

    public long getSuccess() {
      return this.success;
    }

    public void setSuccess(long success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Long.valueOf(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 adjustDeliveryDays_result)
        return this.equals((adjustDeliveryDays_result)that);
      return false;
    }

    public boolean equals(adjustDeliveryDays_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(adjustDeliveryDays_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      adjustDeliveryDays_result typedOther = (adjustDeliveryDays_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.success = iprot.readI64();
              setSuccessIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeI64(this.success);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("adjustDeliveryDays_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
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getFirstDeliveryEstimateForWhLocation_args implements org.apache.thrift.TBase<getFirstDeliveryEstimateForWhLocation_args, getFirstDeliveryEstimateForWhLocation_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFirstDeliveryEstimateForWhLocation_args");

    private static final org.apache.thrift.protocol.TField PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pincode", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField WH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("whLocation", org.apache.thrift.protocol.TType.I64, (short)2);

    private String pincode; // required
    private long whLocation; // 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 {
      PINCODE((short)1, "pincode"),
      WH_LOCATION((short)2, "whLocation");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PINCODE
            return PINCODE;
          case 2: // WH_LOCATION
            return WH_LOCATION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __WHLOCATION_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PINCODE, new org.apache.thrift.meta_data.FieldMetaData("pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.WH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("whLocation", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFirstDeliveryEstimateForWhLocation_args.class, metaDataMap);
    }

    public getFirstDeliveryEstimateForWhLocation_args() {
    }

    public getFirstDeliveryEstimateForWhLocation_args(
      String pincode,
      long whLocation)
    {
      this();
      this.pincode = pincode;
      this.whLocation = whLocation;
      setWhLocationIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getFirstDeliveryEstimateForWhLocation_args(getFirstDeliveryEstimateForWhLocation_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetPincode()) {
        this.pincode = other.pincode;
      }
      this.whLocation = other.whLocation;
    }

    public getFirstDeliveryEstimateForWhLocation_args deepCopy() {
      return new getFirstDeliveryEstimateForWhLocation_args(this);
    }

    @Override
    public void clear() {
      this.pincode = null;
      setWhLocationIsSet(false);
      this.whLocation = 0;
    }

    public String getPincode() {
      return this.pincode;
    }

    public void setPincode(String pincode) {
      this.pincode = pincode;
    }

    public void unsetPincode() {
      this.pincode = null;
    }

    /** Returns true if field pincode is set (has been assigned a value) and false otherwise */
    public boolean isSetPincode() {
      return this.pincode != null;
    }

    public void setPincodeIsSet(boolean value) {
      if (!value) {
        this.pincode = null;
      }
    }

    public long getWhLocation() {
      return this.whLocation;
    }

    public void setWhLocation(long whLocation) {
      this.whLocation = whLocation;
      setWhLocationIsSet(true);
    }

    public void unsetWhLocation() {
      __isset_bit_vector.clear(__WHLOCATION_ISSET_ID);
    }

    /** Returns true if field whLocation is set (has been assigned a value) and false otherwise */
    public boolean isSetWhLocation() {
      return __isset_bit_vector.get(__WHLOCATION_ISSET_ID);
    }

    public void setWhLocationIsSet(boolean value) {
      __isset_bit_vector.set(__WHLOCATION_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PINCODE:
        if (value == null) {
          unsetPincode();
        } else {
          setPincode((String)value);
        }
        break;

      case WH_LOCATION:
        if (value == null) {
          unsetWhLocation();
        } else {
          setWhLocation((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PINCODE:
        return getPincode();

      case WH_LOCATION:
        return Long.valueOf(getWhLocation());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PINCODE:
        return isSetPincode();
      case WH_LOCATION:
        return isSetWhLocation();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getFirstDeliveryEstimateForWhLocation_args)
        return this.equals((getFirstDeliveryEstimateForWhLocation_args)that);
      return false;
    }

    public boolean equals(getFirstDeliveryEstimateForWhLocation_args that) {
      if (that == null)
        return false;

      boolean this_present_pincode = true && this.isSetPincode();
      boolean that_present_pincode = true && that.isSetPincode();
      if (this_present_pincode || that_present_pincode) {
        if (!(this_present_pincode && that_present_pincode))
          return false;
        if (!this.pincode.equals(that.pincode))
          return false;
      }

      boolean this_present_whLocation = true;
      boolean that_present_whLocation = true;
      if (this_present_whLocation || that_present_whLocation) {
        if (!(this_present_whLocation && that_present_whLocation))
          return false;
        if (this.whLocation != that.whLocation)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getFirstDeliveryEstimateForWhLocation_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getFirstDeliveryEstimateForWhLocation_args typedOther = (getFirstDeliveryEstimateForWhLocation_args)other;

      lastComparison = Boolean.valueOf(isSetPincode()).compareTo(typedOther.isSetPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pincode, typedOther.pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWhLocation()).compareTo(typedOther.isSetWhLocation());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWhLocation()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.whLocation, typedOther.whLocation);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // WH_LOCATION
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.whLocation = iprot.readI64();
              setWhLocationIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.pincode != null) {
        oprot.writeFieldBegin(PINCODE_FIELD_DESC);
        oprot.writeString(this.pincode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(WH_LOCATION_FIELD_DESC);
      oprot.writeI64(this.whLocation);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFirstDeliveryEstimateForWhLocation_args(");
      boolean first = true;

      sb.append("pincode:");
      if (this.pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.pincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("whLocation:");
      sb.append(this.whLocation);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getFirstDeliveryEstimateForWhLocation_result implements org.apache.thrift.TBase<getFirstDeliveryEstimateForWhLocation_result, getFirstDeliveryEstimateForWhLocation_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getFirstDeliveryEstimateForWhLocation_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I64, (short)0);

    private long 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.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.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getFirstDeliveryEstimateForWhLocation_result.class, metaDataMap);
    }

    public getFirstDeliveryEstimateForWhLocation_result() {
    }

    public getFirstDeliveryEstimateForWhLocation_result(
      long success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getFirstDeliveryEstimateForWhLocation_result(getFirstDeliveryEstimateForWhLocation_result other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.success = other.success;
    }

    public getFirstDeliveryEstimateForWhLocation_result deepCopy() {
      return new getFirstDeliveryEstimateForWhLocation_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
    }

    public long getSuccess() {
      return this.success;
    }

    public void setSuccess(long success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return Long.valueOf(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 getFirstDeliveryEstimateForWhLocation_result)
        return this.equals((getFirstDeliveryEstimateForWhLocation_result)that);
      return false;
    }

    public boolean equals(getFirstDeliveryEstimateForWhLocation_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getFirstDeliveryEstimateForWhLocation_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getFirstDeliveryEstimateForWhLocation_result typedOther = (getFirstDeliveryEstimateForWhLocation_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.success = iprot.readI64();
              setSuccessIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeI64(this.success);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getFirstDeliveryEstimateForWhLocation_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
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getNewEmptyAwb_args implements org.apache.thrift.TBase<getNewEmptyAwb_args, getNewEmptyAwb_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getNewEmptyAwb_args");

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)2);
    private static final org.apache.thrift.protocol.TField ORDER_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("orderQuantity", org.apache.thrift.protocol.TType.I64, (short)3);

    private long providerId; // required
    private DeliveryType type; // required
    private long orderQuantity; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      /**
       * 
       * @see DeliveryType
       */
      TYPE((short)2, "type"),
      ORDER_QUANTITY((short)3, "orderQuantity");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PROVIDER_ID
            return PROVIDER_ID;
          case 2: // TYPE
            return TYPE;
          case 3: // ORDER_QUANTITY
            return ORDER_QUANTITY;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private static final int __ORDERQUANTITY_ISSET_ID = 1;
    private BitSet __isset_bit_vector = new BitSet(2);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DeliveryType.class)));
      tmpMap.put(_Fields.ORDER_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("orderQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNewEmptyAwb_args.class, metaDataMap);
    }

    public getNewEmptyAwb_args() {
    }

    public getNewEmptyAwb_args(
      long providerId,
      DeliveryType type,
      long orderQuantity)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.type = type;
      this.orderQuantity = orderQuantity;
      setOrderQuantityIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getNewEmptyAwb_args(getNewEmptyAwb_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetType()) {
        this.type = other.type;
      }
      this.orderQuantity = other.orderQuantity;
    }

    public getNewEmptyAwb_args deepCopy() {
      return new getNewEmptyAwb_args(this);
    }

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.type = null;
      setOrderQuantityIsSet(false);
      this.orderQuantity = 0;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

    /** Returns true if field providerId is set (has been assigned a value) and false otherwise */
    public boolean isSetProviderId() {
      return __isset_bit_vector.get(__PROVIDERID_ISSET_ID);
    }

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    /**
     * 
     * @see DeliveryType
     */
    public DeliveryType getType() {
      return this.type;
    }

    /**
     * 
     * @see DeliveryType
     */
    public void setType(DeliveryType type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

    /** Returns true if field type is set (has been assigned a value) and false otherwise */
    public boolean isSetType() {
      return this.type != null;
    }

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public long getOrderQuantity() {
      return this.orderQuantity;
    }

    public void setOrderQuantity(long orderQuantity) {
      this.orderQuantity = orderQuantity;
      setOrderQuantityIsSet(true);
    }

    public void unsetOrderQuantity() {
      __isset_bit_vector.clear(__ORDERQUANTITY_ISSET_ID);
    }

    /** Returns true if field orderQuantity is set (has been assigned a value) and false otherwise */
    public boolean isSetOrderQuantity() {
      return __isset_bit_vector.get(__ORDERQUANTITY_ISSET_ID);
    }

    public void setOrderQuantityIsSet(boolean value) {
      __isset_bit_vector.set(__ORDERQUANTITY_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((DeliveryType)value);
        }
        break;

      case ORDER_QUANTITY:
        if (value == null) {
          unsetOrderQuantity();
        } else {
          setOrderQuantity((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PROVIDER_ID:
        return Long.valueOf(getProviderId());

      case TYPE:
        return getType();

      case ORDER_QUANTITY:
        return Long.valueOf(getOrderQuantity());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case TYPE:
        return isSetType();
      case ORDER_QUANTITY:
        return isSetOrderQuantity();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getNewEmptyAwb_args)
        return this.equals((getNewEmptyAwb_args)that);
      return false;
    }

    public boolean equals(getNewEmptyAwb_args that) {
      if (that == null)
        return false;

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      boolean this_present_orderQuantity = true;
      boolean that_present_orderQuantity = true;
      if (this_present_orderQuantity || that_present_orderQuantity) {
        if (!(this_present_orderQuantity && that_present_orderQuantity))
          return false;
        if (this.orderQuantity != that.orderQuantity)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getNewEmptyAwb_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getNewEmptyAwb_args typedOther = (getNewEmptyAwb_args)other;

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetOrderQuantity()).compareTo(typedOther.isSetOrderQuantity());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetOrderQuantity()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.orderQuantity, typedOther.orderQuantity);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // TYPE
            if (field.type == org.apache.thrift.protocol.TType.I32) {
              this.type = DeliveryType.findByValue(iprot.readI32());
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // ORDER_QUANTITY
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.orderQuantity = iprot.readI64();
              setOrderQuantityIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(this.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(ORDER_QUANTITY_FIELD_DESC);
      oprot.writeI64(this.orderQuantity);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getNewEmptyAwb_args(");
      boolean first = true;

      sb.append("providerId:");
      sb.append(this.providerId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("orderQuantity:");
      sb.append(this.orderQuantity);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getNewEmptyAwb_result implements org.apache.thrift.TBase<getNewEmptyAwb_result, getNewEmptyAwb_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getNewEmptyAwb_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private String success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SE
            return SE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNewEmptyAwb_result.class, metaDataMap);
    }

    public getNewEmptyAwb_result() {
    }

    public getNewEmptyAwb_result(
      String success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getNewEmptyAwb_result(getNewEmptyAwb_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

    public getNewEmptyAwb_result deepCopy() {
      return new getNewEmptyAwb_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.se = null;
    }

    public String getSuccess() {
      return this.success;
    }

    public void setSuccess(String success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

    /** Returns true if field se is set (has been assigned a value) and false otherwise */
    public boolean isSetSe() {
      return this.se != null;
    }

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((String)value);
        }
        break;

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getNewEmptyAwb_result)
        return this.equals((getNewEmptyAwb_result)that);
      return false;
    }

    public boolean equals(getNewEmptyAwb_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getNewEmptyAwb_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getNewEmptyAwb_result typedOther = (getNewEmptyAwb_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSe()).compareTo(typedOther.isSetSe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.se, typedOther.se);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.success = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        oprot.writeString(this.success);
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getNewEmptyAwb_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("se:");
      if (this.se == null) {
        sb.append("null");
      } else {
        sb.append(this.se);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getProviderLimitDetailsForPincode_args implements org.apache.thrift.TBase<getProviderLimitDetailsForPincode_args, getProviderLimitDetailsForPincode_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProviderLimitDetailsForPincode_args");

    private static final org.apache.thrift.protocol.TField PROVIDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("providerId", org.apache.thrift.protocol.TType.I64, (short)1);
    private static final org.apache.thrift.protocol.TField PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pincode", org.apache.thrift.protocol.TType.STRING, (short)2);

    private long providerId; // required
    private String pincode; // 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 {
      PROVIDER_ID((short)1, "providerId"),
      PINCODE((short)2, "pincode");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PROVIDER_ID
            return PROVIDER_ID;
          case 2: // PINCODE
            return PINCODE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __PROVIDERID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PROVIDER_ID, new org.apache.thrift.meta_data.FieldMetaData("providerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.PINCODE, new org.apache.thrift.meta_data.FieldMetaData("pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProviderLimitDetailsForPincode_args.class, metaDataMap);
    }

    public getProviderLimitDetailsForPincode_args() {
    }

    public getProviderLimitDetailsForPincode_args(
      long providerId,
      String pincode)
    {
      this();
      this.providerId = providerId;
      setProviderIdIsSet(true);
      this.pincode = pincode;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProviderLimitDetailsForPincode_args(getProviderLimitDetailsForPincode_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.providerId = other.providerId;
      if (other.isSetPincode()) {
        this.pincode = other.pincode;
      }
    }

    public getProviderLimitDetailsForPincode_args deepCopy() {
      return new getProviderLimitDetailsForPincode_args(this);
    }

    @Override
    public void clear() {
      setProviderIdIsSet(false);
      this.providerId = 0;
      this.pincode = null;
    }

    public long getProviderId() {
      return this.providerId;
    }

    public void setProviderId(long providerId) {
      this.providerId = providerId;
      setProviderIdIsSet(true);
    }

    public void unsetProviderId() {
      __isset_bit_vector.clear(__PROVIDERID_ISSET_ID);
    }

    /** Returns true if field providerId is set (has been assigned a value) and false otherwise */
    public boolean isSetProviderId() {
      return __isset_bit_vector.get(__PROVIDERID_ISSET_ID);
    }

    public void setProviderIdIsSet(boolean value) {
      __isset_bit_vector.set(__PROVIDERID_ISSET_ID, value);
    }

    public String getPincode() {
      return this.pincode;
    }

    public void setPincode(String pincode) {
      this.pincode = pincode;
    }

    public void unsetPincode() {
      this.pincode = null;
    }

    /** Returns true if field pincode is set (has been assigned a value) and false otherwise */
    public boolean isSetPincode() {
      return this.pincode != null;
    }

    public void setPincodeIsSet(boolean value) {
      if (!value) {
        this.pincode = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PROVIDER_ID:
        if (value == null) {
          unsetProviderId();
        } else {
          setProviderId((Long)value);
        }
        break;

      case PINCODE:
        if (value == null) {
          unsetPincode();
        } else {
          setPincode((String)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PROVIDER_ID:
        return Long.valueOf(getProviderId());

      case PINCODE:
        return getPincode();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PROVIDER_ID:
        return isSetProviderId();
      case PINCODE:
        return isSetPincode();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getProviderLimitDetailsForPincode_args)
        return this.equals((getProviderLimitDetailsForPincode_args)that);
      return false;
    }

    public boolean equals(getProviderLimitDetailsForPincode_args that) {
      if (that == null)
        return false;

      boolean this_present_providerId = true;
      boolean that_present_providerId = true;
      if (this_present_providerId || that_present_providerId) {
        if (!(this_present_providerId && that_present_providerId))
          return false;
        if (this.providerId != that.providerId)
          return false;
      }

      boolean this_present_pincode = true && this.isSetPincode();
      boolean that_present_pincode = true && that.isSetPincode();
      if (this_present_pincode || that_present_pincode) {
        if (!(this_present_pincode && that_present_pincode))
          return false;
        if (!this.pincode.equals(that.pincode))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getProviderLimitDetailsForPincode_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getProviderLimitDetailsForPincode_args typedOther = (getProviderLimitDetailsForPincode_args)other;

      lastComparison = Boolean.valueOf(isSetProviderId()).compareTo(typedOther.isSetProviderId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetProviderId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerId, typedOther.providerId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPincode()).compareTo(typedOther.isSetPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pincode, typedOther.pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PROVIDER_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.providerId = iprot.readI64();
              setProviderIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(PROVIDER_ID_FIELD_DESC);
      oprot.writeI64(this.providerId);
      oprot.writeFieldEnd();
      if (this.pincode != null) {
        oprot.writeFieldBegin(PINCODE_FIELD_DESC);
        oprot.writeString(this.pincode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getProviderLimitDetailsForPincode_args(");
      boolean first = true;

      sb.append("providerId:");
      sb.append(this.providerId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("pincode:");
      if (this.pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.pincode);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getProviderLimitDetailsForPincode_result implements org.apache.thrift.TBase<getProviderLimitDetailsForPincode_result, getProviderLimitDetailsForPincode_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProviderLimitDetailsForPincode_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private Map<String,String> success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SE
            return SE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProviderLimitDetailsForPincode_result.class, metaDataMap);
    }

    public getProviderLimitDetailsForPincode_result() {
    }

    public getProviderLimitDetailsForPincode_result(
      Map<String,String> success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getProviderLimitDetailsForPincode_result(getProviderLimitDetailsForPincode_result other) {
      if (other.isSetSuccess()) {
        Map<String,String> __this__success = new HashMap<String,String>();
        for (Map.Entry<String, String> other_element : other.success.entrySet()) {

          String other_element_key = other_element.getKey();
          String other_element_value = other_element.getValue();

          String __this__success_copy_key = other_element_key;

          String __this__success_copy_value = other_element_value;

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

    public getProviderLimitDetailsForPincode_result deepCopy() {
      return new getProviderLimitDetailsForPincode_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.se = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public void putToSuccess(String key, String val) {
      if (this.success == null) {
        this.success = new HashMap<String,String>();
      }
      this.success.put(key, val);
    }

    public Map<String,String> getSuccess() {
      return this.success;
    }

    public void setSuccess(Map<String,String> success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

    /** Returns true if field se is set (has been assigned a value) and false otherwise */
    public boolean isSetSe() {
      return this.se != null;
    }

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map<String,String>)value);
        }
        break;

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getProviderLimitDetailsForPincode_result)
        return this.equals((getProviderLimitDetailsForPincode_result)that);
      return false;
    }

    public boolean equals(getProviderLimitDetailsForPincode_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getProviderLimitDetailsForPincode_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getProviderLimitDetailsForPincode_result typedOther = (getProviderLimitDetailsForPincode_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSe()).compareTo(typedOther.isSetSe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.se, typedOther.se);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map32 = iprot.readMapBegin();
                this.success = new HashMap<String,String>(2*_map32.size);
                for (int _i33 = 0; _i33 < _map32.size; ++_i33)
                {
                  String _key34; // required
                  String _val35; // required
                  _key34 = iprot.readString();
                  _val35 = iprot.readString();
                  this.success.put(_key34, _val35);
                }
                iprot.readMapEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.success.size()));
          for (Map.Entry<String, String> _iter36 : this.success.entrySet())
          {
            oprot.writeString(_iter36.getKey());
            oprot.writeString(_iter36.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getProviderLimitDetailsForPincode_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("se:");
      if (this.se == null) {
        sb.append("null");
      } else {
        sb.append(this.se);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getLocationInfoMap_args implements org.apache.thrift.TBase<getLocationInfoMap_args, getLocationInfoMap_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLocationInfoMap_args");

    private static final org.apache.thrift.protocol.TField DEST_PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("destPincode", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("price", org.apache.thrift.protocol.TType.LIST, (short)2);

    private String destPincode; // required
    private List<Long> price; // 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 {
      DEST_PINCODE((short)1, "destPincode"),
      PRICE((short)2, "price");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DEST_PINCODE
            return DEST_PINCODE;
          case 2: // PRICE
            return PRICE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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.DEST_PINCODE, new org.apache.thrift.meta_data.FieldMetaData("destPincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRICE, new org.apache.thrift.meta_data.FieldMetaData("price", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLocationInfoMap_args.class, metaDataMap);
    }

    public getLocationInfoMap_args() {
    }

    public getLocationInfoMap_args(
      String destPincode,
      List<Long> price)
    {
      this();
      this.destPincode = destPincode;
      this.price = price;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLocationInfoMap_args(getLocationInfoMap_args other) {
      if (other.isSetDestPincode()) {
        this.destPincode = other.destPincode;
      }
      if (other.isSetPrice()) {
        List<Long> __this__price = new ArrayList<Long>();
        for (Long other_element : other.price) {
          __this__price.add(other_element);
        }
        this.price = __this__price;
      }
    }

    public getLocationInfoMap_args deepCopy() {
      return new getLocationInfoMap_args(this);
    }

    @Override
    public void clear() {
      this.destPincode = null;
      this.price = null;
    }

    public String getDestPincode() {
      return this.destPincode;
    }

    public void setDestPincode(String destPincode) {
      this.destPincode = destPincode;
    }

    public void unsetDestPincode() {
      this.destPincode = null;
    }

    /** Returns true if field destPincode is set (has been assigned a value) and false otherwise */
    public boolean isSetDestPincode() {
      return this.destPincode != null;
    }

    public void setDestPincodeIsSet(boolean value) {
      if (!value) {
        this.destPincode = null;
      }
    }

    public int getPriceSize() {
      return (this.price == null) ? 0 : this.price.size();
    }

    public java.util.Iterator<Long> getPriceIterator() {
      return (this.price == null) ? null : this.price.iterator();
    }

    public void addToPrice(long elem) {
      if (this.price == null) {
        this.price = new ArrayList<Long>();
      }
      this.price.add(elem);
    }

    public List<Long> getPrice() {
      return this.price;
    }

    public void setPrice(List<Long> price) {
      this.price = price;
    }

    public void unsetPrice() {
      this.price = null;
    }

    /** Returns true if field price is set (has been assigned a value) and false otherwise */
    public boolean isSetPrice() {
      return this.price != null;
    }

    public void setPriceIsSet(boolean value) {
      if (!value) {
        this.price = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case DEST_PINCODE:
        if (value == null) {
          unsetDestPincode();
        } else {
          setDestPincode((String)value);
        }
        break;

      case PRICE:
        if (value == null) {
          unsetPrice();
        } else {
          setPrice((List<Long>)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case DEST_PINCODE:
        return getDestPincode();

      case PRICE:
        return getPrice();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 DEST_PINCODE:
        return isSetDestPincode();
      case PRICE:
        return isSetPrice();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getLocationInfoMap_args)
        return this.equals((getLocationInfoMap_args)that);
      return false;
    }

    public boolean equals(getLocationInfoMap_args that) {
      if (that == null)
        return false;

      boolean this_present_destPincode = true && this.isSetDestPincode();
      boolean that_present_destPincode = true && that.isSetDestPincode();
      if (this_present_destPincode || that_present_destPincode) {
        if (!(this_present_destPincode && that_present_destPincode))
          return false;
        if (!this.destPincode.equals(that.destPincode))
          return false;
      }

      boolean this_present_price = true && this.isSetPrice();
      boolean that_present_price = true && that.isSetPrice();
      if (this_present_price || that_present_price) {
        if (!(this_present_price && that_present_price))
          return false;
        if (!this.price.equals(that.price))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getLocationInfoMap_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getLocationInfoMap_args typedOther = (getLocationInfoMap_args)other;

      lastComparison = Boolean.valueOf(isSetDestPincode()).compareTo(typedOther.isSetDestPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDestPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destPincode, typedOther.destPincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetPrice()).compareTo(typedOther.isSetPrice());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrice()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.price, typedOther.price);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // DEST_PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.destPincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // PRICE
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list37 = iprot.readListBegin();
                this.price = new ArrayList<Long>(_list37.size);
                for (int _i38 = 0; _i38 < _list37.size; ++_i38)
                {
                  long _elem39; // required
                  _elem39 = iprot.readI64();
                  this.price.add(_elem39);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.destPincode != null) {
        oprot.writeFieldBegin(DEST_PINCODE_FIELD_DESC);
        oprot.writeString(this.destPincode);
        oprot.writeFieldEnd();
      }
      if (this.price != null) {
        oprot.writeFieldBegin(PRICE_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, this.price.size()));
          for (long _iter40 : this.price)
          {
            oprot.writeI64(_iter40);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getLocationInfoMap_args(");
      boolean first = true;

      sb.append("destPincode:");
      if (this.destPincode == null) {
        sb.append("null");
      } else {
        sb.append(this.destPincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("price:");
      if (this.price == null) {
        sb.append("null");
      } else {
        sb.append(this.price);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getLocationInfoMap_result implements org.apache.thrift.TBase<getLocationInfoMap_result, getLocationInfoMap_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLocationInfoMap_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);

    private Map<Long,Map<Long,LocationInfo>> 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<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64), 
              new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
                  new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64), 
                  new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LocationInfo.class)))));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLocationInfoMap_result.class, metaDataMap);
    }

    public getLocationInfoMap_result() {
    }

    public getLocationInfoMap_result(
      Map<Long,Map<Long,LocationInfo>> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getLocationInfoMap_result(getLocationInfoMap_result other) {
      if (other.isSetSuccess()) {
        Map<Long,Map<Long,LocationInfo>> __this__success = new HashMap<Long,Map<Long,LocationInfo>>();
        for (Map.Entry<Long, Map<Long,LocationInfo>> other_element : other.success.entrySet()) {

          Long other_element_key = other_element.getKey();
          Map<Long,LocationInfo> other_element_value = other_element.getValue();

          Long __this__success_copy_key = other_element_key;

          Map<Long,LocationInfo> __this__success_copy_value = new HashMap<Long,LocationInfo>();
          for (Map.Entry<Long, LocationInfo> other_element_value_element : other_element_value.entrySet()) {

            Long other_element_value_element_key = other_element_value_element.getKey();
            LocationInfo other_element_value_element_value = other_element_value_element.getValue();

            Long __this__success_copy_value_copy_key = other_element_value_element_key;

            LocationInfo __this__success_copy_value_copy_value = new LocationInfo(other_element_value_element_value);

            __this__success_copy_value.put(__this__success_copy_value_copy_key, __this__success_copy_value_copy_value);
          }

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
    }

    public getLocationInfoMap_result deepCopy() {
      return new getLocationInfoMap_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public void putToSuccess(long key, Map<Long,LocationInfo> val) {
      if (this.success == null) {
        this.success = new HashMap<Long,Map<Long,LocationInfo>>();
      }
      this.success.put(key, val);
    }

    public Map<Long,Map<Long,LocationInfo>> getSuccess() {
      return this.success;
    }

    public void setSuccess(Map<Long,Map<Long,LocationInfo>> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Map<Long,Map<Long,LocationInfo>>)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 getLocationInfoMap_result)
        return this.equals((getLocationInfoMap_result)that);
      return false;
    }

    public boolean equals(getLocationInfoMap_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getLocationInfoMap_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getLocationInfoMap_result typedOther = (getLocationInfoMap_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map41 = iprot.readMapBegin();
                this.success = new HashMap<Long,Map<Long,LocationInfo>>(2*_map41.size);
                for (int _i42 = 0; _i42 < _map41.size; ++_i42)
                {
                  long _key43; // required
                  Map<Long,LocationInfo> _val44; // required
                  _key43 = iprot.readI64();
                  {
                    org.apache.thrift.protocol.TMap _map45 = iprot.readMapBegin();
                    _val44 = new HashMap<Long,LocationInfo>(2*_map45.size);
                    for (int _i46 = 0; _i46 < _map45.size; ++_i46)
                    {
                      long _key47; // required
                      LocationInfo _val48; // required
                      _key47 = iprot.readI64();
                      _val48 = new LocationInfo();
                      _val48.read(iprot);
                      _val44.put(_key47, _val48);
                    }
                    iprot.readMapEnd();
                  }
                  this.success.put(_key43, _val44);
                }
                iprot.readMapEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I64, org.apache.thrift.protocol.TType.MAP, this.success.size()));
          for (Map.Entry<Long, Map<Long,LocationInfo>> _iter49 : this.success.entrySet())
          {
            oprot.writeI64(_iter49.getKey());
            {
              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I64, org.apache.thrift.protocol.TType.STRUCT, _iter49.getValue().size()));
              for (Map.Entry<Long, LocationInfo> _iter50 : _iter49.getValue().entrySet())
              {
                oprot.writeI64(_iter50.getKey());
                _iter50.getValue().write(oprot);
              }
              oprot.writeMapEnd();
            }
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getLocationInfoMap_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getCostingAndDeliveryEstimateForPincode_args implements org.apache.thrift.TBase<getCostingAndDeliveryEstimateForPincode_args, getCostingAndDeliveryEstimateForPincode_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getCostingAndDeliveryEstimateForPincode_args");

    private static final org.apache.thrift.protocol.TField PINCODE_FIELD_DESC = new org.apache.thrift.protocol.TField("pincode", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TRANSACTION_AMOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("transactionAmount", org.apache.thrift.protocol.TType.DOUBLE, (short)2);
    private static final org.apache.thrift.protocol.TField IS_COD_FIELD_DESC = new org.apache.thrift.protocol.TField("isCod", org.apache.thrift.protocol.TType.BOOL, (short)3);
    private static final org.apache.thrift.protocol.TField WEIGHT_FIELD_DESC = new org.apache.thrift.protocol.TField("weight", org.apache.thrift.protocol.TType.DOUBLE, (short)4);
    private static final org.apache.thrift.protocol.TField BILLING_WAREHOUSE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("billingWarehouseId", org.apache.thrift.protocol.TType.I64, (short)5);
    private static final org.apache.thrift.protocol.TField IS_COMPLETE_TXN_FIELD_DESC = new org.apache.thrift.protocol.TField("isCompleteTxn", org.apache.thrift.protocol.TType.BOOL, (short)6);

    private String pincode; // required
    private double transactionAmount; // required
    private boolean isCod; // required
    private double weight; // required
    private long billingWarehouseId; // required
    private boolean isCompleteTxn; // 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 {
      PINCODE((short)1, "pincode"),
      TRANSACTION_AMOUNT((short)2, "transactionAmount"),
      IS_COD((short)3, "isCod"),
      WEIGHT((short)4, "weight"),
      BILLING_WAREHOUSE_ID((short)5, "billingWarehouseId"),
      IS_COMPLETE_TXN((short)6, "isCompleteTxn");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PINCODE
            return PINCODE;
          case 2: // TRANSACTION_AMOUNT
            return TRANSACTION_AMOUNT;
          case 3: // IS_COD
            return IS_COD;
          case 4: // WEIGHT
            return WEIGHT;
          case 5: // BILLING_WAREHOUSE_ID
            return BILLING_WAREHOUSE_ID;
          case 6: // IS_COMPLETE_TXN
            return IS_COMPLETE_TXN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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 __TRANSACTIONAMOUNT_ISSET_ID = 0;
    private static final int __ISCOD_ISSET_ID = 1;
    private static final int __WEIGHT_ISSET_ID = 2;
    private static final int __BILLINGWAREHOUSEID_ISSET_ID = 3;
    private static final int __ISCOMPLETETXN_ISSET_ID = 4;
    private BitSet __isset_bit_vector = new BitSet(5);

    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.PINCODE, new org.apache.thrift.meta_data.FieldMetaData("pincode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TRANSACTION_AMOUNT, new org.apache.thrift.meta_data.FieldMetaData("transactionAmount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
      tmpMap.put(_Fields.IS_COD, new org.apache.thrift.meta_data.FieldMetaData("isCod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.WEIGHT, new org.apache.thrift.meta_data.FieldMetaData("weight", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
      tmpMap.put(_Fields.BILLING_WAREHOUSE_ID, new org.apache.thrift.meta_data.FieldMetaData("billingWarehouseId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.IS_COMPLETE_TXN, new org.apache.thrift.meta_data.FieldMetaData("isCompleteTxn", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getCostingAndDeliveryEstimateForPincode_args.class, metaDataMap);
    }

    public getCostingAndDeliveryEstimateForPincode_args() {
    }

    public getCostingAndDeliveryEstimateForPincode_args(
      String pincode,
      double transactionAmount,
      boolean isCod,
      double weight,
      long billingWarehouseId,
      boolean isCompleteTxn)
    {
      this();
      this.pincode = pincode;
      this.transactionAmount = transactionAmount;
      setTransactionAmountIsSet(true);
      this.isCod = isCod;
      setIsCodIsSet(true);
      this.weight = weight;
      setWeightIsSet(true);
      this.billingWarehouseId = billingWarehouseId;
      setBillingWarehouseIdIsSet(true);
      this.isCompleteTxn = isCompleteTxn;
      setIsCompleteTxnIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getCostingAndDeliveryEstimateForPincode_args(getCostingAndDeliveryEstimateForPincode_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      if (other.isSetPincode()) {
        this.pincode = other.pincode;
      }
      this.transactionAmount = other.transactionAmount;
      this.isCod = other.isCod;
      this.weight = other.weight;
      this.billingWarehouseId = other.billingWarehouseId;
      this.isCompleteTxn = other.isCompleteTxn;
    }

    public getCostingAndDeliveryEstimateForPincode_args deepCopy() {
      return new getCostingAndDeliveryEstimateForPincode_args(this);
    }

    @Override
    public void clear() {
      this.pincode = null;
      setTransactionAmountIsSet(false);
      this.transactionAmount = 0.0;
      setIsCodIsSet(false);
      this.isCod = false;
      setWeightIsSet(false);
      this.weight = 0.0;
      setBillingWarehouseIdIsSet(false);
      this.billingWarehouseId = 0;
      setIsCompleteTxnIsSet(false);
      this.isCompleteTxn = false;
    }

    public String getPincode() {
      return this.pincode;
    }

    public void setPincode(String pincode) {
      this.pincode = pincode;
    }

    public void unsetPincode() {
      this.pincode = null;
    }

    /** Returns true if field pincode is set (has been assigned a value) and false otherwise */
    public boolean isSetPincode() {
      return this.pincode != null;
    }

    public void setPincodeIsSet(boolean value) {
      if (!value) {
        this.pincode = null;
      }
    }

    public double getTransactionAmount() {
      return this.transactionAmount;
    }

    public void setTransactionAmount(double transactionAmount) {
      this.transactionAmount = transactionAmount;
      setTransactionAmountIsSet(true);
    }

    public void unsetTransactionAmount() {
      __isset_bit_vector.clear(__TRANSACTIONAMOUNT_ISSET_ID);
    }

    /** Returns true if field transactionAmount is set (has been assigned a value) and false otherwise */
    public boolean isSetTransactionAmount() {
      return __isset_bit_vector.get(__TRANSACTIONAMOUNT_ISSET_ID);
    }

    public void setTransactionAmountIsSet(boolean value) {
      __isset_bit_vector.set(__TRANSACTIONAMOUNT_ISSET_ID, value);
    }

    public boolean isIsCod() {
      return this.isCod;
    }

    public void setIsCod(boolean isCod) {
      this.isCod = isCod;
      setIsCodIsSet(true);
    }

    public void unsetIsCod() {
      __isset_bit_vector.clear(__ISCOD_ISSET_ID);
    }

    /** Returns true if field isCod is set (has been assigned a value) and false otherwise */
    public boolean isSetIsCod() {
      return __isset_bit_vector.get(__ISCOD_ISSET_ID);
    }

    public void setIsCodIsSet(boolean value) {
      __isset_bit_vector.set(__ISCOD_ISSET_ID, value);
    }

    public double getWeight() {
      return this.weight;
    }

    public void setWeight(double weight) {
      this.weight = weight;
      setWeightIsSet(true);
    }

    public void unsetWeight() {
      __isset_bit_vector.clear(__WEIGHT_ISSET_ID);
    }

    /** Returns true if field weight is set (has been assigned a value) and false otherwise */
    public boolean isSetWeight() {
      return __isset_bit_vector.get(__WEIGHT_ISSET_ID);
    }

    public void setWeightIsSet(boolean value) {
      __isset_bit_vector.set(__WEIGHT_ISSET_ID, value);
    }

    public long getBillingWarehouseId() {
      return this.billingWarehouseId;
    }

    public void setBillingWarehouseId(long billingWarehouseId) {
      this.billingWarehouseId = billingWarehouseId;
      setBillingWarehouseIdIsSet(true);
    }

    public void unsetBillingWarehouseId() {
      __isset_bit_vector.clear(__BILLINGWAREHOUSEID_ISSET_ID);
    }

    /** Returns true if field billingWarehouseId is set (has been assigned a value) and false otherwise */
    public boolean isSetBillingWarehouseId() {
      return __isset_bit_vector.get(__BILLINGWAREHOUSEID_ISSET_ID);
    }

    public void setBillingWarehouseIdIsSet(boolean value) {
      __isset_bit_vector.set(__BILLINGWAREHOUSEID_ISSET_ID, value);
    }

    public boolean isIsCompleteTxn() {
      return this.isCompleteTxn;
    }

    public void setIsCompleteTxn(boolean isCompleteTxn) {
      this.isCompleteTxn = isCompleteTxn;
      setIsCompleteTxnIsSet(true);
    }

    public void unsetIsCompleteTxn() {
      __isset_bit_vector.clear(__ISCOMPLETETXN_ISSET_ID);
    }

    /** Returns true if field isCompleteTxn is set (has been assigned a value) and false otherwise */
    public boolean isSetIsCompleteTxn() {
      return __isset_bit_vector.get(__ISCOMPLETETXN_ISSET_ID);
    }

    public void setIsCompleteTxnIsSet(boolean value) {
      __isset_bit_vector.set(__ISCOMPLETETXN_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case PINCODE:
        if (value == null) {
          unsetPincode();
        } else {
          setPincode((String)value);
        }
        break;

      case TRANSACTION_AMOUNT:
        if (value == null) {
          unsetTransactionAmount();
        } else {
          setTransactionAmount((Double)value);
        }
        break;

      case IS_COD:
        if (value == null) {
          unsetIsCod();
        } else {
          setIsCod((Boolean)value);
        }
        break;

      case WEIGHT:
        if (value == null) {
          unsetWeight();
        } else {
          setWeight((Double)value);
        }
        break;

      case BILLING_WAREHOUSE_ID:
        if (value == null) {
          unsetBillingWarehouseId();
        } else {
          setBillingWarehouseId((Long)value);
        }
        break;

      case IS_COMPLETE_TXN:
        if (value == null) {
          unsetIsCompleteTxn();
        } else {
          setIsCompleteTxn((Boolean)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case PINCODE:
        return getPincode();

      case TRANSACTION_AMOUNT:
        return Double.valueOf(getTransactionAmount());

      case IS_COD:
        return Boolean.valueOf(isIsCod());

      case WEIGHT:
        return Double.valueOf(getWeight());

      case BILLING_WAREHOUSE_ID:
        return Long.valueOf(getBillingWarehouseId());

      case IS_COMPLETE_TXN:
        return Boolean.valueOf(isIsCompleteTxn());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 PINCODE:
        return isSetPincode();
      case TRANSACTION_AMOUNT:
        return isSetTransactionAmount();
      case IS_COD:
        return isSetIsCod();
      case WEIGHT:
        return isSetWeight();
      case BILLING_WAREHOUSE_ID:
        return isSetBillingWarehouseId();
      case IS_COMPLETE_TXN:
        return isSetIsCompleteTxn();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getCostingAndDeliveryEstimateForPincode_args)
        return this.equals((getCostingAndDeliveryEstimateForPincode_args)that);
      return false;
    }

    public boolean equals(getCostingAndDeliveryEstimateForPincode_args that) {
      if (that == null)
        return false;

      boolean this_present_pincode = true && this.isSetPincode();
      boolean that_present_pincode = true && that.isSetPincode();
      if (this_present_pincode || that_present_pincode) {
        if (!(this_present_pincode && that_present_pincode))
          return false;
        if (!this.pincode.equals(that.pincode))
          return false;
      }

      boolean this_present_transactionAmount = true;
      boolean that_present_transactionAmount = true;
      if (this_present_transactionAmount || that_present_transactionAmount) {
        if (!(this_present_transactionAmount && that_present_transactionAmount))
          return false;
        if (this.transactionAmount != that.transactionAmount)
          return false;
      }

      boolean this_present_isCod = true;
      boolean that_present_isCod = true;
      if (this_present_isCod || that_present_isCod) {
        if (!(this_present_isCod && that_present_isCod))
          return false;
        if (this.isCod != that.isCod)
          return false;
      }

      boolean this_present_weight = true;
      boolean that_present_weight = true;
      if (this_present_weight || that_present_weight) {
        if (!(this_present_weight && that_present_weight))
          return false;
        if (this.weight != that.weight)
          return false;
      }

      boolean this_present_billingWarehouseId = true;
      boolean that_present_billingWarehouseId = true;
      if (this_present_billingWarehouseId || that_present_billingWarehouseId) {
        if (!(this_present_billingWarehouseId && that_present_billingWarehouseId))
          return false;
        if (this.billingWarehouseId != that.billingWarehouseId)
          return false;
      }

      boolean this_present_isCompleteTxn = true;
      boolean that_present_isCompleteTxn = true;
      if (this_present_isCompleteTxn || that_present_isCompleteTxn) {
        if (!(this_present_isCompleteTxn && that_present_isCompleteTxn))
          return false;
        if (this.isCompleteTxn != that.isCompleteTxn)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getCostingAndDeliveryEstimateForPincode_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getCostingAndDeliveryEstimateForPincode_args typedOther = (getCostingAndDeliveryEstimateForPincode_args)other;

      lastComparison = Boolean.valueOf(isSetPincode()).compareTo(typedOther.isSetPincode());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPincode()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pincode, typedOther.pincode);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetTransactionAmount()).compareTo(typedOther.isSetTransactionAmount());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTransactionAmount()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transactionAmount, typedOther.transactionAmount);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetIsCod()).compareTo(typedOther.isSetIsCod());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIsCod()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isCod, typedOther.isCod);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetWeight()).compareTo(typedOther.isSetWeight());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetWeight()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.weight, typedOther.weight);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetBillingWarehouseId()).compareTo(typedOther.isSetBillingWarehouseId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetBillingWarehouseId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.billingWarehouseId, typedOther.billingWarehouseId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetIsCompleteTxn()).compareTo(typedOther.isSetIsCompleteTxn());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIsCompleteTxn()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isCompleteTxn, typedOther.isCompleteTxn);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // PINCODE
            if (field.type == org.apache.thrift.protocol.TType.STRING) {
              this.pincode = iprot.readString();
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 2: // TRANSACTION_AMOUNT
            if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
              this.transactionAmount = iprot.readDouble();
              setTransactionAmountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 3: // IS_COD
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.isCod = iprot.readBool();
              setIsCodIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 4: // WEIGHT
            if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
              this.weight = iprot.readDouble();
              setWeightIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 5: // BILLING_WAREHOUSE_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.billingWarehouseId = iprot.readI64();
              setBillingWarehouseIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 6: // IS_COMPLETE_TXN
            if (field.type == org.apache.thrift.protocol.TType.BOOL) {
              this.isCompleteTxn = iprot.readBool();
              setIsCompleteTxnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.pincode != null) {
        oprot.writeFieldBegin(PINCODE_FIELD_DESC);
        oprot.writeString(this.pincode);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(TRANSACTION_AMOUNT_FIELD_DESC);
      oprot.writeDouble(this.transactionAmount);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(IS_COD_FIELD_DESC);
      oprot.writeBool(this.isCod);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(WEIGHT_FIELD_DESC);
      oprot.writeDouble(this.weight);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(BILLING_WAREHOUSE_ID_FIELD_DESC);
      oprot.writeI64(this.billingWarehouseId);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(IS_COMPLETE_TXN_FIELD_DESC);
      oprot.writeBool(this.isCompleteTxn);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getCostingAndDeliveryEstimateForPincode_args(");
      boolean first = true;

      sb.append("pincode:");
      if (this.pincode == null) {
        sb.append("null");
      } else {
        sb.append(this.pincode);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("transactionAmount:");
      sb.append(this.transactionAmount);
      first = false;
      if (!first) sb.append(", ");
      sb.append("isCod:");
      sb.append(this.isCod);
      first = false;
      if (!first) sb.append(", ");
      sb.append("weight:");
      sb.append(this.weight);
      first = false;
      if (!first) sb.append(", ");
      sb.append("billingWarehouseId:");
      sb.append(this.billingWarehouseId);
      first = false;
      if (!first) sb.append(", ");
      sb.append("isCompleteTxn:");
      sb.append(this.isCompleteTxn);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getCostingAndDeliveryEstimateForPincode_result implements org.apache.thrift.TBase<getCostingAndDeliveryEstimateForPincode_result, getCostingAndDeliveryEstimateForPincode_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getCostingAndDeliveryEstimateForPincode_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 SE_FIELD_DESC = new org.apache.thrift.protocol.TField("se", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private DeliveryEstimateAndCosting success; // required
    private LogisticsServiceException se; // 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"),
      SE((short)1, "se");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // SE
            return SE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _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, DeliveryEstimateAndCosting.class)));
      tmpMap.put(_Fields.SE, new org.apache.thrift.meta_data.FieldMetaData("se", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getCostingAndDeliveryEstimateForPincode_result.class, metaDataMap);
    }

    public getCostingAndDeliveryEstimateForPincode_result() {
    }

    public getCostingAndDeliveryEstimateForPincode_result(
      DeliveryEstimateAndCosting success,
      LogisticsServiceException se)
    {
      this();
      this.success = success;
      this.se = se;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getCostingAndDeliveryEstimateForPincode_result(getCostingAndDeliveryEstimateForPincode_result other) {
      if (other.isSetSuccess()) {
        this.success = new DeliveryEstimateAndCosting(other.success);
      }
      if (other.isSetSe()) {
        this.se = new LogisticsServiceException(other.se);
      }
    }

    public getCostingAndDeliveryEstimateForPincode_result deepCopy() {
      return new getCostingAndDeliveryEstimateForPincode_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.se = null;
    }

    public DeliveryEstimateAndCosting getSuccess() {
      return this.success;
    }

    public void setSuccess(DeliveryEstimateAndCosting success) {
      this.success = success;
    }

    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 LogisticsServiceException getSe() {
      return this.se;
    }

    public void setSe(LogisticsServiceException se) {
      this.se = se;
    }

    public void unsetSe() {
      this.se = null;
    }

    /** Returns true if field se is set (has been assigned a value) and false otherwise */
    public boolean isSetSe() {
      return this.se != null;
    }

    public void setSeIsSet(boolean value) {
      if (!value) {
        this.se = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((DeliveryEstimateAndCosting)value);
        }
        break;

      case SE:
        if (value == null) {
          unsetSe();
        } else {
          setSe((LogisticsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case SE:
        return getSe();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to 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 SE:
        return isSetSe();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getCostingAndDeliveryEstimateForPincode_result)
        return this.equals((getCostingAndDeliveryEstimateForPincode_result)that);
      return false;
    }

    public boolean equals(getCostingAndDeliveryEstimateForPincode_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_se = true && this.isSetSe();
      boolean that_present_se = true && that.isSetSe();
      if (this_present_se || that_present_se) {
        if (!(this_present_se && that_present_se))
          return false;
        if (!this.se.equals(that.se))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getCostingAndDeliveryEstimateForPincode_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getCostingAndDeliveryEstimateForPincode_result typedOther = (getCostingAndDeliveryEstimateForPincode_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetSe()).compareTo(typedOther.isSetSe());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSe()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.se, typedOther.se);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.success = new DeliveryEstimateAndCosting();
              this.success.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // SE
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.se = new LogisticsServiceException();
              this.se.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetSe()) {
        oprot.writeFieldBegin(SE_FIELD_DESC);
        this.se.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getCostingAndDeliveryEstimateForPincode_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("se:");
      if (this.se == null) {
        sb.append("null");
      } else {
        sb.append(this.se);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

}