Subversion Repositories SmartDukaan

Rev

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

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

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

  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("item_id", org.apache.thrift.protocol.TType.I64, (short)2);
  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)3);
  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)4);
  private static final org.apache.thrift.protocol.TField MODEL_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("model_number", 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 MODEL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("model_name", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField EXTRA_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("extra_info", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("quantity", org.apache.thrift.protocol.TType.DOUBLE, (short)9);
  private static final org.apache.thrift.protocol.TField UNIT_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("unit_price", org.apache.thrift.protocol.TType.DOUBLE, (short)10);
  private static final org.apache.thrift.protocol.TField UNIT_WEIGHT_FIELD_DESC = new org.apache.thrift.protocol.TField("unit_weight", org.apache.thrift.protocol.TType.DOUBLE, (short)11);
  private static final org.apache.thrift.protocol.TField TOTAL_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("total_price", org.apache.thrift.protocol.TType.DOUBLE, (short)12);
  private static final org.apache.thrift.protocol.TField TRANSFER_PRICE_FIELD_DESC = new org.apache.thrift.protocol.TField("transfer_price", org.apache.thrift.protocol.TType.DOUBLE, (short)13);
  private static final org.apache.thrift.protocol.TField TOTAL_WEIGHT_FIELD_DESC = new org.apache.thrift.protocol.TField("total_weight", org.apache.thrift.protocol.TType.DOUBLE, (short)14);
  private static final org.apache.thrift.protocol.TField SERIAL_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("serial_number", org.apache.thrift.protocol.TType.STRING, (short)15);
  private static final org.apache.thrift.protocol.TField ITEM_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("item_number", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField DEAL_TEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("dealText", org.apache.thrift.protocol.TType.STRING, (short)17);
  private static final org.apache.thrift.protocol.TField WARRANTRY_EXPIRY_TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("warrantry_expiry_timestamp", org.apache.thrift.protocol.TType.I64, (short)18);
  private static final org.apache.thrift.protocol.TField VAT_RATE_FIELD_DESC = new org.apache.thrift.protocol.TField("vatRate", org.apache.thrift.protocol.TType.DOUBLE, (short)19);
  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)20);

  private long id; // required
  private long item_id; // required
  private String productGroup; // required
  private String brand; // required
  private String model_number; // required
  private String color; // required
  private String model_name; // required
  private String extra_info; // required
  private double quantity; // required
  private double unit_price; // required
  private double unit_weight; // required
  private double total_price; // required
  private double transfer_price; // required
  private double total_weight; // required
  private String serial_number; // required
  private String item_number; // required
  private String dealText; // required
  private long warrantry_expiry_timestamp; // required
  private double vatRate; // required
  private double nlc; // 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, "item_id"),
    PRODUCT_GROUP((short)3, "productGroup"),
    BRAND((short)4, "brand"),
    MODEL_NUMBER((short)5, "model_number"),
    COLOR((short)6, "color"),
    MODEL_NAME((short)7, "model_name"),
    EXTRA_INFO((short)8, "extra_info"),
    QUANTITY((short)9, "quantity"),
    UNIT_PRICE((short)10, "unit_price"),
    UNIT_WEIGHT((short)11, "unit_weight"),
    TOTAL_PRICE((short)12, "total_price"),
    TRANSFER_PRICE((short)13, "transfer_price"),
    TOTAL_WEIGHT((short)14, "total_weight"),
    SERIAL_NUMBER((short)15, "serial_number"),
    ITEM_NUMBER((short)16, "item_number"),
    DEAL_TEXT((short)17, "dealText"),
    WARRANTRY_EXPIRY_TIMESTAMP((short)18, "warrantry_expiry_timestamp"),
    VAT_RATE((short)19, "vatRate"),
    NLC((short)20, "nlc");

    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: // PRODUCT_GROUP
          return PRODUCT_GROUP;
        case 4: // BRAND
          return BRAND;
        case 5: // MODEL_NUMBER
          return MODEL_NUMBER;
        case 6: // COLOR
          return COLOR;
        case 7: // MODEL_NAME
          return MODEL_NAME;
        case 8: // EXTRA_INFO
          return EXTRA_INFO;
        case 9: // QUANTITY
          return QUANTITY;
        case 10: // UNIT_PRICE
          return UNIT_PRICE;
        case 11: // UNIT_WEIGHT
          return UNIT_WEIGHT;
        case 12: // TOTAL_PRICE
          return TOTAL_PRICE;
        case 13: // TRANSFER_PRICE
          return TRANSFER_PRICE;
        case 14: // TOTAL_WEIGHT
          return TOTAL_WEIGHT;
        case 15: // SERIAL_NUMBER
          return SERIAL_NUMBER;
        case 16: // ITEM_NUMBER
          return ITEM_NUMBER;
        case 17: // DEAL_TEXT
          return DEAL_TEXT;
        case 18: // WARRANTRY_EXPIRY_TIMESTAMP
          return WARRANTRY_EXPIRY_TIMESTAMP;
        case 19: // VAT_RATE
          return VAT_RATE;
        case 20: // NLC
          return NLC;
        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 __ITEM_ID_ISSET_ID = 1;
  private static final int __QUANTITY_ISSET_ID = 2;
  private static final int __UNIT_PRICE_ISSET_ID = 3;
  private static final int __UNIT_WEIGHT_ISSET_ID = 4;
  private static final int __TOTAL_PRICE_ISSET_ID = 5;
  private static final int __TRANSFER_PRICE_ISSET_ID = 6;
  private static final int __TOTAL_WEIGHT_ISSET_ID = 7;
  private static final int __WARRANTRY_EXPIRY_TIMESTAMP_ISSET_ID = 8;
  private static final int __VATRATE_ISSET_ID = 9;
  private static final int __NLC_ISSET_ID = 10;
  private BitSet __isset_bit_vector = new BitSet(11);

  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("item_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("model_number", 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.MODEL_NAME, new org.apache.thrift.meta_data.FieldMetaData("model_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.EXTRA_INFO, new org.apache.thrift.meta_data.FieldMetaData("extra_info", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.QUANTITY, new org.apache.thrift.meta_data.FieldMetaData("quantity", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.UNIT_PRICE, new org.apache.thrift.meta_data.FieldMetaData("unit_price", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.UNIT_WEIGHT, new org.apache.thrift.meta_data.FieldMetaData("unit_weight", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.TOTAL_PRICE, new org.apache.thrift.meta_data.FieldMetaData("total_price", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.TRANSFER_PRICE, new org.apache.thrift.meta_data.FieldMetaData("transfer_price", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.TOTAL_WEIGHT, new org.apache.thrift.meta_data.FieldMetaData("total_weight", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SERIAL_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("serial_number", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ITEM_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("item_number", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DEAL_TEXT, new org.apache.thrift.meta_data.FieldMetaData("dealText", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.WARRANTRY_EXPIRY_TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("warrantry_expiry_timestamp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.VAT_RATE, new org.apache.thrift.meta_data.FieldMetaData("vatRate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    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)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(LineItem.class, metaDataMap);
  }

  public LineItem() {
  }

  public LineItem(
    long id,
    long item_id,
    String productGroup,
    String brand,
    String model_number,
    String color,
    String model_name,
    String extra_info,
    double quantity,
    double unit_price,
    double unit_weight,
    double total_price,
    double transfer_price,
    double total_weight,
    long warrantry_expiry_timestamp,
    double vatRate,
    double nlc)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.item_id = item_id;
    setItem_idIsSet(true);
    this.productGroup = productGroup;
    this.brand = brand;
    this.model_number = model_number;
    this.color = color;
    this.model_name = model_name;
    this.extra_info = extra_info;
    this.quantity = quantity;
    setQuantityIsSet(true);
    this.unit_price = unit_price;
    setUnit_priceIsSet(true);
    this.unit_weight = unit_weight;
    setUnit_weightIsSet(true);
    this.total_price = total_price;
    setTotal_priceIsSet(true);
    this.transfer_price = transfer_price;
    setTransfer_priceIsSet(true);
    this.total_weight = total_weight;
    setTotal_weightIsSet(true);
    this.warrantry_expiry_timestamp = warrantry_expiry_timestamp;
    setWarrantry_expiry_timestampIsSet(true);
    this.vatRate = vatRate;
    setVatRateIsSet(true);
    this.nlc = nlc;
    setNlcIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public LineItem(LineItem other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    this.item_id = other.item_id;
    if (other.isSetProductGroup()) {
      this.productGroup = other.productGroup;
    }
    if (other.isSetBrand()) {
      this.brand = other.brand;
    }
    if (other.isSetModel_number()) {
      this.model_number = other.model_number;
    }
    if (other.isSetColor()) {
      this.color = other.color;
    }
    if (other.isSetModel_name()) {
      this.model_name = other.model_name;
    }
    if (other.isSetExtra_info()) {
      this.extra_info = other.extra_info;
    }
    this.quantity = other.quantity;
    this.unit_price = other.unit_price;
    this.unit_weight = other.unit_weight;
    this.total_price = other.total_price;
    this.transfer_price = other.transfer_price;
    this.total_weight = other.total_weight;
    if (other.isSetSerial_number()) {
      this.serial_number = other.serial_number;
    }
    if (other.isSetItem_number()) {
      this.item_number = other.item_number;
    }
    if (other.isSetDealText()) {
      this.dealText = other.dealText;
    }
    this.warrantry_expiry_timestamp = other.warrantry_expiry_timestamp;
    this.vatRate = other.vatRate;
    this.nlc = other.nlc;
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    setItem_idIsSet(false);
    this.item_id = 0;
    this.productGroup = null;
    this.brand = null;
    this.model_number = null;
    this.color = null;
    this.model_name = null;
    this.extra_info = null;
    setQuantityIsSet(false);
    this.quantity = 0.0;
    setUnit_priceIsSet(false);
    this.unit_price = 0.0;
    setUnit_weightIsSet(false);
    this.unit_weight = 0.0;
    setTotal_priceIsSet(false);
    this.total_price = 0.0;
    setTransfer_priceIsSet(false);
    this.transfer_price = 0.0;
    setTotal_weightIsSet(false);
    this.total_weight = 0.0;
    this.serial_number = null;
    this.item_number = null;
    this.dealText = null;
    setWarrantry_expiry_timestampIsSet(false);
    this.warrantry_expiry_timestamp = 0;
    setVatRateIsSet(false);
    this.vatRate = 0.0;
    setNlcIsSet(false);
    this.nlc = 0.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 getItem_id() {
    return this.item_id;
  }

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

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

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

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

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

  public void setModel_number(String model_number) {
    this.model_number = model_number;
  }

  public void unsetModel_number() {
    this.model_number = null;
  }

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

  public void setModel_numberIsSet(boolean value) {
    if (!value) {
      this.model_number = 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 String getModel_name() {
    return this.model_name;
  }

  public void setModel_name(String model_name) {
    this.model_name = model_name;
  }

  public void unsetModel_name() {
    this.model_name = null;
  }

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

  public void setModel_nameIsSet(boolean value) {
    if (!value) {
      this.model_name = null;
    }
  }

  public String getExtra_info() {
    return this.extra_info;
  }

  public void setExtra_info(String extra_info) {
    this.extra_info = extra_info;
  }

  public void unsetExtra_info() {
    this.extra_info = null;
  }

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

  public void setExtra_infoIsSet(boolean value) {
    if (!value) {
      this.extra_info = null;
    }
  }

  public double getQuantity() {
    return this.quantity;
  }

  public void setQuantity(double quantity) {
    this.quantity = quantity;
    setQuantityIsSet(true);
  }

  public void unsetQuantity() {
    __isset_bit_vector.clear(__QUANTITY_ISSET_ID);
  }

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

  public void setQuantityIsSet(boolean value) {
    __isset_bit_vector.set(__QUANTITY_ISSET_ID, value);
  }

  public double getUnit_price() {
    return this.unit_price;
  }

  public void setUnit_price(double unit_price) {
    this.unit_price = unit_price;
    setUnit_priceIsSet(true);
  }

  public void unsetUnit_price() {
    __isset_bit_vector.clear(__UNIT_PRICE_ISSET_ID);
  }

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

  public void setUnit_priceIsSet(boolean value) {
    __isset_bit_vector.set(__UNIT_PRICE_ISSET_ID, value);
  }

  public double getUnit_weight() {
    return this.unit_weight;
  }

  public void setUnit_weight(double unit_weight) {
    this.unit_weight = unit_weight;
    setUnit_weightIsSet(true);
  }

  public void unsetUnit_weight() {
    __isset_bit_vector.clear(__UNIT_WEIGHT_ISSET_ID);
  }

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

  public void setUnit_weightIsSet(boolean value) {
    __isset_bit_vector.set(__UNIT_WEIGHT_ISSET_ID, value);
  }

  public double getTotal_price() {
    return this.total_price;
  }

  public void setTotal_price(double total_price) {
    this.total_price = total_price;
    setTotal_priceIsSet(true);
  }

  public void unsetTotal_price() {
    __isset_bit_vector.clear(__TOTAL_PRICE_ISSET_ID);
  }

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

  public void setTotal_priceIsSet(boolean value) {
    __isset_bit_vector.set(__TOTAL_PRICE_ISSET_ID, value);
  }

  public double getTransfer_price() {
    return this.transfer_price;
  }

  public void setTransfer_price(double transfer_price) {
    this.transfer_price = transfer_price;
    setTransfer_priceIsSet(true);
  }

  public void unsetTransfer_price() {
    __isset_bit_vector.clear(__TRANSFER_PRICE_ISSET_ID);
  }

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

  public void setTransfer_priceIsSet(boolean value) {
    __isset_bit_vector.set(__TRANSFER_PRICE_ISSET_ID, value);
  }

  public double getTotal_weight() {
    return this.total_weight;
  }

  public void setTotal_weight(double total_weight) {
    this.total_weight = total_weight;
    setTotal_weightIsSet(true);
  }

  public void unsetTotal_weight() {
    __isset_bit_vector.clear(__TOTAL_WEIGHT_ISSET_ID);
  }

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

  public void setTotal_weightIsSet(boolean value) {
    __isset_bit_vector.set(__TOTAL_WEIGHT_ISSET_ID, value);
  }

  public String getSerial_number() {
    return this.serial_number;
  }

  public void setSerial_number(String serial_number) {
    this.serial_number = serial_number;
  }

  public void unsetSerial_number() {
    this.serial_number = null;
  }

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

  public void setSerial_numberIsSet(boolean value) {
    if (!value) {
      this.serial_number = null;
    }
  }

  public String getItem_number() {
    return this.item_number;
  }

  public void setItem_number(String item_number) {
    this.item_number = item_number;
  }

  public void unsetItem_number() {
    this.item_number = null;
  }

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

  public void setItem_numberIsSet(boolean value) {
    if (!value) {
      this.item_number = null;
    }
  }

  public String getDealText() {
    return this.dealText;
  }

  public void setDealText(String dealText) {
    this.dealText = dealText;
  }

  public void unsetDealText() {
    this.dealText = null;
  }

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

  public void setDealTextIsSet(boolean value) {
    if (!value) {
      this.dealText = null;
    }
  }

  public long getWarrantry_expiry_timestamp() {
    return this.warrantry_expiry_timestamp;
  }

  public void setWarrantry_expiry_timestamp(long warrantry_expiry_timestamp) {
    this.warrantry_expiry_timestamp = warrantry_expiry_timestamp;
    setWarrantry_expiry_timestampIsSet(true);
  }

  public void unsetWarrantry_expiry_timestamp() {
    __isset_bit_vector.clear(__WARRANTRY_EXPIRY_TIMESTAMP_ISSET_ID);
  }

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

  public void setWarrantry_expiry_timestampIsSet(boolean value) {
    __isset_bit_vector.set(__WARRANTRY_EXPIRY_TIMESTAMP_ISSET_ID, value);
  }

  public double getVatRate() {
    return this.vatRate;
  }

  public void setVatRate(double vatRate) {
    this.vatRate = vatRate;
    setVatRateIsSet(true);
  }

  public void unsetVatRate() {
    __isset_bit_vector.clear(__VATRATE_ISSET_ID);
  }

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

  public void setVatRateIsSet(boolean value) {
    __isset_bit_vector.set(__VATRATE_ISSET_ID, value);
  }

  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 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) {
        unsetItem_id();
      } else {
        setItem_id((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) {
        unsetModel_number();
      } else {
        setModel_number((String)value);
      }
      break;

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

    case MODEL_NAME:
      if (value == null) {
        unsetModel_name();
      } else {
        setModel_name((String)value);
      }
      break;

    case EXTRA_INFO:
      if (value == null) {
        unsetExtra_info();
      } else {
        setExtra_info((String)value);
      }
      break;

    case QUANTITY:
      if (value == null) {
        unsetQuantity();
      } else {
        setQuantity((Double)value);
      }
      break;

    case UNIT_PRICE:
      if (value == null) {
        unsetUnit_price();
      } else {
        setUnit_price((Double)value);
      }
      break;

    case UNIT_WEIGHT:
      if (value == null) {
        unsetUnit_weight();
      } else {
        setUnit_weight((Double)value);
      }
      break;

    case TOTAL_PRICE:
      if (value == null) {
        unsetTotal_price();
      } else {
        setTotal_price((Double)value);
      }
      break;

    case TRANSFER_PRICE:
      if (value == null) {
        unsetTransfer_price();
      } else {
        setTransfer_price((Double)value);
      }
      break;

    case TOTAL_WEIGHT:
      if (value == null) {
        unsetTotal_weight();
      } else {
        setTotal_weight((Double)value);
      }
      break;

    case SERIAL_NUMBER:
      if (value == null) {
        unsetSerial_number();
      } else {
        setSerial_number((String)value);
      }
      break;

    case ITEM_NUMBER:
      if (value == null) {
        unsetItem_number();
      } else {
        setItem_number((String)value);
      }
      break;

    case DEAL_TEXT:
      if (value == null) {
        unsetDealText();
      } else {
        setDealText((String)value);
      }
      break;

    case WARRANTRY_EXPIRY_TIMESTAMP:
      if (value == null) {
        unsetWarrantry_expiry_timestamp();
      } else {
        setWarrantry_expiry_timestamp((Long)value);
      }
      break;

    case VAT_RATE:
      if (value == null) {
        unsetVatRate();
      } else {
        setVatRate((Double)value);
      }
      break;

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

    }
  }

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

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

    case PRODUCT_GROUP:
      return getProductGroup();

    case BRAND:
      return getBrand();

    case MODEL_NUMBER:
      return getModel_number();

    case COLOR:
      return getColor();

    case MODEL_NAME:
      return getModel_name();

    case EXTRA_INFO:
      return getExtra_info();

    case QUANTITY:
      return Double.valueOf(getQuantity());

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

    case UNIT_WEIGHT:
      return Double.valueOf(getUnit_weight());

    case TOTAL_PRICE:
      return Double.valueOf(getTotal_price());

    case TRANSFER_PRICE:
      return Double.valueOf(getTransfer_price());

    case TOTAL_WEIGHT:
      return Double.valueOf(getTotal_weight());

    case SERIAL_NUMBER:
      return getSerial_number();

    case ITEM_NUMBER:
      return getItem_number();

    case DEAL_TEXT:
      return getDealText();

    case WARRANTRY_EXPIRY_TIMESTAMP:
      return Long.valueOf(getWarrantry_expiry_timestamp());

    case VAT_RATE:
      return Double.valueOf(getVatRate());

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

    }
    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 isSetItem_id();
    case PRODUCT_GROUP:
      return isSetProductGroup();
    case BRAND:
      return isSetBrand();
    case MODEL_NUMBER:
      return isSetModel_number();
    case COLOR:
      return isSetColor();
    case MODEL_NAME:
      return isSetModel_name();
    case EXTRA_INFO:
      return isSetExtra_info();
    case QUANTITY:
      return isSetQuantity();
    case UNIT_PRICE:
      return isSetUnit_price();
    case UNIT_WEIGHT:
      return isSetUnit_weight();
    case TOTAL_PRICE:
      return isSetTotal_price();
    case TRANSFER_PRICE:
      return isSetTransfer_price();
    case TOTAL_WEIGHT:
      return isSetTotal_weight();
    case SERIAL_NUMBER:
      return isSetSerial_number();
    case ITEM_NUMBER:
      return isSetItem_number();
    case DEAL_TEXT:
      return isSetDealText();
    case WARRANTRY_EXPIRY_TIMESTAMP:
      return isSetWarrantry_expiry_timestamp();
    case VAT_RATE:
      return isSetVatRate();
    case NLC:
      return isSetNlc();
    }
    throw new IllegalStateException();
  }

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

  public boolean equals(LineItem 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_item_id = true;
    boolean that_present_item_id = true;
    if (this_present_item_id || that_present_item_id) {
      if (!(this_present_item_id && that_present_item_id))
        return false;
      if (this.item_id != that.item_id)
        return false;
    }

    boolean this_present_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_model_number = true && this.isSetModel_number();
    boolean that_present_model_number = true && that.isSetModel_number();
    if (this_present_model_number || that_present_model_number) {
      if (!(this_present_model_number && that_present_model_number))
        return false;
      if (!this.model_number.equals(that.model_number))
        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_model_name = true && this.isSetModel_name();
    boolean that_present_model_name = true && that.isSetModel_name();
    if (this_present_model_name || that_present_model_name) {
      if (!(this_present_model_name && that_present_model_name))
        return false;
      if (!this.model_name.equals(that.model_name))
        return false;
    }

    boolean this_present_extra_info = true && this.isSetExtra_info();
    boolean that_present_extra_info = true && that.isSetExtra_info();
    if (this_present_extra_info || that_present_extra_info) {
      if (!(this_present_extra_info && that_present_extra_info))
        return false;
      if (!this.extra_info.equals(that.extra_info))
        return false;
    }

    boolean this_present_quantity = true;
    boolean that_present_quantity = true;
    if (this_present_quantity || that_present_quantity) {
      if (!(this_present_quantity && that_present_quantity))
        return false;
      if (this.quantity != that.quantity)
        return false;
    }

    boolean this_present_unit_price = true;
    boolean that_present_unit_price = true;
    if (this_present_unit_price || that_present_unit_price) {
      if (!(this_present_unit_price && that_present_unit_price))
        return false;
      if (this.unit_price != that.unit_price)
        return false;
    }

    boolean this_present_unit_weight = true;
    boolean that_present_unit_weight = true;
    if (this_present_unit_weight || that_present_unit_weight) {
      if (!(this_present_unit_weight && that_present_unit_weight))
        return false;
      if (this.unit_weight != that.unit_weight)
        return false;
    }

    boolean this_present_total_price = true;
    boolean that_present_total_price = true;
    if (this_present_total_price || that_present_total_price) {
      if (!(this_present_total_price && that_present_total_price))
        return false;
      if (this.total_price != that.total_price)
        return false;
    }

    boolean this_present_transfer_price = true;
    boolean that_present_transfer_price = true;
    if (this_present_transfer_price || that_present_transfer_price) {
      if (!(this_present_transfer_price && that_present_transfer_price))
        return false;
      if (this.transfer_price != that.transfer_price)
        return false;
    }

    boolean this_present_total_weight = true;
    boolean that_present_total_weight = true;
    if (this_present_total_weight || that_present_total_weight) {
      if (!(this_present_total_weight && that_present_total_weight))
        return false;
      if (this.total_weight != that.total_weight)
        return false;
    }

    boolean this_present_serial_number = true && this.isSetSerial_number();
    boolean that_present_serial_number = true && that.isSetSerial_number();
    if (this_present_serial_number || that_present_serial_number) {
      if (!(this_present_serial_number && that_present_serial_number))
        return false;
      if (!this.serial_number.equals(that.serial_number))
        return false;
    }

    boolean this_present_item_number = true && this.isSetItem_number();
    boolean that_present_item_number = true && that.isSetItem_number();
    if (this_present_item_number || that_present_item_number) {
      if (!(this_present_item_number && that_present_item_number))
        return false;
      if (!this.item_number.equals(that.item_number))
        return false;
    }

    boolean this_present_dealText = true && this.isSetDealText();
    boolean that_present_dealText = true && that.isSetDealText();
    if (this_present_dealText || that_present_dealText) {
      if (!(this_present_dealText && that_present_dealText))
        return false;
      if (!this.dealText.equals(that.dealText))
        return false;
    }

    boolean this_present_warrantry_expiry_timestamp = true;
    boolean that_present_warrantry_expiry_timestamp = true;
    if (this_present_warrantry_expiry_timestamp || that_present_warrantry_expiry_timestamp) {
      if (!(this_present_warrantry_expiry_timestamp && that_present_warrantry_expiry_timestamp))
        return false;
      if (this.warrantry_expiry_timestamp != that.warrantry_expiry_timestamp)
        return false;
    }

    boolean this_present_vatRate = true;
    boolean that_present_vatRate = true;
    if (this_present_vatRate || that_present_vatRate) {
      if (!(this_present_vatRate && that_present_vatRate))
        return false;
      if (this.vatRate != that.vatRate)
        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;
    }

    return true;
  }

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

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

    int lastComparison = 0;
    LineItem typedOther = (LineItem)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(isSetItem_id()).compareTo(typedOther.isSetItem_id());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetItem_id()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.item_id, typedOther.item_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(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(isSetModel_number()).compareTo(typedOther.isSetModel_number());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetModel_number()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.model_number, typedOther.model_number);
      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(isSetModel_name()).compareTo(typedOther.isSetModel_name());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetModel_name()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.model_name, typedOther.model_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetExtra_info()).compareTo(typedOther.isSetExtra_info());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExtra_info()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.extra_info, typedOther.extra_info);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetQuantity()).compareTo(typedOther.isSetQuantity());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetQuantity()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.quantity, typedOther.quantity);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUnit_price()).compareTo(typedOther.isSetUnit_price());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUnit_price()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unit_price, typedOther.unit_price);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUnit_weight()).compareTo(typedOther.isSetUnit_weight());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUnit_weight()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unit_weight, typedOther.unit_weight);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTotal_price()).compareTo(typedOther.isSetTotal_price());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTotal_price()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.total_price, typedOther.total_price);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTransfer_price()).compareTo(typedOther.isSetTransfer_price());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTransfer_price()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transfer_price, typedOther.transfer_price);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTotal_weight()).compareTo(typedOther.isSetTotal_weight());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTotal_weight()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.total_weight, typedOther.total_weight);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSerial_number()).compareTo(typedOther.isSetSerial_number());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSerial_number()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serial_number, typedOther.serial_number);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetItem_number()).compareTo(typedOther.isSetItem_number());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetItem_number()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.item_number, typedOther.item_number);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDealText()).compareTo(typedOther.isSetDealText());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDealText()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dealText, typedOther.dealText);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetWarrantry_expiry_timestamp()).compareTo(typedOther.isSetWarrantry_expiry_timestamp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetWarrantry_expiry_timestamp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.warrantry_expiry_timestamp, typedOther.warrantry_expiry_timestamp);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetVatRate()).compareTo(typedOther.isSetVatRate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVatRate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.vatRate, typedOther.vatRate);
      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;
      }
    }
    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.item_id = iprot.readI64();
            setItem_idIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // 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 4: // 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 5: // MODEL_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.model_number = 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: // MODEL_NAME
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.model_name = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // EXTRA_INFO
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.extra_info = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // QUANTITY
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.quantity = iprot.readDouble();
            setQuantityIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 10: // UNIT_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.unit_price = iprot.readDouble();
            setUnit_priceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // UNIT_WEIGHT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.unit_weight = iprot.readDouble();
            setUnit_weightIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 12: // TOTAL_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.total_price = iprot.readDouble();
            setTotal_priceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // TRANSFER_PRICE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.transfer_price = iprot.readDouble();
            setTransfer_priceIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // TOTAL_WEIGHT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.total_weight = iprot.readDouble();
            setTotal_weightIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 15: // SERIAL_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.serial_number = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 16: // ITEM_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.item_number = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 17: // DEAL_TEXT
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.dealText = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 18: // WARRANTRY_EXPIRY_TIMESTAMP
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.warrantry_expiry_timestamp = iprot.readI64();
            setWarrantry_expiry_timestampIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 19: // VAT_RATE
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.vatRate = iprot.readDouble();
            setVatRateIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 20: // 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;
        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.item_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.model_number != null) {
      oprot.writeFieldBegin(MODEL_NUMBER_FIELD_DESC);
      oprot.writeString(this.model_number);
      oprot.writeFieldEnd();
    }
    if (this.color != null) {
      oprot.writeFieldBegin(COLOR_FIELD_DESC);
      oprot.writeString(this.color);
      oprot.writeFieldEnd();
    }
    if (this.model_name != null) {
      oprot.writeFieldBegin(MODEL_NAME_FIELD_DESC);
      oprot.writeString(this.model_name);
      oprot.writeFieldEnd();
    }
    if (this.extra_info != null) {
      oprot.writeFieldBegin(EXTRA_INFO_FIELD_DESC);
      oprot.writeString(this.extra_info);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(QUANTITY_FIELD_DESC);
    oprot.writeDouble(this.quantity);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(UNIT_PRICE_FIELD_DESC);
    oprot.writeDouble(this.unit_price);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(UNIT_WEIGHT_FIELD_DESC);
    oprot.writeDouble(this.unit_weight);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(TOTAL_PRICE_FIELD_DESC);
    oprot.writeDouble(this.total_price);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(TRANSFER_PRICE_FIELD_DESC);
    oprot.writeDouble(this.transfer_price);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(TOTAL_WEIGHT_FIELD_DESC);
    oprot.writeDouble(this.total_weight);
    oprot.writeFieldEnd();
    if (this.serial_number != null) {
      if (isSetSerial_number()) {
        oprot.writeFieldBegin(SERIAL_NUMBER_FIELD_DESC);
        oprot.writeString(this.serial_number);
        oprot.writeFieldEnd();
      }
    }
    if (this.item_number != null) {
      if (isSetItem_number()) {
        oprot.writeFieldBegin(ITEM_NUMBER_FIELD_DESC);
        oprot.writeString(this.item_number);
        oprot.writeFieldEnd();
      }
    }
    if (this.dealText != null) {
      if (isSetDealText()) {
        oprot.writeFieldBegin(DEAL_TEXT_FIELD_DESC);
        oprot.writeString(this.dealText);
        oprot.writeFieldEnd();
      }
    }
    oprot.writeFieldBegin(WARRANTRY_EXPIRY_TIMESTAMP_FIELD_DESC);
    oprot.writeI64(this.warrantry_expiry_timestamp);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(VAT_RATE_FIELD_DESC);
    oprot.writeDouble(this.vatRate);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(NLC_FIELD_DESC);
    oprot.writeDouble(this.nlc);
    oprot.writeFieldEnd();
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("item_id:");
    sb.append(this.item_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("model_number:");
    if (this.model_number == null) {
      sb.append("null");
    } else {
      sb.append(this.model_number);
    }
    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("model_name:");
    if (this.model_name == null) {
      sb.append("null");
    } else {
      sb.append(this.model_name);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("extra_info:");
    if (this.extra_info == null) {
      sb.append("null");
    } else {
      sb.append(this.extra_info);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("quantity:");
    sb.append(this.quantity);
    first = false;
    if (!first) sb.append(", ");
    sb.append("unit_price:");
    sb.append(this.unit_price);
    first = false;
    if (!first) sb.append(", ");
    sb.append("unit_weight:");
    sb.append(this.unit_weight);
    first = false;
    if (!first) sb.append(", ");
    sb.append("total_price:");
    sb.append(this.total_price);
    first = false;
    if (!first) sb.append(", ");
    sb.append("transfer_price:");
    sb.append(this.transfer_price);
    first = false;
    if (!first) sb.append(", ");
    sb.append("total_weight:");
    sb.append(this.total_weight);
    first = false;
    if (isSetSerial_number()) {
      if (!first) sb.append(", ");
      sb.append("serial_number:");
      if (this.serial_number == null) {
        sb.append("null");
      } else {
        sb.append(this.serial_number);
      }
      first = false;
    }
    if (isSetItem_number()) {
      if (!first) sb.append(", ");
      sb.append("item_number:");
      if (this.item_number == null) {
        sb.append("null");
      } else {
        sb.append(this.item_number);
      }
      first = false;
    }
    if (isSetDealText()) {
      if (!first) sb.append(", ");
      sb.append("dealText:");
      if (this.dealText == null) {
        sb.append("null");
      } else {
        sb.append(this.dealText);
      }
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("warrantry_expiry_timestamp:");
    sb.append(this.warrantry_expiry_timestamp);
    first = false;
    if (!first) sb.append(", ");
    sb.append("vatRate:");
    sb.append(this.vatRate);
    first = false;
    if (!first) sb.append(", ");
    sb.append("nlc:");
    sb.append(this.nlc);
    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);
    }
  }

}