Subversion Repositories SmartDukaan

Rev

Rev 7291 | Rev 9242 | 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.model.v1.catalog;

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 Item implements org.apache.thrift.TBase<Item, Item._Fields>, java.io.Serializable, Cloneable {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Item");

  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 PRODUCT_GROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("productGroup", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField BRAND_FIELD_DESC = new org.apache.thrift.protocol.TField("brand", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField MODEL_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("modelNumber", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField MODEL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("modelName", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField COLOR_FIELD_DESC = new org.apache.thrift.protocol.TField("color", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField CATEGORY_FIELD_DESC = new org.apache.thrift.protocol.TField("category", org.apache.thrift.protocol.TType.I64, (short)7);
  private static final org.apache.thrift.protocol.TField COMMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("comments", org.apache.thrift.protocol.TType.STRING, (short)8);
  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)9);
  private static final org.apache.thrift.protocol.TField FEATURE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("featureId", org.apache.thrift.protocol.TType.I64, (short)10);
  private static final org.apache.thrift.protocol.TField FEATURE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("featureDescription", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField MRP_FIELD_DESC = new org.apache.thrift.protocol.TField("mrp", org.apache.thrift.protocol.TType.DOUBLE, (short)13);
  private static final org.apache.thrift.protocol.TField SELLING_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("sellingPrice", org.apache.thrift.protocol.TType.DOUBLE, (short)14);
  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)15);
  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)16);
  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)17);
  private static final org.apache.thrift.protocol.TField RETIRE_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("retireDate", org.apache.thrift.protocol.TType.I64, (short)18);
  private static final org.apache.thrift.protocol.TField ITEM_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("itemStatus", org.apache.thrift.protocol.TType.I32, (short)19);
  private static final org.apache.thrift.protocol.TField STATUS_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("status_description", org.apache.thrift.protocol.TType.STRING, (short)20);
  private static final org.apache.thrift.protocol.TField OTHER_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("otherInfo", org.apache.thrift.protocol.TType.MAP, (short)21);
  private static final org.apache.thrift.protocol.TField BEST_DEAL_TEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("bestDealText", org.apache.thrift.protocol.TType.STRING, (short)22);
  private static final org.apache.thrift.protocol.TField BEST_DEAL_VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("bestDealValue", org.apache.thrift.protocol.TType.DOUBLE, (short)23);
  private static final org.apache.thrift.protocol.TField DEFAULT_FOR_ENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultForEntity", org.apache.thrift.protocol.TType.BOOL, (short)24);
  private static final org.apache.thrift.protocol.TField UPDATED_ON_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedOn", org.apache.thrift.protocol.TType.I64, (short)25);
  private static final org.apache.thrift.protocol.TField BEST_SELLING_RANK_FIELD_DESC = new org.apache.thrift.protocol.TField("bestSellingRank", org.apache.thrift.protocol.TType.I64, (short)26);
  private static final org.apache.thrift.protocol.TField RISKY_FIELD_DESC = new org.apache.thrift.protocol.TField("risky", org.apache.thrift.protocol.TType.BOOL, (short)27);
  private static final org.apache.thrift.protocol.TField EXPECTED_DELAY_FIELD_DESC = new org.apache.thrift.protocol.TField("expectedDelay", org.apache.thrift.protocol.TType.I32, (short)28);
  private static final org.apache.thrift.protocol.TField IS_WAREHOUSE_PREFERENCE_STICKY_FIELD_DESC = new org.apache.thrift.protocol.TField("isWarehousePreferenceSticky", org.apache.thrift.protocol.TType.BOOL, (short)29);
  private static final org.apache.thrift.protocol.TField WARRANTY_PERIOD_FIELD_DESC = new org.apache.thrift.protocol.TField("warrantyPeriod", org.apache.thrift.protocol.TType.I32, (short)30);
  private static final org.apache.thrift.protocol.TField PREFERRED_VENDOR_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredVendor", org.apache.thrift.protocol.TType.I64, (short)31);
  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)32);
  private static final org.apache.thrift.protocol.TField COMING_SOON_START_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("comingSoonStartDate", org.apache.thrift.protocol.TType.I64, (short)33);
  private static final org.apache.thrift.protocol.TField EXPECTED_ARRIVAL_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("expectedArrivalDate", org.apache.thrift.protocol.TType.I64, (short)34);
  private static final org.apache.thrift.protocol.TField HAS_ITEM_NO_FIELD_DESC = new org.apache.thrift.protocol.TField("hasItemNo", org.apache.thrift.protocol.TType.BOOL, (short)35);
  private static final org.apache.thrift.protocol.TField ACTIVE_ON_STORE_FIELD_DESC = new org.apache.thrift.protocol.TField("activeOnStore", org.apache.thrift.protocol.TType.BOOL, (short)36);
  private static final org.apache.thrift.protocol.TField SHOW_SELLING_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("showSellingPrice", org.apache.thrift.protocol.TType.BOOL, (short)38);
  private static final org.apache.thrift.protocol.TField BEST_DEALS_DETAILS_TEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("bestDealsDetailsText", org.apache.thrift.protocol.TType.STRING, (short)39);
  private static final org.apache.thrift.protocol.TField BEST_DEALS_DETAILS_LINK_FIELD_DESC = new org.apache.thrift.protocol.TField("bestDealsDetailsLink", org.apache.thrift.protocol.TType.STRING, (short)40);
  private static final org.apache.thrift.protocol.TField PREFERRED_INSURER_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredInsurer", org.apache.thrift.protocol.TType.I64, (short)41);
  private static final org.apache.thrift.protocol.TField ASIN_FIELD_DESC = new org.apache.thrift.protocol.TField("asin", org.apache.thrift.protocol.TType.STRING, (short)42);
  private static final org.apache.thrift.protocol.TField DEFAULT_INVENTORY_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultInventory", org.apache.thrift.protocol.TType.I64, (short)43);
  private static final org.apache.thrift.protocol.TField HOLD_INVENTORY_FIELD_DESC = new org.apache.thrift.protocol.TField("holdInventory", org.apache.thrift.protocol.TType.I64, (short)44);

  private long id; // required
  private String productGroup; // required
  private String brand; // required
  private String modelNumber; // required
  private String modelName; // required
  private String color; // required
  private long category; // required
  private String comments; // required
  private long catalogItemId; // required
  private long featureId; // required
  private String featureDescription; // required
  private double mrp; // required
  private double sellingPrice; // required
  private double weight; // required
  private long addedOn; // required
  private long startDate; // required
  private long retireDate; // required
  private status itemStatus; // required
  private String status_description; // required
  private Map<String,String> otherInfo; // required
  private String bestDealText; // required
  private double bestDealValue; // required
  private boolean defaultForEntity; // required
  private long updatedOn; // required
  private long bestSellingRank; // required
  private boolean risky; // required
  private int expectedDelay; // required
  private boolean isWarehousePreferenceSticky; // required
  private int warrantyPeriod; // required
  private long preferredVendor; // required
  private ItemType type; // required
  private long comingSoonStartDate; // required
  private long expectedArrivalDate; // required
  private boolean hasItemNo; // required
  private boolean activeOnStore; // required
  private boolean showSellingPrice; // required
  private String bestDealsDetailsText; // required
  private String bestDealsDetailsLink; // required
  private long preferredInsurer; // required
  private String asin; // required
  private long defaultInventory; // required
  private long holdInventory; // 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"),
    PRODUCT_GROUP((short)2, "productGroup"),
    BRAND((short)3, "brand"),
    MODEL_NUMBER((short)4, "modelNumber"),
    MODEL_NAME((short)5, "modelName"),
    COLOR((short)6, "color"),
    CATEGORY((short)7, "category"),
    COMMENTS((short)8, "comments"),
    CATALOG_ITEM_ID((short)9, "catalogItemId"),
    FEATURE_ID((short)10, "featureId"),
    FEATURE_DESCRIPTION((short)11, "featureDescription"),
    MRP((short)13, "mrp"),
    SELLING_PRICE((short)14, "sellingPrice"),
    WEIGHT((short)15, "weight"),
    ADDED_ON((short)16, "addedOn"),
    START_DATE((short)17, "startDate"),
    RETIRE_DATE((short)18, "retireDate"),
    /**
     * 
     * @see status
     */
    ITEM_STATUS((short)19, "itemStatus"),
    STATUS_DESCRIPTION((short)20, "status_description"),
    OTHER_INFO((short)21, "otherInfo"),
    BEST_DEAL_TEXT((short)22, "bestDealText"),
    BEST_DEAL_VALUE((short)23, "bestDealValue"),
    DEFAULT_FOR_ENTITY((short)24, "defaultForEntity"),
    UPDATED_ON((short)25, "updatedOn"),
    BEST_SELLING_RANK((short)26, "bestSellingRank"),
    RISKY((short)27, "risky"),
    EXPECTED_DELAY((short)28, "expectedDelay"),
    IS_WAREHOUSE_PREFERENCE_STICKY((short)29, "isWarehousePreferenceSticky"),
    WARRANTY_PERIOD((short)30, "warrantyPeriod"),
    PREFERRED_VENDOR((short)31, "preferredVendor"),
    /**
     * 
     * @see ItemType
     */
    TYPE((short)32, "type"),
    COMING_SOON_START_DATE((short)33, "comingSoonStartDate"),
    EXPECTED_ARRIVAL_DATE((short)34, "expectedArrivalDate"),
    HAS_ITEM_NO((short)35, "hasItemNo"),
    ACTIVE_ON_STORE((short)36, "activeOnStore"),
    SHOW_SELLING_PRICE((short)38, "showSellingPrice"),
    BEST_DEALS_DETAILS_TEXT((short)39, "bestDealsDetailsText"),
    BEST_DEALS_DETAILS_LINK((short)40, "bestDealsDetailsLink"),
    PREFERRED_INSURER((short)41, "preferredInsurer"),
    ASIN((short)42, "asin"),
    DEFAULT_INVENTORY((short)43, "defaultInventory"),
    HOLD_INVENTORY((short)44, "holdInventory");

    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: // PRODUCT_GROUP
          return PRODUCT_GROUP;
        case 3: // BRAND
          return BRAND;
        case 4: // MODEL_NUMBER
          return MODEL_NUMBER;
        case 5: // MODEL_NAME
          return MODEL_NAME;
        case 6: // COLOR
          return COLOR;
        case 7: // CATEGORY
          return CATEGORY;
        case 8: // COMMENTS
          return COMMENTS;
        case 9: // CATALOG_ITEM_ID
          return CATALOG_ITEM_ID;
        case 10: // FEATURE_ID
          return FEATURE_ID;
        case 11: // FEATURE_DESCRIPTION
          return FEATURE_DESCRIPTION;
        case 13: // MRP
          return MRP;
        case 14: // SELLING_PRICE
          return SELLING_PRICE;
        case 15: // WEIGHT
          return WEIGHT;
        case 16: // ADDED_ON
          return ADDED_ON;
        case 17: // START_DATE
          return START_DATE;
        case 18: // RETIRE_DATE
          return RETIRE_DATE;
        case 19: // ITEM_STATUS
          return ITEM_STATUS;
        case 20: // STATUS_DESCRIPTION
          return STATUS_DESCRIPTION;
        case 21: // OTHER_INFO
          return OTHER_INFO;
        case 22: // BEST_DEAL_TEXT
          return BEST_DEAL_TEXT;
        case 23: // BEST_DEAL_VALUE
          return BEST_DEAL_VALUE;
        case 24: // DEFAULT_FOR_ENTITY
          return DEFAULT_FOR_ENTITY;
        case 25: // UPDATED_ON
          return UPDATED_ON;
        case 26: // BEST_SELLING_RANK
          return BEST_SELLING_RANK;
        case 27: // RISKY
          return RISKY;
        case 28: // EXPECTED_DELAY
          return EXPECTED_DELAY;
        case 29: // IS_WAREHOUSE_PREFERENCE_STICKY
          return IS_WAREHOUSE_PREFERENCE_STICKY;
        case 30: // WARRANTY_PERIOD
          return WARRANTY_PERIOD;
        case 31: // PREFERRED_VENDOR
          return PREFERRED_VENDOR;
        case 32: // TYPE
          return TYPE;
        case 33: // COMING_SOON_START_DATE
          return COMING_SOON_START_DATE;
        case 34: // EXPECTED_ARRIVAL_DATE
          return EXPECTED_ARRIVAL_DATE;
        case 35: // HAS_ITEM_NO
          return HAS_ITEM_NO;
        case 36: // ACTIVE_ON_STORE
          return ACTIVE_ON_STORE;
        case 38: // SHOW_SELLING_PRICE
          return SHOW_SELLING_PRICE;
        case 39: // BEST_DEALS_DETAILS_TEXT
          return BEST_DEALS_DETAILS_TEXT;
        case 40: // BEST_DEALS_DETAILS_LINK
          return BEST_DEALS_DETAILS_LINK;
        case 41: // PREFERRED_INSURER
          return PREFERRED_INSURER;
        case 42: // ASIN
          return ASIN;
        case 43: // DEFAULT_INVENTORY
          return DEFAULT_INVENTORY;
        case 44: // HOLD_INVENTORY
          return HOLD_INVENTORY;
        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 __CATEGORY_ISSET_ID = 1;
  private static final int __CATALOGITEMID_ISSET_ID = 2;
  private static final int __FEATUREID_ISSET_ID = 3;
  private static final int __MRP_ISSET_ID = 4;
  private static final int __SELLINGPRICE_ISSET_ID = 5;
  private static final int __WEIGHT_ISSET_ID = 6;
  private static final int __ADDEDON_ISSET_ID = 7;
  private static final int __STARTDATE_ISSET_ID = 8;
  private static final int __RETIREDATE_ISSET_ID = 9;
  private static final int __BESTDEALVALUE_ISSET_ID = 10;
  private static final int __DEFAULTFORENTITY_ISSET_ID = 11;
  private static final int __UPDATEDON_ISSET_ID = 12;
  private static final int __BESTSELLINGRANK_ISSET_ID = 13;
  private static final int __RISKY_ISSET_ID = 14;
  private static final int __EXPECTEDDELAY_ISSET_ID = 15;
  private static final int __ISWAREHOUSEPREFERENCESTICKY_ISSET_ID = 16;
  private static final int __WARRANTYPERIOD_ISSET_ID = 17;
  private static final int __PREFERREDVENDOR_ISSET_ID = 18;
  private static final int __COMINGSOONSTARTDATE_ISSET_ID = 19;
  private static final int __EXPECTEDARRIVALDATE_ISSET_ID = 20;
  private static final int __HASITEMNO_ISSET_ID = 21;
  private static final int __ACTIVEONSTORE_ISSET_ID = 22;
  private static final int __SHOWSELLINGPRICE_ISSET_ID = 23;
  private static final int __PREFERREDINSURER_ISSET_ID = 24;
  private static final int __DEFAULTINVENTORY_ISSET_ID = 25;
  private static final int __HOLDINVENTORY_ISSET_ID = 26;
  private BitSet __isset_bit_vector = new BitSet(27);

  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.PRODUCT_GROUP, new org.apache.thrift.meta_data.FieldMetaData("productGroup", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BRAND, new org.apache.thrift.meta_data.FieldMetaData("brand", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.MODEL_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("modelNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.MODEL_NAME, new org.apache.thrift.meta_data.FieldMetaData("modelName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.COLOR, new org.apache.thrift.meta_data.FieldMetaData("color", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CATEGORY, new org.apache.thrift.meta_data.FieldMetaData("category", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.COMMENTS, new org.apache.thrift.meta_data.FieldMetaData("comments", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    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.FEATURE_ID, new org.apache.thrift.meta_data.FieldMetaData("featureId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.FEATURE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("featureDescription", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.MRP, new org.apache.thrift.meta_data.FieldMetaData("mrp", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SELLING_PRICE, new org.apache.thrift.meta_data.FieldMetaData("sellingPrice", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.WEIGHT, new org.apache.thrift.meta_data.FieldMetaData("weight", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    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.START_DATE, new org.apache.thrift.meta_data.FieldMetaData("startDate", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.RETIRE_DATE, new org.apache.thrift.meta_data.FieldMetaData("retireDate", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.ITEM_STATUS, new org.apache.thrift.meta_data.FieldMetaData("itemStatus", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, status.class)));
    tmpMap.put(_Fields.STATUS_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("status_description", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.OTHER_INFO, new org.apache.thrift.meta_data.FieldMetaData("otherInfo", 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.BEST_DEAL_TEXT, new org.apache.thrift.meta_data.FieldMetaData("bestDealText", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BEST_DEAL_VALUE, new org.apache.thrift.meta_data.FieldMetaData("bestDealValue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.DEFAULT_FOR_ENTITY, new org.apache.thrift.meta_data.FieldMetaData("defaultForEntity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.UPDATED_ON, new org.apache.thrift.meta_data.FieldMetaData("updatedOn", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.BEST_SELLING_RANK, new org.apache.thrift.meta_data.FieldMetaData("bestSellingRank", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.RISKY, new org.apache.thrift.meta_data.FieldMetaData("risky", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.EXPECTED_DELAY, new org.apache.thrift.meta_data.FieldMetaData("expectedDelay", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.IS_WAREHOUSE_PREFERENCE_STICKY, new org.apache.thrift.meta_data.FieldMetaData("isWarehousePreferenceSticky", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.WARRANTY_PERIOD, new org.apache.thrift.meta_data.FieldMetaData("warrantyPeriod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.PREFERRED_VENDOR, new org.apache.thrift.meta_data.FieldMetaData("preferredVendor", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        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, ItemType.class)));
    tmpMap.put(_Fields.COMING_SOON_START_DATE, new org.apache.thrift.meta_data.FieldMetaData("comingSoonStartDate", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.EXPECTED_ARRIVAL_DATE, new org.apache.thrift.meta_data.FieldMetaData("expectedArrivalDate", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.HAS_ITEM_NO, new org.apache.thrift.meta_data.FieldMetaData("hasItemNo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.ACTIVE_ON_STORE, new org.apache.thrift.meta_data.FieldMetaData("activeOnStore", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.SHOW_SELLING_PRICE, new org.apache.thrift.meta_data.FieldMetaData("showSellingPrice", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.BEST_DEALS_DETAILS_TEXT, new org.apache.thrift.meta_data.FieldMetaData("bestDealsDetailsText", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BEST_DEALS_DETAILS_LINK, new org.apache.thrift.meta_data.FieldMetaData("bestDealsDetailsLink", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PREFERRED_INSURER, new org.apache.thrift.meta_data.FieldMetaData("preferredInsurer", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.ASIN, new org.apache.thrift.meta_data.FieldMetaData("asin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DEFAULT_INVENTORY, new org.apache.thrift.meta_data.FieldMetaData("defaultInventory", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.HOLD_INVENTORY, new org.apache.thrift.meta_data.FieldMetaData("holdInventory", 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(Item.class, metaDataMap);
  }

  public Item() {
  }

  public Item(
    long id,
    String productGroup,
    String brand,
    String modelNumber,
    String modelName,
    String color,
    long category,
    String comments,
    long catalogItemId,
    long featureId,
    String featureDescription,
    long addedOn,
    status itemStatus,
    String status_description,
    Map<String,String> otherInfo,
    String bestDealText,
    boolean defaultForEntity,
    long updatedOn,
    boolean risky,
    int warrantyPeriod,
    ItemType type,
    boolean hasItemNo,
    boolean activeOnStore,
    boolean showSellingPrice,
    String bestDealsDetailsText,
    String bestDealsDetailsLink,
    long preferredInsurer,
    String asin,
    long defaultInventory,
    long holdInventory)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.productGroup = productGroup;
    this.brand = brand;
    this.modelNumber = modelNumber;
    this.modelName = modelName;
    this.color = color;
    this.category = category;
    setCategoryIsSet(true);
    this.comments = comments;
    this.catalogItemId = catalogItemId;
    setCatalogItemIdIsSet(true);
    this.featureId = featureId;
    setFeatureIdIsSet(true);
    this.featureDescription = featureDescription;
    this.addedOn = addedOn;
    setAddedOnIsSet(true);
    this.itemStatus = itemStatus;
    this.status_description = status_description;
    this.otherInfo = otherInfo;
    this.bestDealText = bestDealText;
    this.defaultForEntity = defaultForEntity;
    setDefaultForEntityIsSet(true);
    this.updatedOn = updatedOn;
    setUpdatedOnIsSet(true);
    this.risky = risky;
    setRiskyIsSet(true);
    this.warrantyPeriod = warrantyPeriod;
    setWarrantyPeriodIsSet(true);
    this.type = type;
    this.hasItemNo = hasItemNo;
    setHasItemNoIsSet(true);
    this.activeOnStore = activeOnStore;
    setActiveOnStoreIsSet(true);
    this.showSellingPrice = showSellingPrice;
    setShowSellingPriceIsSet(true);
    this.bestDealsDetailsText = bestDealsDetailsText;
    this.bestDealsDetailsLink = bestDealsDetailsLink;
    this.preferredInsurer = preferredInsurer;
    setPreferredInsurerIsSet(true);
    this.asin = asin;
    this.defaultInventory = defaultInventory;
    setDefaultInventoryIsSet(true);
    this.holdInventory = holdInventory;
    setHoldInventoryIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public Item(Item other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    if (other.isSetProductGroup()) {
      this.productGroup = other.productGroup;
    }
    if (other.isSetBrand()) {
      this.brand = other.brand;
    }
    if (other.isSetModelNumber()) {
      this.modelNumber = other.modelNumber;
    }
    if (other.isSetModelName()) {
      this.modelName = other.modelName;
    }
    if (other.isSetColor()) {
      this.color = other.color;
    }
    this.category = other.category;
    if (other.isSetComments()) {
      this.comments = other.comments;
    }
    this.catalogItemId = other.catalogItemId;
    this.featureId = other.featureId;
    if (other.isSetFeatureDescription()) {
      this.featureDescription = other.featureDescription;
    }
    this.mrp = other.mrp;
    this.sellingPrice = other.sellingPrice;
    this.weight = other.weight;
    this.addedOn = other.addedOn;
    this.startDate = other.startDate;
    this.retireDate = other.retireDate;
    if (other.isSetItemStatus()) {
      this.itemStatus = other.itemStatus;
    }
    if (other.isSetStatus_description()) {
      this.status_description = other.status_description;
    }
    if (other.isSetOtherInfo()) {
      Map<String,String> __this__otherInfo = new HashMap<String,String>();
      for (Map.Entry<String, String> other_element : other.otherInfo.entrySet()) {

        String other_element_key = other_element.getKey();
        String other_element_value = other_element.getValue();

        String __this__otherInfo_copy_key = other_element_key;

        String __this__otherInfo_copy_value = other_element_value;

        __this__otherInfo.put(__this__otherInfo_copy_key, __this__otherInfo_copy_value);
      }
      this.otherInfo = __this__otherInfo;
    }
    if (other.isSetBestDealText()) {
      this.bestDealText = other.bestDealText;
    }
    this.bestDealValue = other.bestDealValue;
    this.defaultForEntity = other.defaultForEntity;
    this.updatedOn = other.updatedOn;
    this.bestSellingRank = other.bestSellingRank;
    this.risky = other.risky;
    this.expectedDelay = other.expectedDelay;
    this.isWarehousePreferenceSticky = other.isWarehousePreferenceSticky;
    this.warrantyPeriod = other.warrantyPeriod;
    this.preferredVendor = other.preferredVendor;
    if (other.isSetType()) {
      this.type = other.type;
    }
    this.comingSoonStartDate = other.comingSoonStartDate;
    this.expectedArrivalDate = other.expectedArrivalDate;
    this.hasItemNo = other.hasItemNo;
    this.activeOnStore = other.activeOnStore;
    this.showSellingPrice = other.showSellingPrice;
    if (other.isSetBestDealsDetailsText()) {
      this.bestDealsDetailsText = other.bestDealsDetailsText;
    }
    if (other.isSetBestDealsDetailsLink()) {
      this.bestDealsDetailsLink = other.bestDealsDetailsLink;
    }
    this.preferredInsurer = other.preferredInsurer;
    if (other.isSetAsin()) {
      this.asin = other.asin;
    }
    this.defaultInventory = other.defaultInventory;
    this.holdInventory = other.holdInventory;
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    this.productGroup = null;
    this.brand = null;
    this.modelNumber = null;
    this.modelName = null;
    this.color = null;
    setCategoryIsSet(false);
    this.category = 0;
    this.comments = null;
    setCatalogItemIdIsSet(false);
    this.catalogItemId = 0;
    setFeatureIdIsSet(false);
    this.featureId = 0;
    this.featureDescription = null;
    setMrpIsSet(false);
    this.mrp = 0.0;
    setSellingPriceIsSet(false);
    this.sellingPrice = 0.0;
    setWeightIsSet(false);
    this.weight = 0.0;
    setAddedOnIsSet(false);
    this.addedOn = 0;
    setStartDateIsSet(false);
    this.startDate = 0;
    setRetireDateIsSet(false);
    this.retireDate = 0;
    this.itemStatus = null;
    this.status_description = null;
    this.otherInfo = null;
    this.bestDealText = null;
    setBestDealValueIsSet(false);
    this.bestDealValue = 0.0;
    setDefaultForEntityIsSet(false);
    this.defaultForEntity = false;
    setUpdatedOnIsSet(false);
    this.updatedOn = 0;
    setBestSellingRankIsSet(false);
    this.bestSellingRank = 0;
    setRiskyIsSet(false);
    this.risky = false;
    setExpectedDelayIsSet(false);
    this.expectedDelay = 0;
    setIsWarehousePreferenceStickyIsSet(false);
    this.isWarehousePreferenceSticky = false;
    setWarrantyPeriodIsSet(false);
    this.warrantyPeriod = 0;
    setPreferredVendorIsSet(false);
    this.preferredVendor = 0;
    this.type = null;
    setComingSoonStartDateIsSet(false);
    this.comingSoonStartDate = 0;
    setExpectedArrivalDateIsSet(false);
    this.expectedArrivalDate = 0;
    setHasItemNoIsSet(false);
    this.hasItemNo = false;
    setActiveOnStoreIsSet(false);
    this.activeOnStore = false;
    setShowSellingPriceIsSet(false);
    this.showSellingPrice = false;
    this.bestDealsDetailsText = null;
    this.bestDealsDetailsLink = null;
    setPreferredInsurerIsSet(false);
    this.preferredInsurer = 0;
    this.asin = null;
    setDefaultInventoryIsSet(false);
    this.defaultInventory = 0;
    setHoldInventoryIsSet(false);
    this.holdInventory = 0;
  }

  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 getProductGroup() {
    return this.productGroup;
  }

  public void setProductGroup(String productGroup) {
    this.productGroup = productGroup;
  }

  public void unsetProductGroup() {
    this.productGroup = null;
  }

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

  public void setProductGroupIsSet(boolean value) {
    if (!value) {
      this.productGroup = null;
    }
  }

  public String getBrand() {
    return this.brand;
  }

  public void setBrand(String brand) {
    this.brand = brand;
  }

  public void unsetBrand() {
    this.brand = null;
  }

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

  public void setBrandIsSet(boolean value) {
    if (!value) {
      this.brand = null;
    }
  }

  public String getModelNumber() {
    return this.modelNumber;
  }

  public void setModelNumber(String modelNumber) {
    this.modelNumber = modelNumber;
  }

  public void unsetModelNumber() {
    this.modelNumber = null;
  }

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

  public void setModelNumberIsSet(boolean value) {
    if (!value) {
      this.modelNumber = null;
    }
  }

  public String getModelName() {
    return this.modelName;
  }

  public void setModelName(String modelName) {
    this.modelName = modelName;
  }

  public void unsetModelName() {
    this.modelName = null;
  }

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

  public void setModelNameIsSet(boolean value) {
    if (!value) {
      this.modelName = null;
    }
  }

  public String getColor() {
    return this.color;
  }

  public void setColor(String color) {
    this.color = color;
  }

  public void unsetColor() {
    this.color = null;
  }

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

  public void setColorIsSet(boolean value) {
    if (!value) {
      this.color = null;
    }
  }

  public long getCategory() {
    return this.category;
  }

  public void setCategory(long category) {
    this.category = category;
    setCategoryIsSet(true);
  }

  public void unsetCategory() {
    __isset_bit_vector.clear(__CATEGORY_ISSET_ID);
  }

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

  public void setCategoryIsSet(boolean value) {
    __isset_bit_vector.set(__CATEGORY_ISSET_ID, value);
  }

  public String getComments() {
    return this.comments;
  }

  public void setComments(String comments) {
    this.comments = comments;
  }

  public void unsetComments() {
    this.comments = null;
  }

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

  public void setCommentsIsSet(boolean value) {
    if (!value) {
      this.comments = 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 long getFeatureId() {
    return this.featureId;
  }

  public void setFeatureId(long featureId) {
    this.featureId = featureId;
    setFeatureIdIsSet(true);
  }

  public void unsetFeatureId() {
    __isset_bit_vector.clear(__FEATUREID_ISSET_ID);
  }

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

  public void setFeatureIdIsSet(boolean value) {
    __isset_bit_vector.set(__FEATUREID_ISSET_ID, value);
  }

  public String getFeatureDescription() {
    return this.featureDescription;
  }

  public void setFeatureDescription(String featureDescription) {
    this.featureDescription = featureDescription;
  }

  public void unsetFeatureDescription() {
    this.featureDescription = null;
  }

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

  public void setFeatureDescriptionIsSet(boolean value) {
    if (!value) {
      this.featureDescription = null;
    }
  }

  public double getMrp() {
    return this.mrp;
  }

  public void setMrp(double mrp) {
    this.mrp = mrp;
    setMrpIsSet(true);
  }

  public void unsetMrp() {
    __isset_bit_vector.clear(__MRP_ISSET_ID);
  }

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

  public void setMrpIsSet(boolean value) {
    __isset_bit_vector.set(__MRP_ISSET_ID, value);
  }

  public double getSellingPrice() {
    return this.sellingPrice;
  }

  public void setSellingPrice(double sellingPrice) {
    this.sellingPrice = sellingPrice;
    setSellingPriceIsSet(true);
  }

  public void unsetSellingPrice() {
    __isset_bit_vector.clear(__SELLINGPRICE_ISSET_ID);
  }

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

  public void setSellingPriceIsSet(boolean value) {
    __isset_bit_vector.set(__SELLINGPRICE_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 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 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 getRetireDate() {
    return this.retireDate;
  }

  public void setRetireDate(long retireDate) {
    this.retireDate = retireDate;
    setRetireDateIsSet(true);
  }

  public void unsetRetireDate() {
    __isset_bit_vector.clear(__RETIREDATE_ISSET_ID);
  }

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

  public void setRetireDateIsSet(boolean value) {
    __isset_bit_vector.set(__RETIREDATE_ISSET_ID, value);
  }

  /**
   * 
   * @see status
   */
  public status getItemStatus() {
    return this.itemStatus;
  }

  /**
   * 
   * @see status
   */
  public void setItemStatus(status itemStatus) {
    this.itemStatus = itemStatus;
  }

  public void unsetItemStatus() {
    this.itemStatus = null;
  }

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

  public void setItemStatusIsSet(boolean value) {
    if (!value) {
      this.itemStatus = null;
    }
  }

  public String getStatus_description() {
    return this.status_description;
  }

  public void setStatus_description(String status_description) {
    this.status_description = status_description;
  }

  public void unsetStatus_description() {
    this.status_description = null;
  }

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

  public void setStatus_descriptionIsSet(boolean value) {
    if (!value) {
      this.status_description = null;
    }
  }

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

  public void putToOtherInfo(String key, String val) {
    if (this.otherInfo == null) {
      this.otherInfo = new HashMap<String,String>();
    }
    this.otherInfo.put(key, val);
  }

  public Map<String,String> getOtherInfo() {
    return this.otherInfo;
  }

  public void setOtherInfo(Map<String,String> otherInfo) {
    this.otherInfo = otherInfo;
  }

  public void unsetOtherInfo() {
    this.otherInfo = null;
  }

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

  public void setOtherInfoIsSet(boolean value) {
    if (!value) {
      this.otherInfo = null;
    }
  }

  public String getBestDealText() {
    return this.bestDealText;
  }

  public void setBestDealText(String bestDealText) {
    this.bestDealText = bestDealText;
  }

  public void unsetBestDealText() {
    this.bestDealText = null;
  }

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

  public void setBestDealTextIsSet(boolean value) {
    if (!value) {
      this.bestDealText = null;
    }
  }

  public double getBestDealValue() {
    return this.bestDealValue;
  }

  public void setBestDealValue(double bestDealValue) {
    this.bestDealValue = bestDealValue;
    setBestDealValueIsSet(true);
  }

  public void unsetBestDealValue() {
    __isset_bit_vector.clear(__BESTDEALVALUE_ISSET_ID);
  }

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

  public void setBestDealValueIsSet(boolean value) {
    __isset_bit_vector.set(__BESTDEALVALUE_ISSET_ID, value);
  }

  public boolean isDefaultForEntity() {
    return this.defaultForEntity;
  }

  public void setDefaultForEntity(boolean defaultForEntity) {
    this.defaultForEntity = defaultForEntity;
    setDefaultForEntityIsSet(true);
  }

  public void unsetDefaultForEntity() {
    __isset_bit_vector.clear(__DEFAULTFORENTITY_ISSET_ID);
  }

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

  public void setDefaultForEntityIsSet(boolean value) {
    __isset_bit_vector.set(__DEFAULTFORENTITY_ISSET_ID, value);
  }

  public long getUpdatedOn() {
    return this.updatedOn;
  }

  public void setUpdatedOn(long updatedOn) {
    this.updatedOn = updatedOn;
    setUpdatedOnIsSet(true);
  }

  public void unsetUpdatedOn() {
    __isset_bit_vector.clear(__UPDATEDON_ISSET_ID);
  }

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

  public void setUpdatedOnIsSet(boolean value) {
    __isset_bit_vector.set(__UPDATEDON_ISSET_ID, value);
  }

  public long getBestSellingRank() {
    return this.bestSellingRank;
  }

  public void setBestSellingRank(long bestSellingRank) {
    this.bestSellingRank = bestSellingRank;
    setBestSellingRankIsSet(true);
  }

  public void unsetBestSellingRank() {
    __isset_bit_vector.clear(__BESTSELLINGRANK_ISSET_ID);
  }

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

  public void setBestSellingRankIsSet(boolean value) {
    __isset_bit_vector.set(__BESTSELLINGRANK_ISSET_ID, value);
  }

  public boolean isRisky() {
    return this.risky;
  }

  public void setRisky(boolean risky) {
    this.risky = risky;
    setRiskyIsSet(true);
  }

  public void unsetRisky() {
    __isset_bit_vector.clear(__RISKY_ISSET_ID);
  }

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

  public void setRiskyIsSet(boolean value) {
    __isset_bit_vector.set(__RISKY_ISSET_ID, value);
  }

  public int getExpectedDelay() {
    return this.expectedDelay;
  }

  public void setExpectedDelay(int expectedDelay) {
    this.expectedDelay = expectedDelay;
    setExpectedDelayIsSet(true);
  }

  public void unsetExpectedDelay() {
    __isset_bit_vector.clear(__EXPECTEDDELAY_ISSET_ID);
  }

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

  public void setExpectedDelayIsSet(boolean value) {
    __isset_bit_vector.set(__EXPECTEDDELAY_ISSET_ID, value);
  }

  public boolean isIsWarehousePreferenceSticky() {
    return this.isWarehousePreferenceSticky;
  }

  public void setIsWarehousePreferenceSticky(boolean isWarehousePreferenceSticky) {
    this.isWarehousePreferenceSticky = isWarehousePreferenceSticky;
    setIsWarehousePreferenceStickyIsSet(true);
  }

  public void unsetIsWarehousePreferenceSticky() {
    __isset_bit_vector.clear(__ISWAREHOUSEPREFERENCESTICKY_ISSET_ID);
  }

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

  public void setIsWarehousePreferenceStickyIsSet(boolean value) {
    __isset_bit_vector.set(__ISWAREHOUSEPREFERENCESTICKY_ISSET_ID, value);
  }

  public int getWarrantyPeriod() {
    return this.warrantyPeriod;
  }

  public void setWarrantyPeriod(int warrantyPeriod) {
    this.warrantyPeriod = warrantyPeriod;
    setWarrantyPeriodIsSet(true);
  }

  public void unsetWarrantyPeriod() {
    __isset_bit_vector.clear(__WARRANTYPERIOD_ISSET_ID);
  }

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

  public void setWarrantyPeriodIsSet(boolean value) {
    __isset_bit_vector.set(__WARRANTYPERIOD_ISSET_ID, value);
  }

  public long getPreferredVendor() {
    return this.preferredVendor;
  }

  public void setPreferredVendor(long preferredVendor) {
    this.preferredVendor = preferredVendor;
    setPreferredVendorIsSet(true);
  }

  public void unsetPreferredVendor() {
    __isset_bit_vector.clear(__PREFERREDVENDOR_ISSET_ID);
  }

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

  public void setPreferredVendorIsSet(boolean value) {
    __isset_bit_vector.set(__PREFERREDVENDOR_ISSET_ID, value);
  }

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

  /**
   * 
   * @see ItemType
   */
  public void setType(ItemType 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 getComingSoonStartDate() {
    return this.comingSoonStartDate;
  }

  public void setComingSoonStartDate(long comingSoonStartDate) {
    this.comingSoonStartDate = comingSoonStartDate;
    setComingSoonStartDateIsSet(true);
  }

  public void unsetComingSoonStartDate() {
    __isset_bit_vector.clear(__COMINGSOONSTARTDATE_ISSET_ID);
  }

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

  public void setComingSoonStartDateIsSet(boolean value) {
    __isset_bit_vector.set(__COMINGSOONSTARTDATE_ISSET_ID, value);
  }

  public long getExpectedArrivalDate() {
    return this.expectedArrivalDate;
  }

  public void setExpectedArrivalDate(long expectedArrivalDate) {
    this.expectedArrivalDate = expectedArrivalDate;
    setExpectedArrivalDateIsSet(true);
  }

  public void unsetExpectedArrivalDate() {
    __isset_bit_vector.clear(__EXPECTEDARRIVALDATE_ISSET_ID);
  }

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

  public void setExpectedArrivalDateIsSet(boolean value) {
    __isset_bit_vector.set(__EXPECTEDARRIVALDATE_ISSET_ID, value);
  }

  public boolean isHasItemNo() {
    return this.hasItemNo;
  }

  public void setHasItemNo(boolean hasItemNo) {
    this.hasItemNo = hasItemNo;
    setHasItemNoIsSet(true);
  }

  public void unsetHasItemNo() {
    __isset_bit_vector.clear(__HASITEMNO_ISSET_ID);
  }

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

  public void setHasItemNoIsSet(boolean value) {
    __isset_bit_vector.set(__HASITEMNO_ISSET_ID, value);
  }

  public boolean isActiveOnStore() {
    return this.activeOnStore;
  }

  public void setActiveOnStore(boolean activeOnStore) {
    this.activeOnStore = activeOnStore;
    setActiveOnStoreIsSet(true);
  }

  public void unsetActiveOnStore() {
    __isset_bit_vector.clear(__ACTIVEONSTORE_ISSET_ID);
  }

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

  public void setActiveOnStoreIsSet(boolean value) {
    __isset_bit_vector.set(__ACTIVEONSTORE_ISSET_ID, value);
  }

  public boolean isShowSellingPrice() {
    return this.showSellingPrice;
  }

  public void setShowSellingPrice(boolean showSellingPrice) {
    this.showSellingPrice = showSellingPrice;
    setShowSellingPriceIsSet(true);
  }

  public void unsetShowSellingPrice() {
    __isset_bit_vector.clear(__SHOWSELLINGPRICE_ISSET_ID);
  }

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

  public void setShowSellingPriceIsSet(boolean value) {
    __isset_bit_vector.set(__SHOWSELLINGPRICE_ISSET_ID, value);
  }

  public String getBestDealsDetailsText() {
    return this.bestDealsDetailsText;
  }

  public void setBestDealsDetailsText(String bestDealsDetailsText) {
    this.bestDealsDetailsText = bestDealsDetailsText;
  }

  public void unsetBestDealsDetailsText() {
    this.bestDealsDetailsText = null;
  }

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

  public void setBestDealsDetailsTextIsSet(boolean value) {
    if (!value) {
      this.bestDealsDetailsText = null;
    }
  }

  public String getBestDealsDetailsLink() {
    return this.bestDealsDetailsLink;
  }

  public void setBestDealsDetailsLink(String bestDealsDetailsLink) {
    this.bestDealsDetailsLink = bestDealsDetailsLink;
  }

  public void unsetBestDealsDetailsLink() {
    this.bestDealsDetailsLink = null;
  }

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

  public void setBestDealsDetailsLinkIsSet(boolean value) {
    if (!value) {
      this.bestDealsDetailsLink = null;
    }
  }

  public long getPreferredInsurer() {
    return this.preferredInsurer;
  }

  public void setPreferredInsurer(long preferredInsurer) {
    this.preferredInsurer = preferredInsurer;
    setPreferredInsurerIsSet(true);
  }

  public void unsetPreferredInsurer() {
    __isset_bit_vector.clear(__PREFERREDINSURER_ISSET_ID);
  }

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

  public void setPreferredInsurerIsSet(boolean value) {
    __isset_bit_vector.set(__PREFERREDINSURER_ISSET_ID, value);
  }

  public String getAsin() {
    return this.asin;
  }

  public void setAsin(String asin) {
    this.asin = asin;
  }

  public void unsetAsin() {
    this.asin = null;
  }

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

  public void setAsinIsSet(boolean value) {
    if (!value) {
      this.asin = null;
    }
  }

  public long getDefaultInventory() {
    return this.defaultInventory;
  }

  public void setDefaultInventory(long defaultInventory) {
    this.defaultInventory = defaultInventory;
    setDefaultInventoryIsSet(true);
  }

  public void unsetDefaultInventory() {
    __isset_bit_vector.clear(__DEFAULTINVENTORY_ISSET_ID);
  }

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

  public void setDefaultInventoryIsSet(boolean value) {
    __isset_bit_vector.set(__DEFAULTINVENTORY_ISSET_ID, value);
  }

  public long getHoldInventory() {
    return this.holdInventory;
  }

  public void setHoldInventory(long holdInventory) {
    this.holdInventory = holdInventory;
    setHoldInventoryIsSet(true);
  }

  public void unsetHoldInventory() {
    __isset_bit_vector.clear(__HOLDINVENTORY_ISSET_ID);
  }

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

  public void setHoldInventoryIsSet(boolean value) {
    __isset_bit_vector.set(__HOLDINVENTORY_ISSET_ID, value);
  }

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

    case PRODUCT_GROUP:
      if (value == null) {
        unsetProductGroup();
      } else {
        setProductGroup((String)value);
      }
      break;

    case BRAND:
      if (value == null) {
        unsetBrand();
      } else {
        setBrand((String)value);
      }
      break;

    case MODEL_NUMBER:
      if (value == null) {
        unsetModelNumber();
      } else {
        setModelNumber((String)value);
      }
      break;

    case MODEL_NAME:
      if (value == null) {
        unsetModelName();
      } else {
        setModelName((String)value);
      }
      break;

    case COLOR:
      if (value == null) {
        unsetColor();
      } else {
        setColor((String)value);
      }
      break;

    case CATEGORY:
      if (value == null) {
        unsetCategory();
      } else {
        setCategory((Long)value);
      }
      break;

    case COMMENTS:
      if (value == null) {
        unsetComments();
      } else {
        setComments((String)value);
      }
      break;

    case CATALOG_ITEM_ID:
      if (value == null) {
        unsetCatalogItemId();
      } else {
        setCatalogItemId((Long)value);
      }
      break;

    case FEATURE_ID:
      if (value == null) {
        unsetFeatureId();
      } else {
        setFeatureId((Long)value);
      }
      break;

    case FEATURE_DESCRIPTION:
      if (value == null) {
        unsetFeatureDescription();
      } else {
        setFeatureDescription((String)value);
      }
      break;

    case MRP:
      if (value == null) {
        unsetMrp();
      } else {
        setMrp((Double)value);
      }
      break;

    case SELLING_PRICE:
      if (value == null) {
        unsetSellingPrice();
      } else {
        setSellingPrice((Double)value);
      }
      break;

    case WEIGHT:
      if (value == null) {
        unsetWeight();
      } else {
        setWeight((Double)value);
      }
      break;

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

    case START_DATE:
      if (value == null) {
        unsetStartDate();
      } else {
        setStartDate((Long)value);
      }
      break;

    case RETIRE_DATE:
      if (value == null) {
        unsetRetireDate();
      } else {
        setRetireDate((Long)value);
      }
      break;

    case ITEM_STATUS:
      if (value == null) {
        unsetItemStatus();
      } else {
        setItemStatus((status)value);
      }
      break;

    case STATUS_DESCRIPTION:
      if (value == null) {
        unsetStatus_description();
      } else {
        setStatus_description((String)value);
      }
      break;

    case OTHER_INFO:
      if (value == null) {
        unsetOtherInfo();
      } else {
        setOtherInfo((Map<String,String>)value);
      }
      break;

    case BEST_DEAL_TEXT:
      if (value == null) {
        unsetBestDealText();
      } else {
        setBestDealText((String)value);
      }
      break;

    case BEST_DEAL_VALUE:
      if (value == null) {
        unsetBestDealValue();
      } else {
        setBestDealValue((Double)value);
      }
      break;

    case DEFAULT_FOR_ENTITY:
      if (value == null) {
        unsetDefaultForEntity();
      } else {
        setDefaultForEntity((Boolean)value);
      }
      break;

    case UPDATED_ON:
      if (value == null) {
        unsetUpdatedOn();
      } else {
        setUpdatedOn((Long)value);
      }
      break;

    case BEST_SELLING_RANK:
      if (value == null) {
        unsetBestSellingRank();
      } else {
        setBestSellingRank((Long)value);
      }
      break;

    case RISKY:
      if (value == null) {
        unsetRisky();
      } else {
        setRisky((Boolean)value);
      }
      break;

    case EXPECTED_DELAY:
      if (value == null) {
        unsetExpectedDelay();
      } else {
        setExpectedDelay((Integer)value);
      }
      break;

    case IS_WAREHOUSE_PREFERENCE_STICKY:
      if (value == null) {
        unsetIsWarehousePreferenceSticky();
      } else {
        setIsWarehousePreferenceSticky((Boolean)value);
      }
      break;

    case WARRANTY_PERIOD:
      if (value == null) {
        unsetWarrantyPeriod();
      } else {
        setWarrantyPeriod((Integer)value);
      }
      break;

    case PREFERRED_VENDOR:
      if (value == null) {
        unsetPreferredVendor();
      } else {
        setPreferredVendor((Long)value);
      }
      break;

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

    case COMING_SOON_START_DATE:
      if (value == null) {
        unsetComingSoonStartDate();
      } else {
        setComingSoonStartDate((Long)value);
      }
      break;

    case EXPECTED_ARRIVAL_DATE:
      if (value == null) {
        unsetExpectedArrivalDate();
      } else {
        setExpectedArrivalDate((Long)value);
      }
      break;

    case HAS_ITEM_NO:
      if (value == null) {
        unsetHasItemNo();
      } else {
        setHasItemNo((Boolean)value);
      }
      break;

    case ACTIVE_ON_STORE:
      if (value == null) {
        unsetActiveOnStore();
      } else {
        setActiveOnStore((Boolean)value);
      }
      break;

    case SHOW_SELLING_PRICE:
      if (value == null) {
        unsetShowSellingPrice();
      } else {
        setShowSellingPrice((Boolean)value);
      }
      break;

    case BEST_DEALS_DETAILS_TEXT:
      if (value == null) {
        unsetBestDealsDetailsText();
      } else {
        setBestDealsDetailsText((String)value);
      }
      break;

    case BEST_DEALS_DETAILS_LINK:
      if (value == null) {
        unsetBestDealsDetailsLink();
      } else {
        setBestDealsDetailsLink((String)value);
      }
      break;

    case PREFERRED_INSURER:
      if (value == null) {
        unsetPreferredInsurer();
      } else {
        setPreferredInsurer((Long)value);
      }
      break;

    case ASIN:
      if (value == null) {
        unsetAsin();
      } else {
        setAsin((String)value);
      }
      break;

    case DEFAULT_INVENTORY:
      if (value == null) {
        unsetDefaultInventory();
      } else {
        setDefaultInventory((Long)value);
      }
      break;

    case HOLD_INVENTORY:
      if (value == null) {
        unsetHoldInventory();
      } else {
        setHoldInventory((Long)value);
      }
      break;

    }
  }

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

    case PRODUCT_GROUP:
      return getProductGroup();

    case BRAND:
      return getBrand();

    case MODEL_NUMBER:
      return getModelNumber();

    case MODEL_NAME:
      return getModelName();

    case COLOR:
      return getColor();

    case CATEGORY:
      return Long.valueOf(getCategory());

    case COMMENTS:
      return getComments();

    case CATALOG_ITEM_ID:
      return Long.valueOf(getCatalogItemId());

    case FEATURE_ID:
      return Long.valueOf(getFeatureId());

    case FEATURE_DESCRIPTION:
      return getFeatureDescription();

    case MRP:
      return Double.valueOf(getMrp());

    case SELLING_PRICE:
      return Double.valueOf(getSellingPrice());

    case WEIGHT:
      return Double.valueOf(getWeight());

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

    case START_DATE:
      return Long.valueOf(getStartDate());

    case RETIRE_DATE:
      return Long.valueOf(getRetireDate());

    case ITEM_STATUS:
      return getItemStatus();

    case STATUS_DESCRIPTION:
      return getStatus_description();

    case OTHER_INFO:
      return getOtherInfo();

    case BEST_DEAL_TEXT:
      return getBestDealText();

    case BEST_DEAL_VALUE:
      return Double.valueOf(getBestDealValue());

    case DEFAULT_FOR_ENTITY:
      return Boolean.valueOf(isDefaultForEntity());

    case UPDATED_ON:
      return Long.valueOf(getUpdatedOn());

    case BEST_SELLING_RANK:
      return Long.valueOf(getBestSellingRank());

    case RISKY:
      return Boolean.valueOf(isRisky());

    case EXPECTED_DELAY:
      return Integer.valueOf(getExpectedDelay());

    case IS_WAREHOUSE_PREFERENCE_STICKY:
      return Boolean.valueOf(isIsWarehousePreferenceSticky());

    case WARRANTY_PERIOD:
      return Integer.valueOf(getWarrantyPeriod());

    case PREFERRED_VENDOR:
      return Long.valueOf(getPreferredVendor());

    case TYPE:
      return getType();

    case COMING_SOON_START_DATE:
      return Long.valueOf(getComingSoonStartDate());

    case EXPECTED_ARRIVAL_DATE:
      return Long.valueOf(getExpectedArrivalDate());

    case HAS_ITEM_NO:
      return Boolean.valueOf(isHasItemNo());

    case ACTIVE_ON_STORE:
      return Boolean.valueOf(isActiveOnStore());

    case SHOW_SELLING_PRICE:
      return Boolean.valueOf(isShowSellingPrice());

    case BEST_DEALS_DETAILS_TEXT:
      return getBestDealsDetailsText();

    case BEST_DEALS_DETAILS_LINK:
      return getBestDealsDetailsLink();

    case PREFERRED_INSURER:
      return Long.valueOf(getPreferredInsurer());

    case ASIN:
      return getAsin();

    case DEFAULT_INVENTORY:
      return Long.valueOf(getDefaultInventory());

    case HOLD_INVENTORY:
      return Long.valueOf(getHoldInventory());

    }
    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 PRODUCT_GROUP:
      return isSetProductGroup();
    case BRAND:
      return isSetBrand();
    case MODEL_NUMBER:
      return isSetModelNumber();
    case MODEL_NAME:
      return isSetModelName();
    case COLOR:
      return isSetColor();
    case CATEGORY:
      return isSetCategory();
    case COMMENTS:
      return isSetComments();
    case CATALOG_ITEM_ID:
      return isSetCatalogItemId();
    case FEATURE_ID:
      return isSetFeatureId();
    case FEATURE_DESCRIPTION:
      return isSetFeatureDescription();
    case MRP:
      return isSetMrp();
    case SELLING_PRICE:
      return isSetSellingPrice();
    case WEIGHT:
      return isSetWeight();
    case ADDED_ON:
      return isSetAddedOn();
    case START_DATE:
      return isSetStartDate();
    case RETIRE_DATE:
      return isSetRetireDate();
    case ITEM_STATUS:
      return isSetItemStatus();
    case STATUS_DESCRIPTION:
      return isSetStatus_description();
    case OTHER_INFO:
      return isSetOtherInfo();
    case BEST_DEAL_TEXT:
      return isSetBestDealText();
    case BEST_DEAL_VALUE:
      return isSetBestDealValue();
    case DEFAULT_FOR_ENTITY:
      return isSetDefaultForEntity();
    case UPDATED_ON:
      return isSetUpdatedOn();
    case BEST_SELLING_RANK:
      return isSetBestSellingRank();
    case RISKY:
      return isSetRisky();
    case EXPECTED_DELAY:
      return isSetExpectedDelay();
    case IS_WAREHOUSE_PREFERENCE_STICKY:
      return isSetIsWarehousePreferenceSticky();
    case WARRANTY_PERIOD:
      return isSetWarrantyPeriod();
    case PREFERRED_VENDOR:
      return isSetPreferredVendor();
    case TYPE:
      return isSetType();
    case COMING_SOON_START_DATE:
      return isSetComingSoonStartDate();
    case EXPECTED_ARRIVAL_DATE:
      return isSetExpectedArrivalDate();
    case HAS_ITEM_NO:
      return isSetHasItemNo();
    case ACTIVE_ON_STORE:
      return isSetActiveOnStore();
    case SHOW_SELLING_PRICE:
      return isSetShowSellingPrice();
    case BEST_DEALS_DETAILS_TEXT:
      return isSetBestDealsDetailsText();
    case BEST_DEALS_DETAILS_LINK:
      return isSetBestDealsDetailsLink();
    case PREFERRED_INSURER:
      return isSetPreferredInsurer();
    case ASIN:
      return isSetAsin();
    case DEFAULT_INVENTORY:
      return isSetDefaultInventory();
    case HOLD_INVENTORY:
      return isSetHoldInventory();
    }
    throw new IllegalStateException();
  }

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

  public boolean equals(Item 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_productGroup = true && this.isSetProductGroup();
    boolean that_present_productGroup = true && that.isSetProductGroup();
    if (this_present_productGroup || that_present_productGroup) {
      if (!(this_present_productGroup && that_present_productGroup))
        return false;
      if (!this.productGroup.equals(that.productGroup))
        return false;
    }

    boolean this_present_brand = true && this.isSetBrand();
    boolean that_present_brand = true && that.isSetBrand();
    if (this_present_brand || that_present_brand) {
      if (!(this_present_brand && that_present_brand))
        return false;
      if (!this.brand.equals(that.brand))
        return false;
    }

    boolean this_present_modelNumber = true && this.isSetModelNumber();
    boolean that_present_modelNumber = true && that.isSetModelNumber();
    if (this_present_modelNumber || that_present_modelNumber) {
      if (!(this_present_modelNumber && that_present_modelNumber))
        return false;
      if (!this.modelNumber.equals(that.modelNumber))
        return false;
    }

    boolean this_present_modelName = true && this.isSetModelName();
    boolean that_present_modelName = true && that.isSetModelName();
    if (this_present_modelName || that_present_modelName) {
      if (!(this_present_modelName && that_present_modelName))
        return false;
      if (!this.modelName.equals(that.modelName))
        return false;
    }

    boolean this_present_color = true && this.isSetColor();
    boolean that_present_color = true && that.isSetColor();
    if (this_present_color || that_present_color) {
      if (!(this_present_color && that_present_color))
        return false;
      if (!this.color.equals(that.color))
        return false;
    }

    boolean this_present_category = true;
    boolean that_present_category = true;
    if (this_present_category || that_present_category) {
      if (!(this_present_category && that_present_category))
        return false;
      if (this.category != that.category)
        return false;
    }

    boolean this_present_comments = true && this.isSetComments();
    boolean that_present_comments = true && that.isSetComments();
    if (this_present_comments || that_present_comments) {
      if (!(this_present_comments && that_present_comments))
        return false;
      if (!this.comments.equals(that.comments))
        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_featureId = true;
    boolean that_present_featureId = true;
    if (this_present_featureId || that_present_featureId) {
      if (!(this_present_featureId && that_present_featureId))
        return false;
      if (this.featureId != that.featureId)
        return false;
    }

    boolean this_present_featureDescription = true && this.isSetFeatureDescription();
    boolean that_present_featureDescription = true && that.isSetFeatureDescription();
    if (this_present_featureDescription || that_present_featureDescription) {
      if (!(this_present_featureDescription && that_present_featureDescription))
        return false;
      if (!this.featureDescription.equals(that.featureDescription))
        return false;
    }

    boolean this_present_mrp = true && this.isSetMrp();
    boolean that_present_mrp = true && that.isSetMrp();
    if (this_present_mrp || that_present_mrp) {
      if (!(this_present_mrp && that_present_mrp))
        return false;
      if (this.mrp != that.mrp)
        return false;
    }

    boolean this_present_sellingPrice = true && this.isSetSellingPrice();
    boolean that_present_sellingPrice = true && that.isSetSellingPrice();
    if (this_present_sellingPrice || that_present_sellingPrice) {
      if (!(this_present_sellingPrice && that_present_sellingPrice))
        return false;
      if (this.sellingPrice != that.sellingPrice)
        return false;
    }

    boolean this_present_weight = true && this.isSetWeight();
    boolean that_present_weight = true && that.isSetWeight();
    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_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_startDate = true && this.isSetStartDate();
    boolean that_present_startDate = true && that.isSetStartDate();
    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_retireDate = true && this.isSetRetireDate();
    boolean that_present_retireDate = true && that.isSetRetireDate();
    if (this_present_retireDate || that_present_retireDate) {
      if (!(this_present_retireDate && that_present_retireDate))
        return false;
      if (this.retireDate != that.retireDate)
        return false;
    }

    boolean this_present_itemStatus = true && this.isSetItemStatus();
    boolean that_present_itemStatus = true && that.isSetItemStatus();
    if (this_present_itemStatus || that_present_itemStatus) {
      if (!(this_present_itemStatus && that_present_itemStatus))
        return false;
      if (!this.itemStatus.equals(that.itemStatus))
        return false;
    }

    boolean this_present_status_description = true && this.isSetStatus_description();
    boolean that_present_status_description = true && that.isSetStatus_description();
    if (this_present_status_description || that_present_status_description) {
      if (!(this_present_status_description && that_present_status_description))
        return false;
      if (!this.status_description.equals(that.status_description))
        return false;
    }

    boolean this_present_otherInfo = true && this.isSetOtherInfo();
    boolean that_present_otherInfo = true && that.isSetOtherInfo();
    if (this_present_otherInfo || that_present_otherInfo) {
      if (!(this_present_otherInfo && that_present_otherInfo))
        return false;
      if (!this.otherInfo.equals(that.otherInfo))
        return false;
    }

    boolean this_present_bestDealText = true && this.isSetBestDealText();
    boolean that_present_bestDealText = true && that.isSetBestDealText();
    if (this_present_bestDealText || that_present_bestDealText) {
      if (!(this_present_bestDealText && that_present_bestDealText))
        return false;
      if (!this.bestDealText.equals(that.bestDealText))
        return false;
    }

    boolean this_present_bestDealValue = true && this.isSetBestDealValue();
    boolean that_present_bestDealValue = true && that.isSetBestDealValue();
    if (this_present_bestDealValue || that_present_bestDealValue) {
      if (!(this_present_bestDealValue && that_present_bestDealValue))
        return false;
      if (this.bestDealValue != that.bestDealValue)
        return false;
    }

    boolean this_present_defaultForEntity = true;
    boolean that_present_defaultForEntity = true;
    if (this_present_defaultForEntity || that_present_defaultForEntity) {
      if (!(this_present_defaultForEntity && that_present_defaultForEntity))
        return false;
      if (this.defaultForEntity != that.defaultForEntity)
        return false;
    }

    boolean this_present_updatedOn = true;
    boolean that_present_updatedOn = true;
    if (this_present_updatedOn || that_present_updatedOn) {
      if (!(this_present_updatedOn && that_present_updatedOn))
        return false;
      if (this.updatedOn != that.updatedOn)
        return false;
    }

    boolean this_present_bestSellingRank = true && this.isSetBestSellingRank();
    boolean that_present_bestSellingRank = true && that.isSetBestSellingRank();
    if (this_present_bestSellingRank || that_present_bestSellingRank) {
      if (!(this_present_bestSellingRank && that_present_bestSellingRank))
        return false;
      if (this.bestSellingRank != that.bestSellingRank)
        return false;
    }

    boolean this_present_risky = true;
    boolean that_present_risky = true;
    if (this_present_risky || that_present_risky) {
      if (!(this_present_risky && that_present_risky))
        return false;
      if (this.risky != that.risky)
        return false;
    }

    boolean this_present_expectedDelay = true && this.isSetExpectedDelay();
    boolean that_present_expectedDelay = true && that.isSetExpectedDelay();
    if (this_present_expectedDelay || that_present_expectedDelay) {
      if (!(this_present_expectedDelay && that_present_expectedDelay))
        return false;
      if (this.expectedDelay != that.expectedDelay)
        return false;
    }

    boolean this_present_isWarehousePreferenceSticky = true && this.isSetIsWarehousePreferenceSticky();
    boolean that_present_isWarehousePreferenceSticky = true && that.isSetIsWarehousePreferenceSticky();
    if (this_present_isWarehousePreferenceSticky || that_present_isWarehousePreferenceSticky) {
      if (!(this_present_isWarehousePreferenceSticky && that_present_isWarehousePreferenceSticky))
        return false;
      if (this.isWarehousePreferenceSticky != that.isWarehousePreferenceSticky)
        return false;
    }

    boolean this_present_warrantyPeriod = true;
    boolean that_present_warrantyPeriod = true;
    if (this_present_warrantyPeriod || that_present_warrantyPeriod) {
      if (!(this_present_warrantyPeriod && that_present_warrantyPeriod))
        return false;
      if (this.warrantyPeriod != that.warrantyPeriod)
        return false;
    }

    boolean this_present_preferredVendor = true && this.isSetPreferredVendor();
    boolean that_present_preferredVendor = true && that.isSetPreferredVendor();
    if (this_present_preferredVendor || that_present_preferredVendor) {
      if (!(this_present_preferredVendor && that_present_preferredVendor))
        return false;
      if (this.preferredVendor != that.preferredVendor)
        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_comingSoonStartDate = true && this.isSetComingSoonStartDate();
    boolean that_present_comingSoonStartDate = true && that.isSetComingSoonStartDate();
    if (this_present_comingSoonStartDate || that_present_comingSoonStartDate) {
      if (!(this_present_comingSoonStartDate && that_present_comingSoonStartDate))
        return false;
      if (this.comingSoonStartDate != that.comingSoonStartDate)
        return false;
    }

    boolean this_present_expectedArrivalDate = true && this.isSetExpectedArrivalDate();
    boolean that_present_expectedArrivalDate = true && that.isSetExpectedArrivalDate();
    if (this_present_expectedArrivalDate || that_present_expectedArrivalDate) {
      if (!(this_present_expectedArrivalDate && that_present_expectedArrivalDate))
        return false;
      if (this.expectedArrivalDate != that.expectedArrivalDate)
        return false;
    }

    boolean this_present_hasItemNo = true;
    boolean that_present_hasItemNo = true;
    if (this_present_hasItemNo || that_present_hasItemNo) {
      if (!(this_present_hasItemNo && that_present_hasItemNo))
        return false;
      if (this.hasItemNo != that.hasItemNo)
        return false;
    }

    boolean this_present_activeOnStore = true;
    boolean that_present_activeOnStore = true;
    if (this_present_activeOnStore || that_present_activeOnStore) {
      if (!(this_present_activeOnStore && that_present_activeOnStore))
        return false;
      if (this.activeOnStore != that.activeOnStore)
        return false;
    }

    boolean this_present_showSellingPrice = true;
    boolean that_present_showSellingPrice = true;
    if (this_present_showSellingPrice || that_present_showSellingPrice) {
      if (!(this_present_showSellingPrice && that_present_showSellingPrice))
        return false;
      if (this.showSellingPrice != that.showSellingPrice)
        return false;
    }

    boolean this_present_bestDealsDetailsText = true && this.isSetBestDealsDetailsText();
    boolean that_present_bestDealsDetailsText = true && that.isSetBestDealsDetailsText();
    if (this_present_bestDealsDetailsText || that_present_bestDealsDetailsText) {
      if (!(this_present_bestDealsDetailsText && that_present_bestDealsDetailsText))
        return false;
      if (!this.bestDealsDetailsText.equals(that.bestDealsDetailsText))
        return false;
    }

    boolean this_present_bestDealsDetailsLink = true && this.isSetBestDealsDetailsLink();
    boolean that_present_bestDealsDetailsLink = true && that.isSetBestDealsDetailsLink();
    if (this_present_bestDealsDetailsLink || that_present_bestDealsDetailsLink) {
      if (!(this_present_bestDealsDetailsLink && that_present_bestDealsDetailsLink))
        return false;
      if (!this.bestDealsDetailsLink.equals(that.bestDealsDetailsLink))
        return false;
    }

    boolean this_present_preferredInsurer = true;
    boolean that_present_preferredInsurer = true;
    if (this_present_preferredInsurer || that_present_preferredInsurer) {
      if (!(this_present_preferredInsurer && that_present_preferredInsurer))
        return false;
      if (this.preferredInsurer != that.preferredInsurer)
        return false;
    }

    boolean this_present_asin = true && this.isSetAsin();
    boolean that_present_asin = true && that.isSetAsin();
    if (this_present_asin || that_present_asin) {
      if (!(this_present_asin && that_present_asin))
        return false;
      if (!this.asin.equals(that.asin))
        return false;
    }

    boolean this_present_defaultInventory = true;
    boolean that_present_defaultInventory = true;
    if (this_present_defaultInventory || that_present_defaultInventory) {
      if (!(this_present_defaultInventory && that_present_defaultInventory))
        return false;
      if (this.defaultInventory != that.defaultInventory)
        return false;
    }

    boolean this_present_holdInventory = true;
    boolean that_present_holdInventory = true;
    if (this_present_holdInventory || that_present_holdInventory) {
      if (!(this_present_holdInventory && that_present_holdInventory))
        return false;
      if (this.holdInventory != that.holdInventory)
        return false;
    }

    return true;
  }

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

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

    int lastComparison = 0;
    Item typedOther = (Item)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(isSetProductGroup()).compareTo(typedOther.isSetProductGroup());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProductGroup()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productGroup, typedOther.productGroup);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBrand()).compareTo(typedOther.isSetBrand());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBrand()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.brand, typedOther.brand);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetModelNumber()).compareTo(typedOther.isSetModelNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetModelNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.modelNumber, typedOther.modelNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetModelName()).compareTo(typedOther.isSetModelName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetModelName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.modelName, typedOther.modelName);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetColor()).compareTo(typedOther.isSetColor());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColor()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.color, typedOther.color);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCategory()).compareTo(typedOther.isSetCategory());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCategory()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.category, typedOther.category);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetComments()).compareTo(typedOther.isSetComments());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetComments()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.comments, typedOther.comments);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    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(isSetFeatureId()).compareTo(typedOther.isSetFeatureId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFeatureId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.featureId, typedOther.featureId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetFeatureDescription()).compareTo(typedOther.isSetFeatureDescription());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFeatureDescription()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.featureDescription, typedOther.featureDescription);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetMrp()).compareTo(typedOther.isSetMrp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMrp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.mrp, typedOther.mrp);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSellingPrice()).compareTo(typedOther.isSetSellingPrice());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSellingPrice()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sellingPrice, typedOther.sellingPrice);
      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(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(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(isSetRetireDate()).compareTo(typedOther.isSetRetireDate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRetireDate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.retireDate, typedOther.retireDate);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetItemStatus()).compareTo(typedOther.isSetItemStatus());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetItemStatus()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.itemStatus, typedOther.itemStatus);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetStatus_description()).compareTo(typedOther.isSetStatus_description());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStatus_description()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status_description, typedOther.status_description);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetOtherInfo()).compareTo(typedOther.isSetOtherInfo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOtherInfo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.otherInfo, typedOther.otherInfo);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBestDealText()).compareTo(typedOther.isSetBestDealText());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBestDealText()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bestDealText, typedOther.bestDealText);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBestDealValue()).compareTo(typedOther.isSetBestDealValue());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBestDealValue()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bestDealValue, typedOther.bestDealValue);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDefaultForEntity()).compareTo(typedOther.isSetDefaultForEntity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultForEntity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultForEntity, typedOther.defaultForEntity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUpdatedOn()).compareTo(typedOther.isSetUpdatedOn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUpdatedOn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatedOn, typedOther.updatedOn);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBestSellingRank()).compareTo(typedOther.isSetBestSellingRank());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBestSellingRank()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bestSellingRank, typedOther.bestSellingRank);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetRisky()).compareTo(typedOther.isSetRisky());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRisky()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.risky, typedOther.risky);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetExpectedDelay()).compareTo(typedOther.isSetExpectedDelay());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExpectedDelay()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.expectedDelay, typedOther.expectedDelay);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetIsWarehousePreferenceSticky()).compareTo(typedOther.isSetIsWarehousePreferenceSticky());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsWarehousePreferenceSticky()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isWarehousePreferenceSticky, typedOther.isWarehousePreferenceSticky);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetWarrantyPeriod()).compareTo(typedOther.isSetWarrantyPeriod());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetWarrantyPeriod()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.warrantyPeriod, typedOther.warrantyPeriod);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPreferredVendor()).compareTo(typedOther.isSetPreferredVendor());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPreferredVendor()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredVendor, typedOther.preferredVendor);
      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(isSetComingSoonStartDate()).compareTo(typedOther.isSetComingSoonStartDate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetComingSoonStartDate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.comingSoonStartDate, typedOther.comingSoonStartDate);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetExpectedArrivalDate()).compareTo(typedOther.isSetExpectedArrivalDate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExpectedArrivalDate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.expectedArrivalDate, typedOther.expectedArrivalDate);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetHasItemNo()).compareTo(typedOther.isSetHasItemNo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHasItemNo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hasItemNo, typedOther.hasItemNo);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetActiveOnStore()).compareTo(typedOther.isSetActiveOnStore());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetActiveOnStore()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.activeOnStore, typedOther.activeOnStore);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShowSellingPrice()).compareTo(typedOther.isSetShowSellingPrice());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShowSellingPrice()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.showSellingPrice, typedOther.showSellingPrice);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBestDealsDetailsText()).compareTo(typedOther.isSetBestDealsDetailsText());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBestDealsDetailsText()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bestDealsDetailsText, typedOther.bestDealsDetailsText);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBestDealsDetailsLink()).compareTo(typedOther.isSetBestDealsDetailsLink());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBestDealsDetailsLink()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bestDealsDetailsLink, typedOther.bestDealsDetailsLink);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPreferredInsurer()).compareTo(typedOther.isSetPreferredInsurer());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPreferredInsurer()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredInsurer, typedOther.preferredInsurer);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetAsin()).compareTo(typedOther.isSetAsin());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAsin()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.asin, typedOther.asin);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDefaultInventory()).compareTo(typedOther.isSetDefaultInventory());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultInventory()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultInventory, typedOther.defaultInventory);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetHoldInventory()).compareTo(typedOther.isSetHoldInventory());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHoldInventory()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.holdInventory, typedOther.holdInventory);
      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: // PRODUCT_GROUP
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.productGroup = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // BRAND
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.brand = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // MODEL_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.modelNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // MODEL_NAME
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.modelName = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // COLOR
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.color = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // CATEGORY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.category = iprot.readI64();
            setCategoryIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // COMMENTS
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.comments = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // 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 10: // FEATURE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.featureId = iprot.readI64();
            setFeatureIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // FEATURE_DESCRIPTION
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.featureDescription = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // MRP
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.mrp = iprot.readDouble();
            setMrpIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // SELLING_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.sellingPrice = iprot.readDouble();
            setSellingPriceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 15: // 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 16: // 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 17: // 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 18: // RETIRE_DATE
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.retireDate = iprot.readI64();
            setRetireDateIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 19: // ITEM_STATUS
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.itemStatus = status.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 20: // STATUS_DESCRIPTION
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.status_description = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 21: // OTHER_INFO
          if (field.type == org.apache.thrift.protocol.TType.MAP) {
            {
              org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
              this.otherInfo = new HashMap<String,String>(2*_map0.size);
              for (int _i1 = 0; _i1 < _map0.size; ++_i1)
              {
                String _key2; // required
                String _val3; // required
                _key2 = iprot.readString();
                _val3 = iprot.readString();
                this.otherInfo.put(_key2, _val3);
              }
              iprot.readMapEnd();
            }
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 22: // BEST_DEAL_TEXT
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.bestDealText = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 23: // BEST_DEAL_VALUE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.bestDealValue = iprot.readDouble();
            setBestDealValueIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 24: // DEFAULT_FOR_ENTITY
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.defaultForEntity = iprot.readBool();
            setDefaultForEntityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 25: // UPDATED_ON
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.updatedOn = iprot.readI64();
            setUpdatedOnIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 26: // BEST_SELLING_RANK
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.bestSellingRank = iprot.readI64();
            setBestSellingRankIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 27: // RISKY
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.risky = iprot.readBool();
            setRiskyIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 28: // EXPECTED_DELAY
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.expectedDelay = iprot.readI32();
            setExpectedDelayIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 29: // IS_WAREHOUSE_PREFERENCE_STICKY
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.isWarehousePreferenceSticky = iprot.readBool();
            setIsWarehousePreferenceStickyIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 30: // WARRANTY_PERIOD
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.warrantyPeriod = iprot.readI32();
            setWarrantyPeriodIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 31: // PREFERRED_VENDOR
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.preferredVendor = iprot.readI64();
            setPreferredVendorIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 32: // TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.type = ItemType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 33: // COMING_SOON_START_DATE
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.comingSoonStartDate = iprot.readI64();
            setComingSoonStartDateIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 34: // EXPECTED_ARRIVAL_DATE
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.expectedArrivalDate = iprot.readI64();
            setExpectedArrivalDateIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 35: // HAS_ITEM_NO
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.hasItemNo = iprot.readBool();
            setHasItemNoIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 36: // ACTIVE_ON_STORE
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.activeOnStore = iprot.readBool();
            setActiveOnStoreIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 38: // SHOW_SELLING_PRICE
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.showSellingPrice = iprot.readBool();
            setShowSellingPriceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 39: // BEST_DEALS_DETAILS_TEXT
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.bestDealsDetailsText = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 40: // BEST_DEALS_DETAILS_LINK
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.bestDealsDetailsLink = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 41: // PREFERRED_INSURER
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.preferredInsurer = iprot.readI64();
            setPreferredInsurerIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 42: // ASIN
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.asin = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 43: // DEFAULT_INVENTORY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.defaultInventory = iprot.readI64();
            setDefaultInventoryIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 44: // HOLD_INVENTORY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.holdInventory = iprot.readI64();
            setHoldInventoryIsSet(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.productGroup != null) {
      oprot.writeFieldBegin(PRODUCT_GROUP_FIELD_DESC);
      oprot.writeString(this.productGroup);
      oprot.writeFieldEnd();
    }
    if (this.brand != null) {
      oprot.writeFieldBegin(BRAND_FIELD_DESC);
      oprot.writeString(this.brand);
      oprot.writeFieldEnd();
    }
    if (this.modelNumber != null) {
      oprot.writeFieldBegin(MODEL_NUMBER_FIELD_DESC);
      oprot.writeString(this.modelNumber);
      oprot.writeFieldEnd();
    }
    if (this.modelName != null) {
      oprot.writeFieldBegin(MODEL_NAME_FIELD_DESC);
      oprot.writeString(this.modelName);
      oprot.writeFieldEnd();
    }
    if (this.color != null) {
      oprot.writeFieldBegin(COLOR_FIELD_DESC);
      oprot.writeString(this.color);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(CATEGORY_FIELD_DESC);
    oprot.writeI64(this.category);
    oprot.writeFieldEnd();
    if (this.comments != null) {
      oprot.writeFieldBegin(COMMENTS_FIELD_DESC);
      oprot.writeString(this.comments);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(CATALOG_ITEM_ID_FIELD_DESC);
    oprot.writeI64(this.catalogItemId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(FEATURE_ID_FIELD_DESC);
    oprot.writeI64(this.featureId);
    oprot.writeFieldEnd();
    if (this.featureDescription != null) {
      oprot.writeFieldBegin(FEATURE_DESCRIPTION_FIELD_DESC);
      oprot.writeString(this.featureDescription);
      oprot.writeFieldEnd();
    }
    if (isSetMrp()) {
      oprot.writeFieldBegin(MRP_FIELD_DESC);
      oprot.writeDouble(this.mrp);
      oprot.writeFieldEnd();
    }
    if (isSetSellingPrice()) {
      oprot.writeFieldBegin(SELLING_PRICE_FIELD_DESC);
      oprot.writeDouble(this.sellingPrice);
      oprot.writeFieldEnd();
    }
    if (isSetWeight()) {
      oprot.writeFieldBegin(WEIGHT_FIELD_DESC);
      oprot.writeDouble(this.weight);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(ADDED_ON_FIELD_DESC);
    oprot.writeI64(this.addedOn);
    oprot.writeFieldEnd();
    if (isSetStartDate()) {
      oprot.writeFieldBegin(START_DATE_FIELD_DESC);
      oprot.writeI64(this.startDate);
      oprot.writeFieldEnd();
    }
    if (isSetRetireDate()) {
      oprot.writeFieldBegin(RETIRE_DATE_FIELD_DESC);
      oprot.writeI64(this.retireDate);
      oprot.writeFieldEnd();
    }
    if (this.itemStatus != null) {
      oprot.writeFieldBegin(ITEM_STATUS_FIELD_DESC);
      oprot.writeI32(this.itemStatus.getValue());
      oprot.writeFieldEnd();
    }
    if (this.status_description != null) {
      oprot.writeFieldBegin(STATUS_DESCRIPTION_FIELD_DESC);
      oprot.writeString(this.status_description);
      oprot.writeFieldEnd();
    }
    if (this.otherInfo != null) {
      oprot.writeFieldBegin(OTHER_INFO_FIELD_DESC);
      {
        oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.otherInfo.size()));
        for (Map.Entry<String, String> _iter4 : this.otherInfo.entrySet())
        {
          oprot.writeString(_iter4.getKey());
          oprot.writeString(_iter4.getValue());
        }
        oprot.writeMapEnd();
      }
      oprot.writeFieldEnd();
    }
    if (this.bestDealText != null) {
      oprot.writeFieldBegin(BEST_DEAL_TEXT_FIELD_DESC);
      oprot.writeString(this.bestDealText);
      oprot.writeFieldEnd();
    }
    if (isSetBestDealValue()) {
      oprot.writeFieldBegin(BEST_DEAL_VALUE_FIELD_DESC);
      oprot.writeDouble(this.bestDealValue);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(DEFAULT_FOR_ENTITY_FIELD_DESC);
    oprot.writeBool(this.defaultForEntity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(UPDATED_ON_FIELD_DESC);
    oprot.writeI64(this.updatedOn);
    oprot.writeFieldEnd();
    if (isSetBestSellingRank()) {
      oprot.writeFieldBegin(BEST_SELLING_RANK_FIELD_DESC);
      oprot.writeI64(this.bestSellingRank);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(RISKY_FIELD_DESC);
    oprot.writeBool(this.risky);
    oprot.writeFieldEnd();
    if (isSetExpectedDelay()) {
      oprot.writeFieldBegin(EXPECTED_DELAY_FIELD_DESC);
      oprot.writeI32(this.expectedDelay);
      oprot.writeFieldEnd();
    }
    if (isSetIsWarehousePreferenceSticky()) {
      oprot.writeFieldBegin(IS_WAREHOUSE_PREFERENCE_STICKY_FIELD_DESC);
      oprot.writeBool(this.isWarehousePreferenceSticky);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(WARRANTY_PERIOD_FIELD_DESC);
    oprot.writeI32(this.warrantyPeriod);
    oprot.writeFieldEnd();
    if (isSetPreferredVendor()) {
      oprot.writeFieldBegin(PREFERRED_VENDOR_FIELD_DESC);
      oprot.writeI64(this.preferredVendor);
      oprot.writeFieldEnd();
    }
    if (this.type != null) {
      oprot.writeFieldBegin(TYPE_FIELD_DESC);
      oprot.writeI32(this.type.getValue());
      oprot.writeFieldEnd();
    }
    if (isSetComingSoonStartDate()) {
      oprot.writeFieldBegin(COMING_SOON_START_DATE_FIELD_DESC);
      oprot.writeI64(this.comingSoonStartDate);
      oprot.writeFieldEnd();
    }
    if (isSetExpectedArrivalDate()) {
      oprot.writeFieldBegin(EXPECTED_ARRIVAL_DATE_FIELD_DESC);
      oprot.writeI64(this.expectedArrivalDate);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(HAS_ITEM_NO_FIELD_DESC);
    oprot.writeBool(this.hasItemNo);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(ACTIVE_ON_STORE_FIELD_DESC);
    oprot.writeBool(this.activeOnStore);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(SHOW_SELLING_PRICE_FIELD_DESC);
    oprot.writeBool(this.showSellingPrice);
    oprot.writeFieldEnd();
    if (this.bestDealsDetailsText != null) {
      oprot.writeFieldBegin(BEST_DEALS_DETAILS_TEXT_FIELD_DESC);
      oprot.writeString(this.bestDealsDetailsText);
      oprot.writeFieldEnd();
    }
    if (this.bestDealsDetailsLink != null) {
      oprot.writeFieldBegin(BEST_DEALS_DETAILS_LINK_FIELD_DESC);
      oprot.writeString(this.bestDealsDetailsLink);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(PREFERRED_INSURER_FIELD_DESC);
    oprot.writeI64(this.preferredInsurer);
    oprot.writeFieldEnd();
    if (this.asin != null) {
      oprot.writeFieldBegin(ASIN_FIELD_DESC);
      oprot.writeString(this.asin);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(DEFAULT_INVENTORY_FIELD_DESC);
    oprot.writeI64(this.defaultInventory);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(HOLD_INVENTORY_FIELD_DESC);
    oprot.writeI64(this.holdInventory);
    oprot.writeFieldEnd();
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("productGroup:");
    if (this.productGroup == null) {
      sb.append("null");
    } else {
      sb.append(this.productGroup);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("brand:");
    if (this.brand == null) {
      sb.append("null");
    } else {
      sb.append(this.brand);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("modelNumber:");
    if (this.modelNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.modelNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("modelName:");
    if (this.modelName == null) {
      sb.append("null");
    } else {
      sb.append(this.modelName);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("color:");
    if (this.color == null) {
      sb.append("null");
    } else {
      sb.append(this.color);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("category:");
    sb.append(this.category);
    first = false;
    if (!first) sb.append(", ");
    sb.append("comments:");
    if (this.comments == null) {
      sb.append("null");
    } else {
      sb.append(this.comments);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("catalogItemId:");
    sb.append(this.catalogItemId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("featureId:");
    sb.append(this.featureId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("featureDescription:");
    if (this.featureDescription == null) {
      sb.append("null");
    } else {
      sb.append(this.featureDescription);
    }
    first = false;
    if (isSetMrp()) {
      if (!first) sb.append(", ");
      sb.append("mrp:");
      sb.append(this.mrp);
      first = false;
    }
    if (isSetSellingPrice()) {
      if (!first) sb.append(", ");
      sb.append("sellingPrice:");
      sb.append(this.sellingPrice);
      first = false;
    }
    if (isSetWeight()) {
      if (!first) sb.append(", ");
      sb.append("weight:");
      sb.append(this.weight);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("addedOn:");
    sb.append(this.addedOn);
    first = false;
    if (isSetStartDate()) {
      if (!first) sb.append(", ");
      sb.append("startDate:");
      sb.append(this.startDate);
      first = false;
    }
    if (isSetRetireDate()) {
      if (!first) sb.append(", ");
      sb.append("retireDate:");
      sb.append(this.retireDate);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("itemStatus:");
    if (this.itemStatus == null) {
      sb.append("null");
    } else {
      sb.append(this.itemStatus);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("status_description:");
    if (this.status_description == null) {
      sb.append("null");
    } else {
      sb.append(this.status_description);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("otherInfo:");
    if (this.otherInfo == null) {
      sb.append("null");
    } else {
      sb.append(this.otherInfo);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("bestDealText:");
    if (this.bestDealText == null) {
      sb.append("null");
    } else {
      sb.append(this.bestDealText);
    }
    first = false;
    if (isSetBestDealValue()) {
      if (!first) sb.append(", ");
      sb.append("bestDealValue:");
      sb.append(this.bestDealValue);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("defaultForEntity:");
    sb.append(this.defaultForEntity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("updatedOn:");
    sb.append(this.updatedOn);
    first = false;
    if (isSetBestSellingRank()) {
      if (!first) sb.append(", ");
      sb.append("bestSellingRank:");
      sb.append(this.bestSellingRank);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("risky:");
    sb.append(this.risky);
    first = false;
    if (isSetExpectedDelay()) {
      if (!first) sb.append(", ");
      sb.append("expectedDelay:");
      sb.append(this.expectedDelay);
      first = false;
    }
    if (isSetIsWarehousePreferenceSticky()) {
      if (!first) sb.append(", ");
      sb.append("isWarehousePreferenceSticky:");
      sb.append(this.isWarehousePreferenceSticky);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("warrantyPeriod:");
    sb.append(this.warrantyPeriod);
    first = false;
    if (isSetPreferredVendor()) {
      if (!first) sb.append(", ");
      sb.append("preferredVendor:");
      sb.append(this.preferredVendor);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("type:");
    if (this.type == null) {
      sb.append("null");
    } else {
      sb.append(this.type);
    }
    first = false;
    if (isSetComingSoonStartDate()) {
      if (!first) sb.append(", ");
      sb.append("comingSoonStartDate:");
      sb.append(this.comingSoonStartDate);
      first = false;
    }
    if (isSetExpectedArrivalDate()) {
      if (!first) sb.append(", ");
      sb.append("expectedArrivalDate:");
      sb.append(this.expectedArrivalDate);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("hasItemNo:");
    sb.append(this.hasItemNo);
    first = false;
    if (!first) sb.append(", ");
    sb.append("activeOnStore:");
    sb.append(this.activeOnStore);
    first = false;
    if (!first) sb.append(", ");
    sb.append("showSellingPrice:");
    sb.append(this.showSellingPrice);
    first = false;
    if (!first) sb.append(", ");
    sb.append("bestDealsDetailsText:");
    if (this.bestDealsDetailsText == null) {
      sb.append("null");
    } else {
      sb.append(this.bestDealsDetailsText);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("bestDealsDetailsLink:");
    if (this.bestDealsDetailsLink == null) {
      sb.append("null");
    } else {
      sb.append(this.bestDealsDetailsLink);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("preferredInsurer:");
    sb.append(this.preferredInsurer);
    first = false;
    if (!first) sb.append(", ");
    sb.append("asin:");
    if (this.asin == null) {
      sb.append("null");
    } else {
      sb.append(this.asin);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("defaultInventory:");
    sb.append(this.defaultInventory);
    first = false;
    if (!first) sb.append(", ");
    sb.append("holdInventory:");
    sb.append(this.holdInventory);
    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);
    }
  }

}