Subversion Repositories SmartDukaan

Rev

Rev 23144 | 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 static final org.apache.thrift.protocol.TField HOLD_OVERRIDE_FIELD_DESC = new org.apache.thrift.protocol.TField("holdOverride", org.apache.thrift.protocol.TType.BOOL, (short)45);
  private static final org.apache.thrift.protocol.TField PACK_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("packQuantity", org.apache.thrift.protocol.TType.I64, (short)46);
  private static final org.apache.thrift.protocol.TField QUANTITY_STEP_FIELD_DESC = new org.apache.thrift.protocol.TField("quantityStep", org.apache.thrift.protocol.TType.I64, (short)47);
  private static final org.apache.thrift.protocol.TField MINIMUM_BUY_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("minimumBuyQuantity", org.apache.thrift.protocol.TType.I64, (short)48);
  private static final org.apache.thrift.protocol.TField MAXIMUM_BUY_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("maximumBuyQuantity", org.apache.thrift.protocol.TType.I64, (short)49);
  private static final org.apache.thrift.protocol.TField DEAL_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("dealPrice", org.apache.thrift.protocol.TType.DOUBLE, (short)50);
  private static final org.apache.thrift.protocol.TField HSN_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("hsnCode", org.apache.thrift.protocol.TType.STRING, (short)51);

  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
  private boolean holdOverride; // required
  private long packQuantity; // required
  private long quantityStep; // required
  private long minimumBuyQuantity; // required
  private long maximumBuyQuantity; // required
  private double dealPrice; // required
  private String hsnCode; // 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"),
    HOLD_OVERRIDE((short)45, "holdOverride"),
    PACK_QUANTITY((short)46, "packQuantity"),
    QUANTITY_STEP((short)47, "quantityStep"),
    MINIMUM_BUY_QUANTITY((short)48, "minimumBuyQuantity"),
    MAXIMUM_BUY_QUANTITY((short)49, "maximumBuyQuantity"),
    DEAL_PRICE((short)50, "dealPrice"),
    HSN_CODE((short)51, "hsnCode");

    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;
        case 45: // HOLD_OVERRIDE
          return HOLD_OVERRIDE;
        case 46: // PACK_QUANTITY
          return PACK_QUANTITY;
        case 47: // QUANTITY_STEP
          return QUANTITY_STEP;
        case 48: // MINIMUM_BUY_QUANTITY
          return MINIMUM_BUY_QUANTITY;
        case 49: // MAXIMUM_BUY_QUANTITY
          return MAXIMUM_BUY_QUANTITY;
        case 50: // DEAL_PRICE
          return DEAL_PRICE;
        case 51: // HSN_CODE
          return HSN_CODE;
        default:
          return null;
      }
    }

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

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

    private final short _thriftId;
    private final String _fieldName;

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

    public short getThriftFieldId() {
      return _thriftId;
    }

    public String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __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 static final int __HOLDOVERRIDE_ISSET_ID = 27;
  private static final int __PACKQUANTITY_ISSET_ID = 28;
  private static final int __QUANTITYSTEP_ISSET_ID = 29;
  private static final int __MINIMUMBUYQUANTITY_ISSET_ID = 30;
  private static final int __MAXIMUMBUYQUANTITY_ISSET_ID = 31;
  private static final int __DEALPRICE_ISSET_ID = 32;
  private BitSet __isset_bit_vector = new BitSet(33);

  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)));
    tmpMap.put(_Fields.HOLD_OVERRIDE, new org.apache.thrift.meta_data.FieldMetaData("holdOverride", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.PACK_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("packQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.QUANTITY_STEP, new org.apache.thrift.meta_data.FieldMetaData("quantityStep", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.MINIMUM_BUY_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("minimumBuyQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.MAXIMUM_BUY_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("maximumBuyQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.DEAL_PRICE, new org.apache.thrift.meta_data.FieldMetaData("dealPrice", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.HSN_CODE, new org.apache.thrift.meta_data.FieldMetaData("hsnCode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(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,
    boolean holdOverride,
    long packQuantity,
    long quantityStep,
    long minimumBuyQuantity,
    long maximumBuyQuantity,
    String hsnCode)
  {
    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);
    this.holdOverride = holdOverride;
    setHoldOverrideIsSet(true);
    this.packQuantity = packQuantity;
    setPackQuantityIsSet(true);
    this.quantityStep = quantityStep;
    setQuantityStepIsSet(true);
    this.minimumBuyQuantity = minimumBuyQuantity;
    setMinimumBuyQuantityIsSet(true);
    this.maximumBuyQuantity = maximumBuyQuantity;
    setMaximumBuyQuantityIsSet(true);
    this.hsnCode = hsnCode;
  }

  /**
   * 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;
    this.holdOverride = other.holdOverride;
    this.packQuantity = other.packQuantity;
    this.quantityStep = other.quantityStep;
    this.minimumBuyQuantity = other.minimumBuyQuantity;
    this.maximumBuyQuantity = other.maximumBuyQuantity;
    this.dealPrice = other.dealPrice;
    if (other.isSetHsnCode()) {
      this.hsnCode = other.hsnCode;
    }
  }

  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;
    setHoldOverrideIsSet(false);
    this.holdOverride = false;
    setPackQuantityIsSet(false);
    this.packQuantity = 0;
    setQuantityStepIsSet(false);
    this.quantityStep = 0;
    setMinimumBuyQuantityIsSet(false);
    this.minimumBuyQuantity = 0;
    setMaximumBuyQuantityIsSet(false);
    this.maximumBuyQuantity = 0;
    setDealPriceIsSet(false);
    this.dealPrice = 0.0;
    this.hsnCode = null;
  }

  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 boolean isHoldOverride() {
    return this.holdOverride;
  }

  public void setHoldOverride(boolean holdOverride) {
    this.holdOverride = holdOverride;
    setHoldOverrideIsSet(true);
  }

  public void unsetHoldOverride() {
    __isset_bit_vector.clear(__HOLDOVERRIDE_ISSET_ID);
  }

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

  public void setHoldOverrideIsSet(boolean value) {
    __isset_bit_vector.set(__HOLDOVERRIDE_ISSET_ID, value);
  }

  public long getPackQuantity() {
    return this.packQuantity;
  }

  public void setPackQuantity(long packQuantity) {
    this.packQuantity = packQuantity;
    setPackQuantityIsSet(true);
  }

  public void unsetPackQuantity() {
    __isset_bit_vector.clear(__PACKQUANTITY_ISSET_ID);
  }

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

  public void setPackQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__PACKQUANTITY_ISSET_ID, value);
  }

  public long getQuantityStep() {
    return this.quantityStep;
  }

  public void setQuantityStep(long quantityStep) {
    this.quantityStep = quantityStep;
    setQuantityStepIsSet(true);
  }

  public void unsetQuantityStep() {
    __isset_bit_vector.clear(__QUANTITYSTEP_ISSET_ID);
  }

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

  public void setQuantityStepIsSet(boolean value) {
    __isset_bit_vector.set(__QUANTITYSTEP_ISSET_ID, value);
  }

  public long getMinimumBuyQuantity() {
    return this.minimumBuyQuantity;
  }

  public void setMinimumBuyQuantity(long minimumBuyQuantity) {
    this.minimumBuyQuantity = minimumBuyQuantity;
    setMinimumBuyQuantityIsSet(true);
  }

  public void unsetMinimumBuyQuantity() {
    __isset_bit_vector.clear(__MINIMUMBUYQUANTITY_ISSET_ID);
  }

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

  public void setMinimumBuyQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__MINIMUMBUYQUANTITY_ISSET_ID, value);
  }

  public long getMaximumBuyQuantity() {
    return this.maximumBuyQuantity;
  }

  public void setMaximumBuyQuantity(long maximumBuyQuantity) {
    this.maximumBuyQuantity = maximumBuyQuantity;
    setMaximumBuyQuantityIsSet(true);
  }

  public void unsetMaximumBuyQuantity() {
    __isset_bit_vector.clear(__MAXIMUMBUYQUANTITY_ISSET_ID);
  }

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

  public void setMaximumBuyQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__MAXIMUMBUYQUANTITY_ISSET_ID, value);
  }

  public double getDealPrice() {
    return this.dealPrice;
  }

  public void setDealPrice(double dealPrice) {
    this.dealPrice = dealPrice;
    setDealPriceIsSet(true);
  }

  public void unsetDealPrice() {
    __isset_bit_vector.clear(__DEALPRICE_ISSET_ID);
  }

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

  public void setDealPriceIsSet(boolean value) {
    __isset_bit_vector.set(__DEALPRICE_ISSET_ID, value);
  }

  public String getHsnCode() {
    return this.hsnCode;
  }

  public void setHsnCode(String hsnCode) {
    this.hsnCode = hsnCode;
  }

  public void unsetHsnCode() {
    this.hsnCode = null;
  }

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

  public void setHsnCodeIsSet(boolean value) {
    if (!value) {
      this.hsnCode = null;
    }
  }

  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;

    case HOLD_OVERRIDE:
      if (value == null) {
        unsetHoldOverride();
      } else {
        setHoldOverride((Boolean)value);
      }
      break;

    case PACK_QUANTITY:
      if (value == null) {
        unsetPackQuantity();
      } else {
        setPackQuantity((Long)value);
      }
      break;

    case QUANTITY_STEP:
      if (value == null) {
        unsetQuantityStep();
      } else {
        setQuantityStep((Long)value);
      }
      break;

    case MINIMUM_BUY_QUANTITY:
      if (value == null) {
        unsetMinimumBuyQuantity();
      } else {
        setMinimumBuyQuantity((Long)value);
      }
      break;

    case MAXIMUM_BUY_QUANTITY:
      if (value == null) {
        unsetMaximumBuyQuantity();
      } else {
        setMaximumBuyQuantity((Long)value);
      }
      break;

    case DEAL_PRICE:
      if (value == null) {
        unsetDealPrice();
      } else {
        setDealPrice((Double)value);
      }
      break;

    case HSN_CODE:
      if (value == null) {
        unsetHsnCode();
      } else {
        setHsnCode((String)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());

    case HOLD_OVERRIDE:
      return Boolean.valueOf(isHoldOverride());

    case PACK_QUANTITY:
      return Long.valueOf(getPackQuantity());

    case QUANTITY_STEP:
      return Long.valueOf(getQuantityStep());

    case MINIMUM_BUY_QUANTITY:
      return Long.valueOf(getMinimumBuyQuantity());

    case MAXIMUM_BUY_QUANTITY:
      return Long.valueOf(getMaximumBuyQuantity());

    case DEAL_PRICE:
      return Double.valueOf(getDealPrice());

    case HSN_CODE:
      return getHsnCode();

    }
    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();
    case HOLD_OVERRIDE:
      return isSetHoldOverride();
    case PACK_QUANTITY:
      return isSetPackQuantity();
    case QUANTITY_STEP:
      return isSetQuantityStep();
    case MINIMUM_BUY_QUANTITY:
      return isSetMinimumBuyQuantity();
    case MAXIMUM_BUY_QUANTITY:
      return isSetMaximumBuyQuantity();
    case DEAL_PRICE:
      return isSetDealPrice();
    case HSN_CODE:
      return isSetHsnCode();
    }
    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;
    }

    boolean this_present_holdOverride = true;
    boolean that_present_holdOverride = true;
    if (this_present_holdOverride || that_present_holdOverride) {
      if (!(this_present_holdOverride && that_present_holdOverride))
        return false;
      if (this.holdOverride != that.holdOverride)
        return false;
    }

    boolean this_present_packQuantity = true;
    boolean that_present_packQuantity = true;
    if (this_present_packQuantity || that_present_packQuantity) {
      if (!(this_present_packQuantity && that_present_packQuantity))
        return false;
      if (this.packQuantity != that.packQuantity)
        return false;
    }

    boolean this_present_quantityStep = true;
    boolean that_present_quantityStep = true;
    if (this_present_quantityStep || that_present_quantityStep) {
      if (!(this_present_quantityStep && that_present_quantityStep))
        return false;
      if (this.quantityStep != that.quantityStep)
        return false;
    }

    boolean this_present_minimumBuyQuantity = true;
    boolean that_present_minimumBuyQuantity = true;
    if (this_present_minimumBuyQuantity || that_present_minimumBuyQuantity) {
      if (!(this_present_minimumBuyQuantity && that_present_minimumBuyQuantity))
        return false;
      if (this.minimumBuyQuantity != that.minimumBuyQuantity)
        return false;
    }

    boolean this_present_maximumBuyQuantity = true;
    boolean that_present_maximumBuyQuantity = true;
    if (this_present_maximumBuyQuantity || that_present_maximumBuyQuantity) {
      if (!(this_present_maximumBuyQuantity && that_present_maximumBuyQuantity))
        return false;
      if (this.maximumBuyQuantity != that.maximumBuyQuantity)
        return false;
    }

    boolean this_present_dealPrice = true && this.isSetDealPrice();
    boolean that_present_dealPrice = true && that.isSetDealPrice();
    if (this_present_dealPrice || that_present_dealPrice) {
      if (!(this_present_dealPrice && that_present_dealPrice))
        return false;
      if (this.dealPrice != that.dealPrice)
        return false;
    }

    boolean this_present_hsnCode = true && this.isSetHsnCode();
    boolean that_present_hsnCode = true && that.isSetHsnCode();
    if (this_present_hsnCode || that_present_hsnCode) {
      if (!(this_present_hsnCode && that_present_hsnCode))
        return false;
      if (!this.hsnCode.equals(that.hsnCode))
        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;
      }
    }
    lastComparison = Boolean.valueOf(isSetHoldOverride()).compareTo(typedOther.isSetHoldOverride());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHoldOverride()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.holdOverride, typedOther.holdOverride);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPackQuantity()).compareTo(typedOther.isSetPackQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPackQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.packQuantity, typedOther.packQuantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetQuantityStep()).compareTo(typedOther.isSetQuantityStep());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetQuantityStep()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.quantityStep, typedOther.quantityStep);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetMinimumBuyQuantity()).compareTo(typedOther.isSetMinimumBuyQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMinimumBuyQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.minimumBuyQuantity, typedOther.minimumBuyQuantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetMaximumBuyQuantity()).compareTo(typedOther.isSetMaximumBuyQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaximumBuyQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maximumBuyQuantity, typedOther.maximumBuyQuantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDealPrice()).compareTo(typedOther.isSetDealPrice());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDealPrice()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dealPrice, typedOther.dealPrice);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetHsnCode()).compareTo(typedOther.isSetHsnCode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHsnCode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hsnCode, typedOther.hsnCode);
      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;
        case 45: // HOLD_OVERRIDE
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.holdOverride = iprot.readBool();
            setHoldOverrideIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 46: // PACK_QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.packQuantity = iprot.readI64();
            setPackQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 47: // QUANTITY_STEP
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.quantityStep = iprot.readI64();
            setQuantityStepIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 48: // MINIMUM_BUY_QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.minimumBuyQuantity = iprot.readI64();
            setMinimumBuyQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 49: // MAXIMUM_BUY_QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.maximumBuyQuantity = iprot.readI64();
            setMaximumBuyQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 50: // DEAL_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.dealPrice = iprot.readDouble();
            setDealPriceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 51: // HSN_CODE
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.hsnCode = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        default:
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
      }
      iprot.readFieldEnd();
    }
    iprot.readStructEnd();
    validate();
  }

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

    oprot.writeStructBegin(STRUCT_DESC);
    oprot.writeFieldBegin(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.writeFieldBegin(HOLD_OVERRIDE_FIELD_DESC);
    oprot.writeBool(this.holdOverride);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(PACK_QUANTITY_FIELD_DESC);
    oprot.writeI64(this.packQuantity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(QUANTITY_STEP_FIELD_DESC);
    oprot.writeI64(this.quantityStep);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(MINIMUM_BUY_QUANTITY_FIELD_DESC);
    oprot.writeI64(this.minimumBuyQuantity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(MAXIMUM_BUY_QUANTITY_FIELD_DESC);
    oprot.writeI64(this.maximumBuyQuantity);
    oprot.writeFieldEnd();
    if (isSetDealPrice()) {
      oprot.writeFieldBegin(DEAL_PRICE_FIELD_DESC);
      oprot.writeDouble(this.dealPrice);
      oprot.writeFieldEnd();
    }
    if (this.hsnCode != null) {
      oprot.writeFieldBegin(HSN_CODE_FIELD_DESC);
      oprot.writeString(this.hsnCode);
      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;
    if (!first) sb.append(", ");
    sb.append("holdOverride:");
    sb.append(this.holdOverride);
    first = false;
    if (!first) sb.append(", ");
    sb.append("packQuantity:");
    sb.append(this.packQuantity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("quantityStep:");
    sb.append(this.quantityStep);
    first = false;
    if (!first) sb.append(", ");
    sb.append("minimumBuyQuantity:");
    sb.append(this.minimumBuyQuantity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("maximumBuyQuantity:");
    sb.append(this.maximumBuyQuantity);
    first = false;
    if (isSetDealPrice()) {
      if (!first) sb.append(", ");
      sb.append("dealPrice:");
      sb.append(this.dealPrice);
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("hsnCode:");
    if (this.hsnCode == null) {
      sb.append("null");
    } else {
      sb.append(this.hsnCode);
    }
    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);
    }
  }

}