Subversion Repositories SmartDukaan

Rev

Rev 7672 | 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.warehouse;

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

  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 ITEM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("itemId", org.apache.thrift.protocol.TType.I64, (short)2);
  private static final org.apache.thrift.protocol.TField ITEM_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("itemNumber", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField SERIAL_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("serialNumber", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField INITIAL_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("initialQuantity", org.apache.thrift.protocol.TType.I64, (short)5);
  private static final org.apache.thrift.protocol.TField CURRENT_QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("currentQuantity", org.apache.thrift.protocol.TType.I64, (short)6);
  private static final org.apache.thrift.protocol.TField PURCHASE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("purchaseId", org.apache.thrift.protocol.TType.I64, (short)7);
  private static final org.apache.thrift.protocol.TField PURCHASE_RETURN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("purchaseReturnId", org.apache.thrift.protocol.TType.I64, (short)8);
  private static final org.apache.thrift.protocol.TField PHYSICAL_WAREHOUSE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("physicalWarehouseId", org.apache.thrift.protocol.TType.I64, (short)9);
  private static final org.apache.thrift.protocol.TField TRANSFER_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("transferStatus", org.apache.thrift.protocol.TType.I32, (short)10);
  private static final org.apache.thrift.protocol.TField SUPPLIER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("supplierId", org.apache.thrift.protocol.TType.I64, (short)11);
  private static final org.apache.thrift.protocol.TField UNIT_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("unitPrice", org.apache.thrift.protocol.TType.DOUBLE, (short)12);
  private static final org.apache.thrift.protocol.TField CURRENT_WAREHOUSE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("currentWarehouseId", org.apache.thrift.protocol.TType.I64, (short)13);
  private static final org.apache.thrift.protocol.TField LAST_SCAN_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("lastScanType", org.apache.thrift.protocol.TType.I32, (short)14);
  private static final org.apache.thrift.protocol.TField NLC_FIELD_DESC = new org.apache.thrift.protocol.TField("nlc", org.apache.thrift.protocol.TType.DOUBLE, (short)15);
  private static final org.apache.thrift.protocol.TField SERIAL_NUMBER2_FIELD_DESC = new org.apache.thrift.protocol.TField("serialNumber2", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField FIRST_SCANNED_FIELD_DESC = new org.apache.thrift.protocol.TField("firstScanned", org.apache.thrift.protocol.TType.I64, (short)17);
  private static final org.apache.thrift.protocol.TField ACTIVATED_FIELD_DESC = new org.apache.thrift.protocol.TField("activated", org.apache.thrift.protocol.TType.I64, (short)18);
  private static final org.apache.thrift.protocol.TField CREATED_FIELD_DESC = new org.apache.thrift.protocol.TField("created", org.apache.thrift.protocol.TType.I64, (short)19);

  private long id; // required
  private long itemId; // required
  private String itemNumber; // required
  private String serialNumber; // required
  private long initialQuantity; // required
  private long currentQuantity; // required
  private long purchaseId; // required
  private long purchaseReturnId; // required
  private long physicalWarehouseId; // required
  private TransferLotStatus transferStatus; // required
  private long supplierId; // required
  private double unitPrice; // required
  private long currentWarehouseId; // required
  private ScanType lastScanType; // required
  private double nlc; // required
  private String serialNumber2; // required
  private long firstScanned; // required
  private long activated; // required
  private long created; // 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"),
    ITEM_ID((short)2, "itemId"),
    ITEM_NUMBER((short)3, "itemNumber"),
    SERIAL_NUMBER((short)4, "serialNumber"),
    INITIAL_QUANTITY((short)5, "initialQuantity"),
    CURRENT_QUANTITY((short)6, "currentQuantity"),
    PURCHASE_ID((short)7, "purchaseId"),
    PURCHASE_RETURN_ID((short)8, "purchaseReturnId"),
    PHYSICAL_WAREHOUSE_ID((short)9, "physicalWarehouseId"),
    /**
     * 
     * @see TransferLotStatus
     */
    TRANSFER_STATUS((short)10, "transferStatus"),
    SUPPLIER_ID((short)11, "supplierId"),
    UNIT_PRICE((short)12, "unitPrice"),
    CURRENT_WAREHOUSE_ID((short)13, "currentWarehouseId"),
    /**
     * 
     * @see ScanType
     */
    LAST_SCAN_TYPE((short)14, "lastScanType"),
    NLC((short)15, "nlc"),
    SERIAL_NUMBER2((short)16, "serialNumber2"),
    FIRST_SCANNED((short)17, "firstScanned"),
    ACTIVATED((short)18, "activated"),
    CREATED((short)19, "created");

    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: // ITEM_ID
          return ITEM_ID;
        case 3: // ITEM_NUMBER
          return ITEM_NUMBER;
        case 4: // SERIAL_NUMBER
          return SERIAL_NUMBER;
        case 5: // INITIAL_QUANTITY
          return INITIAL_QUANTITY;
        case 6: // CURRENT_QUANTITY
          return CURRENT_QUANTITY;
        case 7: // PURCHASE_ID
          return PURCHASE_ID;
        case 8: // PURCHASE_RETURN_ID
          return PURCHASE_RETURN_ID;
        case 9: // PHYSICAL_WAREHOUSE_ID
          return PHYSICAL_WAREHOUSE_ID;
        case 10: // TRANSFER_STATUS
          return TRANSFER_STATUS;
        case 11: // SUPPLIER_ID
          return SUPPLIER_ID;
        case 12: // UNIT_PRICE
          return UNIT_PRICE;
        case 13: // CURRENT_WAREHOUSE_ID
          return CURRENT_WAREHOUSE_ID;
        case 14: // LAST_SCAN_TYPE
          return LAST_SCAN_TYPE;
        case 15: // NLC
          return NLC;
        case 16: // SERIAL_NUMBER2
          return SERIAL_NUMBER2;
        case 17: // FIRST_SCANNED
          return FIRST_SCANNED;
        case 18: // ACTIVATED
          return ACTIVATED;
        case 19: // CREATED
          return CREATED;
        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 __ITEMID_ISSET_ID = 1;
  private static final int __INITIALQUANTITY_ISSET_ID = 2;
  private static final int __CURRENTQUANTITY_ISSET_ID = 3;
  private static final int __PURCHASEID_ISSET_ID = 4;
  private static final int __PURCHASERETURNID_ISSET_ID = 5;
  private static final int __PHYSICALWAREHOUSEID_ISSET_ID = 6;
  private static final int __SUPPLIERID_ISSET_ID = 7;
  private static final int __UNITPRICE_ISSET_ID = 8;
  private static final int __CURRENTWAREHOUSEID_ISSET_ID = 9;
  private static final int __NLC_ISSET_ID = 10;
  private static final int __FIRSTSCANNED_ISSET_ID = 11;
  private static final int __ACTIVATED_ISSET_ID = 12;
  private static final int __CREATED_ISSET_ID = 13;
  private BitSet __isset_bit_vector = new BitSet(14);

  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.ITEM_ID, new org.apache.thrift.meta_data.FieldMetaData("itemId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.ITEM_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("itemNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SERIAL_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("serialNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.INITIAL_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("initialQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.CURRENT_QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("currentQuantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PURCHASE_ID, new org.apache.thrift.meta_data.FieldMetaData("purchaseId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PURCHASE_RETURN_ID, new org.apache.thrift.meta_data.FieldMetaData("purchaseReturnId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PHYSICAL_WAREHOUSE_ID, new org.apache.thrift.meta_data.FieldMetaData("physicalWarehouseId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.TRANSFER_STATUS, new org.apache.thrift.meta_data.FieldMetaData("transferStatus", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TransferLotStatus.class)));
    tmpMap.put(_Fields.SUPPLIER_ID, new org.apache.thrift.meta_data.FieldMetaData("supplierId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.UNIT_PRICE, new org.apache.thrift.meta_data.FieldMetaData("unitPrice", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.CURRENT_WAREHOUSE_ID, new org.apache.thrift.meta_data.FieldMetaData("currentWarehouseId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.LAST_SCAN_TYPE, new org.apache.thrift.meta_data.FieldMetaData("lastScanType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ScanType.class)));
    tmpMap.put(_Fields.NLC, new org.apache.thrift.meta_data.FieldMetaData("nlc", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SERIAL_NUMBER2, new org.apache.thrift.meta_data.FieldMetaData("serialNumber2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.FIRST_SCANNED, new org.apache.thrift.meta_data.FieldMetaData("firstScanned", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.ACTIVATED, new org.apache.thrift.meta_data.FieldMetaData("activated", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.CREATED, new org.apache.thrift.meta_data.FieldMetaData("created", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InventoryItem.class, metaDataMap);
  }

  public InventoryItem() {
  }

  public InventoryItem(
    long id,
    long itemId,
    String itemNumber,
    String serialNumber,
    long initialQuantity,
    long currentQuantity,
    long purchaseId,
    long purchaseReturnId,
    long physicalWarehouseId,
    TransferLotStatus transferStatus,
    long supplierId,
    double unitPrice,
    long currentWarehouseId,
    ScanType lastScanType,
    double nlc,
    String serialNumber2,
    long firstScanned,
    long activated,
    long created)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.itemId = itemId;
    setItemIdIsSet(true);
    this.itemNumber = itemNumber;
    this.serialNumber = serialNumber;
    this.initialQuantity = initialQuantity;
    setInitialQuantityIsSet(true);
    this.currentQuantity = currentQuantity;
    setCurrentQuantityIsSet(true);
    this.purchaseId = purchaseId;
    setPurchaseIdIsSet(true);
    this.purchaseReturnId = purchaseReturnId;
    setPurchaseReturnIdIsSet(true);
    this.physicalWarehouseId = physicalWarehouseId;
    setPhysicalWarehouseIdIsSet(true);
    this.transferStatus = transferStatus;
    this.supplierId = supplierId;
    setSupplierIdIsSet(true);
    this.unitPrice = unitPrice;
    setUnitPriceIsSet(true);
    this.currentWarehouseId = currentWarehouseId;
    setCurrentWarehouseIdIsSet(true);
    this.lastScanType = lastScanType;
    this.nlc = nlc;
    setNlcIsSet(true);
    this.serialNumber2 = serialNumber2;
    this.firstScanned = firstScanned;
    setFirstScannedIsSet(true);
    this.activated = activated;
    setActivatedIsSet(true);
    this.created = created;
    setCreatedIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public InventoryItem(InventoryItem other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    this.itemId = other.itemId;
    if (other.isSetItemNumber()) {
      this.itemNumber = other.itemNumber;
    }
    if (other.isSetSerialNumber()) {
      this.serialNumber = other.serialNumber;
    }
    this.initialQuantity = other.initialQuantity;
    this.currentQuantity = other.currentQuantity;
    this.purchaseId = other.purchaseId;
    this.purchaseReturnId = other.purchaseReturnId;
    this.physicalWarehouseId = other.physicalWarehouseId;
    if (other.isSetTransferStatus()) {
      this.transferStatus = other.transferStatus;
    }
    this.supplierId = other.supplierId;
    this.unitPrice = other.unitPrice;
    this.currentWarehouseId = other.currentWarehouseId;
    if (other.isSetLastScanType()) {
      this.lastScanType = other.lastScanType;
    }
    this.nlc = other.nlc;
    if (other.isSetSerialNumber2()) {
      this.serialNumber2 = other.serialNumber2;
    }
    this.firstScanned = other.firstScanned;
    this.activated = other.activated;
    this.created = other.created;
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    setItemIdIsSet(false);
    this.itemId = 0;
    this.itemNumber = null;
    this.serialNumber = null;
    setInitialQuantityIsSet(false);
    this.initialQuantity = 0;
    setCurrentQuantityIsSet(false);
    this.currentQuantity = 0;
    setPurchaseIdIsSet(false);
    this.purchaseId = 0;
    setPurchaseReturnIdIsSet(false);
    this.purchaseReturnId = 0;
    setPhysicalWarehouseIdIsSet(false);
    this.physicalWarehouseId = 0;
    this.transferStatus = null;
    setSupplierIdIsSet(false);
    this.supplierId = 0;
    setUnitPriceIsSet(false);
    this.unitPrice = 0.0;
    setCurrentWarehouseIdIsSet(false);
    this.currentWarehouseId = 0;
    this.lastScanType = null;
    setNlcIsSet(false);
    this.nlc = 0.0;
    this.serialNumber2 = null;
    setFirstScannedIsSet(false);
    this.firstScanned = 0;
    setActivatedIsSet(false);
    this.activated = 0;
    setCreatedIsSet(false);
    this.created = 0;
  }

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

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

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

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

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

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

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

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

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

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

  public String getItemNumber() {
    return this.itemNumber;
  }

  public void setItemNumber(String itemNumber) {
    this.itemNumber = itemNumber;
  }

  public void unsetItemNumber() {
    this.itemNumber = null;
  }

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

  public void setItemNumberIsSet(boolean value) {
    if (!value) {
      this.itemNumber = null;
    }
  }

  public String getSerialNumber() {
    return this.serialNumber;
  }

  public void setSerialNumber(String serialNumber) {
    this.serialNumber = serialNumber;
  }

  public void unsetSerialNumber() {
    this.serialNumber = null;
  }

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

  public void setSerialNumberIsSet(boolean value) {
    if (!value) {
      this.serialNumber = null;
    }
  }

  public long getInitialQuantity() {
    return this.initialQuantity;
  }

  public void setInitialQuantity(long initialQuantity) {
    this.initialQuantity = initialQuantity;
    setInitialQuantityIsSet(true);
  }

  public void unsetInitialQuantity() {
    __isset_bit_vector.clear(__INITIALQUANTITY_ISSET_ID);
  }

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

  public void setInitialQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__INITIALQUANTITY_ISSET_ID, value);
  }

  public long getCurrentQuantity() {
    return this.currentQuantity;
  }

  public void setCurrentQuantity(long currentQuantity) {
    this.currentQuantity = currentQuantity;
    setCurrentQuantityIsSet(true);
  }

  public void unsetCurrentQuantity() {
    __isset_bit_vector.clear(__CURRENTQUANTITY_ISSET_ID);
  }

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

  public void setCurrentQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__CURRENTQUANTITY_ISSET_ID, value);
  }

  public long getPurchaseId() {
    return this.purchaseId;
  }

  public void setPurchaseId(long purchaseId) {
    this.purchaseId = purchaseId;
    setPurchaseIdIsSet(true);
  }

  public void unsetPurchaseId() {
    __isset_bit_vector.clear(__PURCHASEID_ISSET_ID);
  }

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

  public void setPurchaseIdIsSet(boolean value) {
    __isset_bit_vector.set(__PURCHASEID_ISSET_ID, value);
  }

  public long getPurchaseReturnId() {
    return this.purchaseReturnId;
  }

  public void setPurchaseReturnId(long purchaseReturnId) {
    this.purchaseReturnId = purchaseReturnId;
    setPurchaseReturnIdIsSet(true);
  }

  public void unsetPurchaseReturnId() {
    __isset_bit_vector.clear(__PURCHASERETURNID_ISSET_ID);
  }

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

  public void setPurchaseReturnIdIsSet(boolean value) {
    __isset_bit_vector.set(__PURCHASERETURNID_ISSET_ID, value);
  }

  public long getPhysicalWarehouseId() {
    return this.physicalWarehouseId;
  }

  public void setPhysicalWarehouseId(long physicalWarehouseId) {
    this.physicalWarehouseId = physicalWarehouseId;
    setPhysicalWarehouseIdIsSet(true);
  }

  public void unsetPhysicalWarehouseId() {
    __isset_bit_vector.clear(__PHYSICALWAREHOUSEID_ISSET_ID);
  }

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

  public void setPhysicalWarehouseIdIsSet(boolean value) {
    __isset_bit_vector.set(__PHYSICALWAREHOUSEID_ISSET_ID, value);
  }

  /**
   * 
   * @see TransferLotStatus
   */
  public TransferLotStatus getTransferStatus() {
    return this.transferStatus;
  }

  /**
   * 
   * @see TransferLotStatus
   */
  public void setTransferStatus(TransferLotStatus transferStatus) {
    this.transferStatus = transferStatus;
  }

  public void unsetTransferStatus() {
    this.transferStatus = null;
  }

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

  public void setTransferStatusIsSet(boolean value) {
    if (!value) {
      this.transferStatus = null;
    }
  }

  public long getSupplierId() {
    return this.supplierId;
  }

  public void setSupplierId(long supplierId) {
    this.supplierId = supplierId;
    setSupplierIdIsSet(true);
  }

  public void unsetSupplierId() {
    __isset_bit_vector.clear(__SUPPLIERID_ISSET_ID);
  }

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

  public void setSupplierIdIsSet(boolean value) {
    __isset_bit_vector.set(__SUPPLIERID_ISSET_ID, value);
  }

  public double getUnitPrice() {
    return this.unitPrice;
  }

  public void setUnitPrice(double unitPrice) {
    this.unitPrice = unitPrice;
    setUnitPriceIsSet(true);
  }

  public void unsetUnitPrice() {
    __isset_bit_vector.clear(__UNITPRICE_ISSET_ID);
  }

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

  public void setUnitPriceIsSet(boolean value) {
    __isset_bit_vector.set(__UNITPRICE_ISSET_ID, value);
  }

  public long getCurrentWarehouseId() {
    return this.currentWarehouseId;
  }

  public void setCurrentWarehouseId(long currentWarehouseId) {
    this.currentWarehouseId = currentWarehouseId;
    setCurrentWarehouseIdIsSet(true);
  }

  public void unsetCurrentWarehouseId() {
    __isset_bit_vector.clear(__CURRENTWAREHOUSEID_ISSET_ID);
  }

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

  public void setCurrentWarehouseIdIsSet(boolean value) {
    __isset_bit_vector.set(__CURRENTWAREHOUSEID_ISSET_ID, value);
  }

  /**
   * 
   * @see ScanType
   */
  public ScanType getLastScanType() {
    return this.lastScanType;
  }

  /**
   * 
   * @see ScanType
   */
  public void setLastScanType(ScanType lastScanType) {
    this.lastScanType = lastScanType;
  }

  public void unsetLastScanType() {
    this.lastScanType = null;
  }

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

  public void setLastScanTypeIsSet(boolean value) {
    if (!value) {
      this.lastScanType = null;
    }
  }

  public double getNlc() {
    return this.nlc;
  }

  public void setNlc(double nlc) {
    this.nlc = nlc;
    setNlcIsSet(true);
  }

  public void unsetNlc() {
    __isset_bit_vector.clear(__NLC_ISSET_ID);
  }

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

  public void setNlcIsSet(boolean value) {
    __isset_bit_vector.set(__NLC_ISSET_ID, value);
  }

  public String getSerialNumber2() {
    return this.serialNumber2;
  }

  public void setSerialNumber2(String serialNumber2) {
    this.serialNumber2 = serialNumber2;
  }

  public void unsetSerialNumber2() {
    this.serialNumber2 = null;
  }

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

  public void setSerialNumber2IsSet(boolean value) {
    if (!value) {
      this.serialNumber2 = null;
    }
  }

  public long getFirstScanned() {
    return this.firstScanned;
  }

  public void setFirstScanned(long firstScanned) {
    this.firstScanned = firstScanned;
    setFirstScannedIsSet(true);
  }

  public void unsetFirstScanned() {
    __isset_bit_vector.clear(__FIRSTSCANNED_ISSET_ID);
  }

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

  public void setFirstScannedIsSet(boolean value) {
    __isset_bit_vector.set(__FIRSTSCANNED_ISSET_ID, value);
  }

  public long getActivated() {
    return this.activated;
  }

  public void setActivated(long activated) {
    this.activated = activated;
    setActivatedIsSet(true);
  }

  public void unsetActivated() {
    __isset_bit_vector.clear(__ACTIVATED_ISSET_ID);
  }

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

  public void setActivatedIsSet(boolean value) {
    __isset_bit_vector.set(__ACTIVATED_ISSET_ID, value);
  }

  public long getCreated() {
    return this.created;
  }

  public void setCreated(long created) {
    this.created = created;
    setCreatedIsSet(true);
  }

  public void unsetCreated() {
    __isset_bit_vector.clear(__CREATED_ISSET_ID);
  }

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

  public void setCreatedIsSet(boolean value) {
    __isset_bit_vector.set(__CREATED_ISSET_ID, value);
  }

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

    case ITEM_ID:
      if (value == null) {
        unsetItemId();
      } else {
        setItemId((Long)value);
      }
      break;

    case ITEM_NUMBER:
      if (value == null) {
        unsetItemNumber();
      } else {
        setItemNumber((String)value);
      }
      break;

    case SERIAL_NUMBER:
      if (value == null) {
        unsetSerialNumber();
      } else {
        setSerialNumber((String)value);
      }
      break;

    case INITIAL_QUANTITY:
      if (value == null) {
        unsetInitialQuantity();
      } else {
        setInitialQuantity((Long)value);
      }
      break;

    case CURRENT_QUANTITY:
      if (value == null) {
        unsetCurrentQuantity();
      } else {
        setCurrentQuantity((Long)value);
      }
      break;

    case PURCHASE_ID:
      if (value == null) {
        unsetPurchaseId();
      } else {
        setPurchaseId((Long)value);
      }
      break;

    case PURCHASE_RETURN_ID:
      if (value == null) {
        unsetPurchaseReturnId();
      } else {
        setPurchaseReturnId((Long)value);
      }
      break;

    case PHYSICAL_WAREHOUSE_ID:
      if (value == null) {
        unsetPhysicalWarehouseId();
      } else {
        setPhysicalWarehouseId((Long)value);
      }
      break;

    case TRANSFER_STATUS:
      if (value == null) {
        unsetTransferStatus();
      } else {
        setTransferStatus((TransferLotStatus)value);
      }
      break;

    case SUPPLIER_ID:
      if (value == null) {
        unsetSupplierId();
      } else {
        setSupplierId((Long)value);
      }
      break;

    case UNIT_PRICE:
      if (value == null) {
        unsetUnitPrice();
      } else {
        setUnitPrice((Double)value);
      }
      break;

    case CURRENT_WAREHOUSE_ID:
      if (value == null) {
        unsetCurrentWarehouseId();
      } else {
        setCurrentWarehouseId((Long)value);
      }
      break;

    case LAST_SCAN_TYPE:
      if (value == null) {
        unsetLastScanType();
      } else {
        setLastScanType((ScanType)value);
      }
      break;

    case NLC:
      if (value == null) {
        unsetNlc();
      } else {
        setNlc((Double)value);
      }
      break;

    case SERIAL_NUMBER2:
      if (value == null) {
        unsetSerialNumber2();
      } else {
        setSerialNumber2((String)value);
      }
      break;

    case FIRST_SCANNED:
      if (value == null) {
        unsetFirstScanned();
      } else {
        setFirstScanned((Long)value);
      }
      break;

    case ACTIVATED:
      if (value == null) {
        unsetActivated();
      } else {
        setActivated((Long)value);
      }
      break;

    case CREATED:
      if (value == null) {
        unsetCreated();
      } else {
        setCreated((Long)value);
      }
      break;

    }
  }

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

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

    case ITEM_NUMBER:
      return getItemNumber();

    case SERIAL_NUMBER:
      return getSerialNumber();

    case INITIAL_QUANTITY:
      return Long.valueOf(getInitialQuantity());

    case CURRENT_QUANTITY:
      return Long.valueOf(getCurrentQuantity());

    case PURCHASE_ID:
      return Long.valueOf(getPurchaseId());

    case PURCHASE_RETURN_ID:
      return Long.valueOf(getPurchaseReturnId());

    case PHYSICAL_WAREHOUSE_ID:
      return Long.valueOf(getPhysicalWarehouseId());

    case TRANSFER_STATUS:
      return getTransferStatus();

    case SUPPLIER_ID:
      return Long.valueOf(getSupplierId());

    case UNIT_PRICE:
      return Double.valueOf(getUnitPrice());

    case CURRENT_WAREHOUSE_ID:
      return Long.valueOf(getCurrentWarehouseId());

    case LAST_SCAN_TYPE:
      return getLastScanType();

    case NLC:
      return Double.valueOf(getNlc());

    case SERIAL_NUMBER2:
      return getSerialNumber2();

    case FIRST_SCANNED:
      return Long.valueOf(getFirstScanned());

    case ACTIVATED:
      return Long.valueOf(getActivated());

    case CREATED:
      return Long.valueOf(getCreated());

    }
    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 ITEM_ID:
      return isSetItemId();
    case ITEM_NUMBER:
      return isSetItemNumber();
    case SERIAL_NUMBER:
      return isSetSerialNumber();
    case INITIAL_QUANTITY:
      return isSetInitialQuantity();
    case CURRENT_QUANTITY:
      return isSetCurrentQuantity();
    case PURCHASE_ID:
      return isSetPurchaseId();
    case PURCHASE_RETURN_ID:
      return isSetPurchaseReturnId();
    case PHYSICAL_WAREHOUSE_ID:
      return isSetPhysicalWarehouseId();
    case TRANSFER_STATUS:
      return isSetTransferStatus();
    case SUPPLIER_ID:
      return isSetSupplierId();
    case UNIT_PRICE:
      return isSetUnitPrice();
    case CURRENT_WAREHOUSE_ID:
      return isSetCurrentWarehouseId();
    case LAST_SCAN_TYPE:
      return isSetLastScanType();
    case NLC:
      return isSetNlc();
    case SERIAL_NUMBER2:
      return isSetSerialNumber2();
    case FIRST_SCANNED:
      return isSetFirstScanned();
    case ACTIVATED:
      return isSetActivated();
    case CREATED:
      return isSetCreated();
    }
    throw new IllegalStateException();
  }

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

  public boolean equals(InventoryItem 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_itemId = true;
    boolean that_present_itemId = true;
    if (this_present_itemId || that_present_itemId) {
      if (!(this_present_itemId && that_present_itemId))
        return false;
      if (this.itemId != that.itemId)
        return false;
    }

    boolean this_present_itemNumber = true && this.isSetItemNumber();
    boolean that_present_itemNumber = true && that.isSetItemNumber();
    if (this_present_itemNumber || that_present_itemNumber) {
      if (!(this_present_itemNumber && that_present_itemNumber))
        return false;
      if (!this.itemNumber.equals(that.itemNumber))
        return false;
    }

    boolean this_present_serialNumber = true && this.isSetSerialNumber();
    boolean that_present_serialNumber = true && that.isSetSerialNumber();
    if (this_present_serialNumber || that_present_serialNumber) {
      if (!(this_present_serialNumber && that_present_serialNumber))
        return false;
      if (!this.serialNumber.equals(that.serialNumber))
        return false;
    }

    boolean this_present_initialQuantity = true;
    boolean that_present_initialQuantity = true;
    if (this_present_initialQuantity || that_present_initialQuantity) {
      if (!(this_present_initialQuantity && that_present_initialQuantity))
        return false;
      if (this.initialQuantity != that.initialQuantity)
        return false;
    }

    boolean this_present_currentQuantity = true;
    boolean that_present_currentQuantity = true;
    if (this_present_currentQuantity || that_present_currentQuantity) {
      if (!(this_present_currentQuantity && that_present_currentQuantity))
        return false;
      if (this.currentQuantity != that.currentQuantity)
        return false;
    }

    boolean this_present_purchaseId = true;
    boolean that_present_purchaseId = true;
    if (this_present_purchaseId || that_present_purchaseId) {
      if (!(this_present_purchaseId && that_present_purchaseId))
        return false;
      if (this.purchaseId != that.purchaseId)
        return false;
    }

    boolean this_present_purchaseReturnId = true;
    boolean that_present_purchaseReturnId = true;
    if (this_present_purchaseReturnId || that_present_purchaseReturnId) {
      if (!(this_present_purchaseReturnId && that_present_purchaseReturnId))
        return false;
      if (this.purchaseReturnId != that.purchaseReturnId)
        return false;
    }

    boolean this_present_physicalWarehouseId = true;
    boolean that_present_physicalWarehouseId = true;
    if (this_present_physicalWarehouseId || that_present_physicalWarehouseId) {
      if (!(this_present_physicalWarehouseId && that_present_physicalWarehouseId))
        return false;
      if (this.physicalWarehouseId != that.physicalWarehouseId)
        return false;
    }

    boolean this_present_transferStatus = true && this.isSetTransferStatus();
    boolean that_present_transferStatus = true && that.isSetTransferStatus();
    if (this_present_transferStatus || that_present_transferStatus) {
      if (!(this_present_transferStatus && that_present_transferStatus))
        return false;
      if (!this.transferStatus.equals(that.transferStatus))
        return false;
    }

    boolean this_present_supplierId = true;
    boolean that_present_supplierId = true;
    if (this_present_supplierId || that_present_supplierId) {
      if (!(this_present_supplierId && that_present_supplierId))
        return false;
      if (this.supplierId != that.supplierId)
        return false;
    }

    boolean this_present_unitPrice = true;
    boolean that_present_unitPrice = true;
    if (this_present_unitPrice || that_present_unitPrice) {
      if (!(this_present_unitPrice && that_present_unitPrice))
        return false;
      if (this.unitPrice != that.unitPrice)
        return false;
    }

    boolean this_present_currentWarehouseId = true;
    boolean that_present_currentWarehouseId = true;
    if (this_present_currentWarehouseId || that_present_currentWarehouseId) {
      if (!(this_present_currentWarehouseId && that_present_currentWarehouseId))
        return false;
      if (this.currentWarehouseId != that.currentWarehouseId)
        return false;
    }

    boolean this_present_lastScanType = true && this.isSetLastScanType();
    boolean that_present_lastScanType = true && that.isSetLastScanType();
    if (this_present_lastScanType || that_present_lastScanType) {
      if (!(this_present_lastScanType && that_present_lastScanType))
        return false;
      if (!this.lastScanType.equals(that.lastScanType))
        return false;
    }

    boolean this_present_nlc = true;
    boolean that_present_nlc = true;
    if (this_present_nlc || that_present_nlc) {
      if (!(this_present_nlc && that_present_nlc))
        return false;
      if (this.nlc != that.nlc)
        return false;
    }

    boolean this_present_serialNumber2 = true && this.isSetSerialNumber2();
    boolean that_present_serialNumber2 = true && that.isSetSerialNumber2();
    if (this_present_serialNumber2 || that_present_serialNumber2) {
      if (!(this_present_serialNumber2 && that_present_serialNumber2))
        return false;
      if (!this.serialNumber2.equals(that.serialNumber2))
        return false;
    }

    boolean this_present_firstScanned = true;
    boolean that_present_firstScanned = true;
    if (this_present_firstScanned || that_present_firstScanned) {
      if (!(this_present_firstScanned && that_present_firstScanned))
        return false;
      if (this.firstScanned != that.firstScanned)
        return false;
    }

    boolean this_present_activated = true;
    boolean that_present_activated = true;
    if (this_present_activated || that_present_activated) {
      if (!(this_present_activated && that_present_activated))
        return false;
      if (this.activated != that.activated)
        return false;
    }

    boolean this_present_created = true;
    boolean that_present_created = true;
    if (this_present_created || that_present_created) {
      if (!(this_present_created && that_present_created))
        return false;
      if (this.created != that.created)
        return false;
    }

    return true;
  }

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

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

    int lastComparison = 0;
    InventoryItem typedOther = (InventoryItem)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(isSetItemId()).compareTo(typedOther.isSetItemId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetItemId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.itemId, typedOther.itemId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetItemNumber()).compareTo(typedOther.isSetItemNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetItemNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.itemNumber, typedOther.itemNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSerialNumber()).compareTo(typedOther.isSetSerialNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSerialNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serialNumber, typedOther.serialNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetInitialQuantity()).compareTo(typedOther.isSetInitialQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInitialQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.initialQuantity, typedOther.initialQuantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCurrentQuantity()).compareTo(typedOther.isSetCurrentQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCurrentQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.currentQuantity, typedOther.currentQuantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPurchaseId()).compareTo(typedOther.isSetPurchaseId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPurchaseId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.purchaseId, typedOther.purchaseId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPurchaseReturnId()).compareTo(typedOther.isSetPurchaseReturnId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPurchaseReturnId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.purchaseReturnId, typedOther.purchaseReturnId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPhysicalWarehouseId()).compareTo(typedOther.isSetPhysicalWarehouseId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPhysicalWarehouseId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.physicalWarehouseId, typedOther.physicalWarehouseId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTransferStatus()).compareTo(typedOther.isSetTransferStatus());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTransferStatus()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferStatus, typedOther.transferStatus);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSupplierId()).compareTo(typedOther.isSetSupplierId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSupplierId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.supplierId, typedOther.supplierId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUnitPrice()).compareTo(typedOther.isSetUnitPrice());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUnitPrice()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unitPrice, typedOther.unitPrice);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCurrentWarehouseId()).compareTo(typedOther.isSetCurrentWarehouseId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCurrentWarehouseId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.currentWarehouseId, typedOther.currentWarehouseId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetLastScanType()).compareTo(typedOther.isSetLastScanType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLastScanType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastScanType, typedOther.lastScanType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetNlc()).compareTo(typedOther.isSetNlc());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetNlc()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nlc, typedOther.nlc);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSerialNumber2()).compareTo(typedOther.isSetSerialNumber2());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSerialNumber2()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serialNumber2, typedOther.serialNumber2);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetFirstScanned()).compareTo(typedOther.isSetFirstScanned());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFirstScanned()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.firstScanned, typedOther.firstScanned);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetActivated()).compareTo(typedOther.isSetActivated());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetActivated()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.activated, typedOther.activated);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCreated()).compareTo(typedOther.isSetCreated());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCreated()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.created, typedOther.created);
      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: // ITEM_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.itemId = iprot.readI64();
            setItemIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // ITEM_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.itemNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // SERIAL_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.serialNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // INITIAL_QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.initialQuantity = iprot.readI64();
            setInitialQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // CURRENT_QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.currentQuantity = iprot.readI64();
            setCurrentQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // PURCHASE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.purchaseId = iprot.readI64();
            setPurchaseIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // PURCHASE_RETURN_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.purchaseReturnId = iprot.readI64();
            setPurchaseReturnIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // PHYSICAL_WAREHOUSE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.physicalWarehouseId = iprot.readI64();
            setPhysicalWarehouseIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 10: // TRANSFER_STATUS
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.transferStatus = TransferLotStatus.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // SUPPLIER_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.supplierId = iprot.readI64();
            setSupplierIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 12: // UNIT_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.unitPrice = iprot.readDouble();
            setUnitPriceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // CURRENT_WAREHOUSE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.currentWarehouseId = iprot.readI64();
            setCurrentWarehouseIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // LAST_SCAN_TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.lastScanType = ScanType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 15: // NLC
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.nlc = iprot.readDouble();
            setNlcIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 16: // SERIAL_NUMBER2
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.serialNumber2 = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 17: // FIRST_SCANNED
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.firstScanned = iprot.readI64();
            setFirstScannedIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 18: // ACTIVATED
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.activated = iprot.readI64();
            setActivatedIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 19: // CREATED
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.created = iprot.readI64();
            setCreatedIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        default:
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
      }
      iprot.readFieldEnd();
    }
    iprot.readStructEnd();
    validate();
  }

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

    oprot.writeStructBegin(STRUCT_DESC);
    oprot.writeFieldBegin(ID_FIELD_DESC);
    oprot.writeI64(this.id);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(ITEM_ID_FIELD_DESC);
    oprot.writeI64(this.itemId);
    oprot.writeFieldEnd();
    if (this.itemNumber != null) {
      oprot.writeFieldBegin(ITEM_NUMBER_FIELD_DESC);
      oprot.writeString(this.itemNumber);
      oprot.writeFieldEnd();
    }
    if (this.serialNumber != null) {
      oprot.writeFieldBegin(SERIAL_NUMBER_FIELD_DESC);
      oprot.writeString(this.serialNumber);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(INITIAL_QUANTITY_FIELD_DESC);
    oprot.writeI64(this.initialQuantity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(CURRENT_QUANTITY_FIELD_DESC);
    oprot.writeI64(this.currentQuantity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(PURCHASE_ID_FIELD_DESC);
    oprot.writeI64(this.purchaseId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(PURCHASE_RETURN_ID_FIELD_DESC);
    oprot.writeI64(this.purchaseReturnId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(PHYSICAL_WAREHOUSE_ID_FIELD_DESC);
    oprot.writeI64(this.physicalWarehouseId);
    oprot.writeFieldEnd();
    if (this.transferStatus != null) {
      oprot.writeFieldBegin(TRANSFER_STATUS_FIELD_DESC);
      oprot.writeI32(this.transferStatus.getValue());
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(SUPPLIER_ID_FIELD_DESC);
    oprot.writeI64(this.supplierId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(UNIT_PRICE_FIELD_DESC);
    oprot.writeDouble(this.unitPrice);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(CURRENT_WAREHOUSE_ID_FIELD_DESC);
    oprot.writeI64(this.currentWarehouseId);
    oprot.writeFieldEnd();
    if (this.lastScanType != null) {
      oprot.writeFieldBegin(LAST_SCAN_TYPE_FIELD_DESC);
      oprot.writeI32(this.lastScanType.getValue());
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(NLC_FIELD_DESC);
    oprot.writeDouble(this.nlc);
    oprot.writeFieldEnd();
    if (this.serialNumber2 != null) {
      oprot.writeFieldBegin(SERIAL_NUMBER2_FIELD_DESC);
      oprot.writeString(this.serialNumber2);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(FIRST_SCANNED_FIELD_DESC);
    oprot.writeI64(this.firstScanned);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(ACTIVATED_FIELD_DESC);
    oprot.writeI64(this.activated);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(CREATED_FIELD_DESC);
    oprot.writeI64(this.created);
    oprot.writeFieldEnd();
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("itemId:");
    sb.append(this.itemId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("itemNumber:");
    if (this.itemNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.itemNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("serialNumber:");
    if (this.serialNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.serialNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("initialQuantity:");
    sb.append(this.initialQuantity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("currentQuantity:");
    sb.append(this.currentQuantity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("purchaseId:");
    sb.append(this.purchaseId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("purchaseReturnId:");
    sb.append(this.purchaseReturnId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("physicalWarehouseId:");
    sb.append(this.physicalWarehouseId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("transferStatus:");
    if (this.transferStatus == null) {
      sb.append("null");
    } else {
      sb.append(this.transferStatus);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("supplierId:");
    sb.append(this.supplierId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("unitPrice:");
    sb.append(this.unitPrice);
    first = false;
    if (!first) sb.append(", ");
    sb.append("currentWarehouseId:");
    sb.append(this.currentWarehouseId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("lastScanType:");
    if (this.lastScanType == null) {
      sb.append("null");
    } else {
      sb.append(this.lastScanType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("nlc:");
    sb.append(this.nlc);
    first = false;
    if (!first) sb.append(", ");
    sb.append("serialNumber2:");
    if (this.serialNumber2 == null) {
      sb.append("null");
    } else {
      sb.append(this.serialNumber2);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("firstScanned:");
    sb.append(this.firstScanned);
    first = false;
    if (!first) sb.append(", ");
    sb.append("activated:");
    sb.append(this.activated);
    first = false;
    if (!first) sb.append(", ");
    sb.append("created:");
    sb.append(this.created);
    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);
    }
  }

}