Subversion Repositories SmartDukaan

Rev

Rev 3430 | 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.model.v1.user;

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;

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

  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I64, (short)1);
  private static final org.apache.thrift.protocol.TField LINE1_FIELD_DESC = new org.apache.thrift.protocol.TField("line1", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField LINE2_FIELD_DESC = new org.apache.thrift.protocol.TField("line2", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField LANDMARK_FIELD_DESC = new org.apache.thrift.protocol.TField("landmark", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField CITY_FIELD_DESC = new org.apache.thrift.protocol.TField("city", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField PIN_FIELD_DESC = new org.apache.thrift.protocol.TField("pin", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField COUNTRY_FIELD_DESC = new org.apache.thrift.protocol.TField("country", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField ENABLED_FIELD_DESC = new org.apache.thrift.protocol.TField("enabled", org.apache.thrift.protocol.TType.BOOL, (short)9);
  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)10);
  private static final org.apache.thrift.protocol.TField ADDED_ON_FIELD_DESC = new org.apache.thrift.protocol.TField("addedOn", org.apache.thrift.protocol.TType.I64, (short)11);
  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)12);
  private static final org.apache.thrift.protocol.TField PHONE_FIELD_DESC = new org.apache.thrift.protocol.TField("phone", org.apache.thrift.protocol.TType.STRING, (short)13);
  private static final org.apache.thrift.protocol.TField TAX_INVOICE_AVAILABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("taxInvoiceAvailable", org.apache.thrift.protocol.TType.BOOL, (short)14);
  private static final org.apache.thrift.protocol.TField CREDIT_OPTION_AVAILABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("creditOptionAvailable", org.apache.thrift.protocol.TType.BOOL, (short)15);

  private long id; // required
  private String line1; // required
  private String line2; // required
  private String landmark; // required
  private String city; // required
  private String state; // required
  private String pin; // required
  private String country; // required
  private boolean enabled; // required
  private AddressType type; // required
  private long addedOn; // required
  private String name; // required
  private String phone; // required
  private boolean taxInvoiceAvailable; // required
  private boolean creditOptionAvailable; // 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 {
    ID((short)1, "id"),
    LINE1((short)2, "line1"),
    LINE2((short)3, "line2"),
    LANDMARK((short)4, "landmark"),
    CITY((short)5, "city"),
    STATE((short)6, "state"),
    PIN((short)7, "pin"),
    COUNTRY((short)8, "country"),
    ENABLED((short)9, "enabled"),
    /**
     * 
     * @see AddressType
     */
    TYPE((short)10, "type"),
    ADDED_ON((short)11, "addedOn"),
    NAME((short)12, "name"),
    PHONE((short)13, "phone"),
    TAX_INVOICE_AVAILABLE((short)14, "taxInvoiceAvailable"),
    CREDIT_OPTION_AVAILABLE((short)15, "creditOptionAvailable");

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

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

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // ID
          return ID;
        case 2: // LINE1
          return LINE1;
        case 3: // LINE2
          return LINE2;
        case 4: // LANDMARK
          return LANDMARK;
        case 5: // CITY
          return CITY;
        case 6: // STATE
          return STATE;
        case 7: // PIN
          return PIN;
        case 8: // COUNTRY
          return COUNTRY;
        case 9: // ENABLED
          return ENABLED;
        case 10: // TYPE
          return TYPE;
        case 11: // ADDED_ON
          return ADDED_ON;
        case 12: // NAME
          return NAME;
        case 13: // PHONE
          return PHONE;
        case 14: // TAX_INVOICE_AVAILABLE
          return TAX_INVOICE_AVAILABLE;
        case 15: // CREDIT_OPTION_AVAILABLE
          return CREDIT_OPTION_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 __ID_ISSET_ID = 0;
  private static final int __ENABLED_ISSET_ID = 1;
  private static final int __ADDEDON_ISSET_ID = 2;
  private static final int __TAXINVOICEAVAILABLE_ISSET_ID = 3;
  private static final int __CREDITOPTIONAVAILABLE_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.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.LINE1, new org.apache.thrift.meta_data.FieldMetaData("line1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LINE2, new org.apache.thrift.meta_data.FieldMetaData("line2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LANDMARK, new org.apache.thrift.meta_data.FieldMetaData("landmark", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CITY, new org.apache.thrift.meta_data.FieldMetaData("city", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PIN, new org.apache.thrift.meta_data.FieldMetaData("pin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.COUNTRY, new org.apache.thrift.meta_data.FieldMetaData("country", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ENABLED, new org.apache.thrift.meta_data.FieldMetaData("enabled", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    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, AddressType.class)));
    tmpMap.put(_Fields.ADDED_ON, new org.apache.thrift.meta_data.FieldMetaData("addedOn", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PHONE, new org.apache.thrift.meta_data.FieldMetaData("phone", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TAX_INVOICE_AVAILABLE, new org.apache.thrift.meta_data.FieldMetaData("taxInvoiceAvailable", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.CREDIT_OPTION_AVAILABLE, new org.apache.thrift.meta_data.FieldMetaData("creditOptionAvailable", 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(Address.class, metaDataMap);
  }

  public Address() {
  }

  public Address(
    long id,
    String line1,
    String line2,
    String landmark,
    String city,
    String state,
    String pin,
    String country,
    boolean enabled,
    AddressType type,
    long addedOn,
    String name,
    String phone,
    boolean taxInvoiceAvailable,
    boolean creditOptionAvailable)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.line1 = line1;
    this.line2 = line2;
    this.landmark = landmark;
    this.city = city;
    this.state = state;
    this.pin = pin;
    this.country = country;
    this.enabled = enabled;
    setEnabledIsSet(true);
    this.type = type;
    this.addedOn = addedOn;
    setAddedOnIsSet(true);
    this.name = name;
    this.phone = phone;
    this.taxInvoiceAvailable = taxInvoiceAvailable;
    setTaxInvoiceAvailableIsSet(true);
    this.creditOptionAvailable = creditOptionAvailable;
    setCreditOptionAvailableIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public Address(Address other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    if (other.isSetLine1()) {
      this.line1 = other.line1;
    }
    if (other.isSetLine2()) {
      this.line2 = other.line2;
    }
    if (other.isSetLandmark()) {
      this.landmark = other.landmark;
    }
    if (other.isSetCity()) {
      this.city = other.city;
    }
    if (other.isSetState()) {
      this.state = other.state;
    }
    if (other.isSetPin()) {
      this.pin = other.pin;
    }
    if (other.isSetCountry()) {
      this.country = other.country;
    }
    this.enabled = other.enabled;
    if (other.isSetType()) {
      this.type = other.type;
    }
    this.addedOn = other.addedOn;
    if (other.isSetName()) {
      this.name = other.name;
    }
    if (other.isSetPhone()) {
      this.phone = other.phone;
    }
    this.taxInvoiceAvailable = other.taxInvoiceAvailable;
    this.creditOptionAvailable = other.creditOptionAvailable;
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    this.line1 = null;
    this.line2 = null;
    this.landmark = null;
    this.city = null;
    this.state = null;
    this.pin = null;
    this.country = null;
    setEnabledIsSet(false);
    this.enabled = false;
    this.type = null;
    setAddedOnIsSet(false);
    this.addedOn = 0;
    this.name = null;
    this.phone = null;
    setTaxInvoiceAvailableIsSet(false);
    this.taxInvoiceAvailable = false;
    setCreditOptionAvailableIsSet(false);
    this.creditOptionAvailable = false;
  }

  public long getId() {
    return this.id;
  }

  public void setId(long id) {
    this.id = id;
    setIdIsSet(true);
  }

  public void unsetId() {
    __isset_bit_vector.clear(__ID_ISSET_ID);
  }

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

  public void setIdIsSet(boolean value) {
    __isset_bit_vector.set(__ID_ISSET_ID, value);
  }

  public String getLine1() {
    return this.line1;
  }

  public void setLine1(String line1) {
    this.line1 = line1;
  }

  public void unsetLine1() {
    this.line1 = null;
  }

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

  public void setLine1IsSet(boolean value) {
    if (!value) {
      this.line1 = null;
    }
  }

  public String getLine2() {
    return this.line2;
  }

  public void setLine2(String line2) {
    this.line2 = line2;
  }

  public void unsetLine2() {
    this.line2 = null;
  }

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

  public void setLine2IsSet(boolean value) {
    if (!value) {
      this.line2 = null;
    }
  }

  public String getLandmark() {
    return this.landmark;
  }

  public void setLandmark(String landmark) {
    this.landmark = landmark;
  }

  public void unsetLandmark() {
    this.landmark = null;
  }

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

  public void setLandmarkIsSet(boolean value) {
    if (!value) {
      this.landmark = null;
    }
  }

  public String getCity() {
    return this.city;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public void unsetCity() {
    this.city = null;
  }

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

  public void setCityIsSet(boolean value) {
    if (!value) {
      this.city = null;
    }
  }

  public String getState() {
    return this.state;
  }

  public void setState(String state) {
    this.state = state;
  }

  public void unsetState() {
    this.state = null;
  }

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

  public void setStateIsSet(boolean value) {
    if (!value) {
      this.state = null;
    }
  }

  public String getPin() {
    return this.pin;
  }

  public void setPin(String pin) {
    this.pin = pin;
  }

  public void unsetPin() {
    this.pin = null;
  }

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

  public void setPinIsSet(boolean value) {
    if (!value) {
      this.pin = null;
    }
  }

  public String getCountry() {
    return this.country;
  }

  public void setCountry(String country) {
    this.country = country;
  }

  public void unsetCountry() {
    this.country = null;
  }

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

  public void setCountryIsSet(boolean value) {
    if (!value) {
      this.country = null;
    }
  }

  public boolean isEnabled() {
    return this.enabled;
  }

  public void setEnabled(boolean enabled) {
    this.enabled = enabled;
    setEnabledIsSet(true);
  }

  public void unsetEnabled() {
    __isset_bit_vector.clear(__ENABLED_ISSET_ID);
  }

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

  public void setEnabledIsSet(boolean value) {
    __isset_bit_vector.set(__ENABLED_ISSET_ID, value);
  }

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

  /**
   * 
   * @see AddressType
   */
  public void setType(AddressType 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 getAddedOn() {
    return this.addedOn;
  }

  public void setAddedOn(long addedOn) {
    this.addedOn = addedOn;
    setAddedOnIsSet(true);
  }

  public void unsetAddedOn() {
    __isset_bit_vector.clear(__ADDEDON_ISSET_ID);
  }

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

  public void setAddedOnIsSet(boolean value) {
    __isset_bit_vector.set(__ADDEDON_ISSET_ID, value);
  }

  public String getName() {
    return this.name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public void unsetName() {
    this.name = null;
  }

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

  public void setNameIsSet(boolean value) {
    if (!value) {
      this.name = null;
    }
  }

  public String getPhone() {
    return this.phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  public void unsetPhone() {
    this.phone = null;
  }

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

  public void setPhoneIsSet(boolean value) {
    if (!value) {
      this.phone = null;
    }
  }

  public boolean isTaxInvoiceAvailable() {
    return this.taxInvoiceAvailable;
  }

  public void setTaxInvoiceAvailable(boolean taxInvoiceAvailable) {
    this.taxInvoiceAvailable = taxInvoiceAvailable;
    setTaxInvoiceAvailableIsSet(true);
  }

  public void unsetTaxInvoiceAvailable() {
    __isset_bit_vector.clear(__TAXINVOICEAVAILABLE_ISSET_ID);
  }

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

  public void setTaxInvoiceAvailableIsSet(boolean value) {
    __isset_bit_vector.set(__TAXINVOICEAVAILABLE_ISSET_ID, value);
  }

  public boolean isCreditOptionAvailable() {
    return this.creditOptionAvailable;
  }

  public void setCreditOptionAvailable(boolean creditOptionAvailable) {
    this.creditOptionAvailable = creditOptionAvailable;
    setCreditOptionAvailableIsSet(true);
  }

  public void unsetCreditOptionAvailable() {
    __isset_bit_vector.clear(__CREDITOPTIONAVAILABLE_ISSET_ID);
  }

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

  public void setCreditOptionAvailableIsSet(boolean value) {
    __isset_bit_vector.set(__CREDITOPTIONAVAILABLE_ISSET_ID, value);
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case ID:
      if (value == null) {
        unsetId();
      } else {
        setId((Long)value);
      }
      break;

    case LINE1:
      if (value == null) {
        unsetLine1();
      } else {
        setLine1((String)value);
      }
      break;

    case LINE2:
      if (value == null) {
        unsetLine2();
      } else {
        setLine2((String)value);
      }
      break;

    case LANDMARK:
      if (value == null) {
        unsetLandmark();
      } else {
        setLandmark((String)value);
      }
      break;

    case CITY:
      if (value == null) {
        unsetCity();
      } else {
        setCity((String)value);
      }
      break;

    case STATE:
      if (value == null) {
        unsetState();
      } else {
        setState((String)value);
      }
      break;

    case PIN:
      if (value == null) {
        unsetPin();
      } else {
        setPin((String)value);
      }
      break;

    case COUNTRY:
      if (value == null) {
        unsetCountry();
      } else {
        setCountry((String)value);
      }
      break;

    case ENABLED:
      if (value == null) {
        unsetEnabled();
      } else {
        setEnabled((Boolean)value);
      }
      break;

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

    case ADDED_ON:
      if (value == null) {
        unsetAddedOn();
      } else {
        setAddedOn((Long)value);
      }
      break;

    case NAME:
      if (value == null) {
        unsetName();
      } else {
        setName((String)value);
      }
      break;

    case PHONE:
      if (value == null) {
        unsetPhone();
      } else {
        setPhone((String)value);
      }
      break;

    case TAX_INVOICE_AVAILABLE:
      if (value == null) {
        unsetTaxInvoiceAvailable();
      } else {
        setTaxInvoiceAvailable((Boolean)value);
      }
      break;

    case CREDIT_OPTION_AVAILABLE:
      if (value == null) {
        unsetCreditOptionAvailable();
      } else {
        setCreditOptionAvailable((Boolean)value);
      }
      break;

    }
  }

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

    case LINE1:
      return getLine1();

    case LINE2:
      return getLine2();

    case LANDMARK:
      return getLandmark();

    case CITY:
      return getCity();

    case STATE:
      return getState();

    case PIN:
      return getPin();

    case COUNTRY:
      return getCountry();

    case ENABLED:
      return Boolean.valueOf(isEnabled());

    case TYPE:
      return getType();

    case ADDED_ON:
      return Long.valueOf(getAddedOn());

    case NAME:
      return getName();

    case PHONE:
      return getPhone();

    case TAX_INVOICE_AVAILABLE:
      return Boolean.valueOf(isTaxInvoiceAvailable());

    case CREDIT_OPTION_AVAILABLE:
      return Boolean.valueOf(isCreditOptionAvailable());

    }
    throw new IllegalStateException();
  }

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

    switch (field) {
    case ID:
      return isSetId();
    case LINE1:
      return isSetLine1();
    case LINE2:
      return isSetLine2();
    case LANDMARK:
      return isSetLandmark();
    case CITY:
      return isSetCity();
    case STATE:
      return isSetState();
    case PIN:
      return isSetPin();
    case COUNTRY:
      return isSetCountry();
    case ENABLED:
      return isSetEnabled();
    case TYPE:
      return isSetType();
    case ADDED_ON:
      return isSetAddedOn();
    case NAME:
      return isSetName();
    case PHONE:
      return isSetPhone();
    case TAX_INVOICE_AVAILABLE:
      return isSetTaxInvoiceAvailable();
    case CREDIT_OPTION_AVAILABLE:
      return isSetCreditOptionAvailable();
    }
    throw new IllegalStateException();
  }

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

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

    boolean this_present_id = true;
    boolean that_present_id = true;
    if (this_present_id || that_present_id) {
      if (!(this_present_id && that_present_id))
        return false;
      if (this.id != that.id)
        return false;
    }

    boolean this_present_line1 = true && this.isSetLine1();
    boolean that_present_line1 = true && that.isSetLine1();
    if (this_present_line1 || that_present_line1) {
      if (!(this_present_line1 && that_present_line1))
        return false;
      if (!this.line1.equals(that.line1))
        return false;
    }

    boolean this_present_line2 = true && this.isSetLine2();
    boolean that_present_line2 = true && that.isSetLine2();
    if (this_present_line2 || that_present_line2) {
      if (!(this_present_line2 && that_present_line2))
        return false;
      if (!this.line2.equals(that.line2))
        return false;
    }

    boolean this_present_landmark = true && this.isSetLandmark();
    boolean that_present_landmark = true && that.isSetLandmark();
    if (this_present_landmark || that_present_landmark) {
      if (!(this_present_landmark && that_present_landmark))
        return false;
      if (!this.landmark.equals(that.landmark))
        return false;
    }

    boolean this_present_city = true && this.isSetCity();
    boolean that_present_city = true && that.isSetCity();
    if (this_present_city || that_present_city) {
      if (!(this_present_city && that_present_city))
        return false;
      if (!this.city.equals(that.city))
        return false;
    }

    boolean this_present_state = true && this.isSetState();
    boolean that_present_state = true && that.isSetState();
    if (this_present_state || that_present_state) {
      if (!(this_present_state && that_present_state))
        return false;
      if (!this.state.equals(that.state))
        return false;
    }

    boolean this_present_pin = true && this.isSetPin();
    boolean that_present_pin = true && that.isSetPin();
    if (this_present_pin || that_present_pin) {
      if (!(this_present_pin && that_present_pin))
        return false;
      if (!this.pin.equals(that.pin))
        return false;
    }

    boolean this_present_country = true && this.isSetCountry();
    boolean that_present_country = true && that.isSetCountry();
    if (this_present_country || that_present_country) {
      if (!(this_present_country && that_present_country))
        return false;
      if (!this.country.equals(that.country))
        return false;
    }

    boolean this_present_enabled = true;
    boolean that_present_enabled = true;
    if (this_present_enabled || that_present_enabled) {
      if (!(this_present_enabled && that_present_enabled))
        return false;
      if (this.enabled != that.enabled)
        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_addedOn = true;
    boolean that_present_addedOn = true;
    if (this_present_addedOn || that_present_addedOn) {
      if (!(this_present_addedOn && that_present_addedOn))
        return false;
      if (this.addedOn != that.addedOn)
        return false;
    }

    boolean this_present_name = true && this.isSetName();
    boolean that_present_name = true && that.isSetName();
    if (this_present_name || that_present_name) {
      if (!(this_present_name && that_present_name))
        return false;
      if (!this.name.equals(that.name))
        return false;
    }

    boolean this_present_phone = true && this.isSetPhone();
    boolean that_present_phone = true && that.isSetPhone();
    if (this_present_phone || that_present_phone) {
      if (!(this_present_phone && that_present_phone))
        return false;
      if (!this.phone.equals(that.phone))
        return false;
    }

    boolean this_present_taxInvoiceAvailable = true;
    boolean that_present_taxInvoiceAvailable = true;
    if (this_present_taxInvoiceAvailable || that_present_taxInvoiceAvailable) {
      if (!(this_present_taxInvoiceAvailable && that_present_taxInvoiceAvailable))
        return false;
      if (this.taxInvoiceAvailable != that.taxInvoiceAvailable)
        return false;
    }

    boolean this_present_creditOptionAvailable = true;
    boolean that_present_creditOptionAvailable = true;
    if (this_present_creditOptionAvailable || that_present_creditOptionAvailable) {
      if (!(this_present_creditOptionAvailable && that_present_creditOptionAvailable))
        return false;
      if (this.creditOptionAvailable != that.creditOptionAvailable)
        return false;
    }

    return true;
  }

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

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

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

    lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetLine1()).compareTo(typedOther.isSetLine1());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLine1()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.line1, typedOther.line1);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetLine2()).compareTo(typedOther.isSetLine2());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLine2()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.line2, typedOther.line2);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetLandmark()).compareTo(typedOther.isSetLandmark());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLandmark()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.landmark, typedOther.landmark);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCity()).compareTo(typedOther.isSetCity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.city, typedOther.city);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetState()).compareTo(typedOther.isSetState());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetState()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, typedOther.state);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPin()).compareTo(typedOther.isSetPin());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPin()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pin, typedOther.pin);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCountry()).compareTo(typedOther.isSetCountry());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCountry()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.country, typedOther.country);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetEnabled()).compareTo(typedOther.isSetEnabled());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnabled()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enabled, typedOther.enabled);
      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(isSetAddedOn()).compareTo(typedOther.isSetAddedOn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAddedOn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.addedOn, typedOther.addedOn);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPhone()).compareTo(typedOther.isSetPhone());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPhone()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.phone, typedOther.phone);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTaxInvoiceAvailable()).compareTo(typedOther.isSetTaxInvoiceAvailable());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTaxInvoiceAvailable()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taxInvoiceAvailable, typedOther.taxInvoiceAvailable);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCreditOptionAvailable()).compareTo(typedOther.isSetCreditOptionAvailable());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCreditOptionAvailable()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creditOptionAvailable, typedOther.creditOptionAvailable);
      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: // ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.id = iprot.readI64();
            setIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 2: // LINE1
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.line1 = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // LINE2
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.line2 = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // LANDMARK
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.landmark = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // CITY
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.city = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // STATE
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.state = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // PIN
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.pin = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // COUNTRY
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.country = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // ENABLED
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.enabled = iprot.readBool();
            setEnabledIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 10: // TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.type = AddressType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // ADDED_ON
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.addedOn = iprot.readI64();
            setAddedOnIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 12: // NAME
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.name = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // PHONE
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.phone = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // TAX_INVOICE_AVAILABLE
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.taxInvoiceAvailable = iprot.readBool();
            setTaxInvoiceAvailableIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 15: // CREDIT_OPTION_AVAILABLE
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.creditOptionAvailable = iprot.readBool();
            setCreditOptionAvailableIsSet(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(ID_FIELD_DESC);
    oprot.writeI64(this.id);
    oprot.writeFieldEnd();
    if (this.line1 != null) {
      oprot.writeFieldBegin(LINE1_FIELD_DESC);
      oprot.writeString(this.line1);
      oprot.writeFieldEnd();
    }
    if (this.line2 != null) {
      oprot.writeFieldBegin(LINE2_FIELD_DESC);
      oprot.writeString(this.line2);
      oprot.writeFieldEnd();
    }
    if (this.landmark != null) {
      oprot.writeFieldBegin(LANDMARK_FIELD_DESC);
      oprot.writeString(this.landmark);
      oprot.writeFieldEnd();
    }
    if (this.city != null) {
      oprot.writeFieldBegin(CITY_FIELD_DESC);
      oprot.writeString(this.city);
      oprot.writeFieldEnd();
    }
    if (this.state != null) {
      oprot.writeFieldBegin(STATE_FIELD_DESC);
      oprot.writeString(this.state);
      oprot.writeFieldEnd();
    }
    if (this.pin != null) {
      oprot.writeFieldBegin(PIN_FIELD_DESC);
      oprot.writeString(this.pin);
      oprot.writeFieldEnd();
    }
    if (this.country != null) {
      oprot.writeFieldBegin(COUNTRY_FIELD_DESC);
      oprot.writeString(this.country);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(ENABLED_FIELD_DESC);
    oprot.writeBool(this.enabled);
    oprot.writeFieldEnd();
    if (this.type != null) {
      oprot.writeFieldBegin(TYPE_FIELD_DESC);
      oprot.writeI32(this.type.getValue());
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(ADDED_ON_FIELD_DESC);
    oprot.writeI64(this.addedOn);
    oprot.writeFieldEnd();
    if (this.name != null) {
      oprot.writeFieldBegin(NAME_FIELD_DESC);
      oprot.writeString(this.name);
      oprot.writeFieldEnd();
    }
    if (this.phone != null) {
      oprot.writeFieldBegin(PHONE_FIELD_DESC);
      oprot.writeString(this.phone);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(TAX_INVOICE_AVAILABLE_FIELD_DESC);
    oprot.writeBool(this.taxInvoiceAvailable);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(CREDIT_OPTION_AVAILABLE_FIELD_DESC);
    oprot.writeBool(this.creditOptionAvailable);
    oprot.writeFieldEnd();
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("line1:");
    if (this.line1 == null) {
      sb.append("null");
    } else {
      sb.append(this.line1);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("line2:");
    if (this.line2 == null) {
      sb.append("null");
    } else {
      sb.append(this.line2);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("landmark:");
    if (this.landmark == null) {
      sb.append("null");
    } else {
      sb.append(this.landmark);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("city:");
    if (this.city == null) {
      sb.append("null");
    } else {
      sb.append(this.city);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("state:");
    if (this.state == null) {
      sb.append("null");
    } else {
      sb.append(this.state);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("pin:");
    if (this.pin == null) {
      sb.append("null");
    } else {
      sb.append(this.pin);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("country:");
    if (this.country == null) {
      sb.append("null");
    } else {
      sb.append(this.country);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("enabled:");
    sb.append(this.enabled);
    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("addedOn:");
    sb.append(this.addedOn);
    first = false;
    if (!first) sb.append(", ");
    sb.append("name:");
    if (this.name == null) {
      sb.append("null");
    } else {
      sb.append(this.name);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("phone:");
    if (this.phone == null) {
      sb.append("null");
    } else {
      sb.append(this.phone);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("taxInvoiceAvailable:");
    sb.append(this.taxInvoiceAvailable);
    first = false;
    if (!first) sb.append(", ");
    sb.append("creditOptionAvailable:");
    sb.append(this.creditOptionAvailable);
    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);
    }
  }

}