Subversion Repositories SmartDukaan

Rev

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

  private static final org.apache.thrift.protocol.TField LOGISTICS_TRANSACTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("logisticsTransactionId", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField AIRWAY_BILL_NO_FIELD_DESC = new org.apache.thrift.protocol.TField("airwayBillNo", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField SHIPMENT_AMOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("shipmentAmount", org.apache.thrift.protocol.TType.DOUBLE, (short)3);
  private static final org.apache.thrift.protocol.TField SHIPMENT_WEIGHT_FIELD_DESC = new org.apache.thrift.protocol.TField("shipmentWeight", org.apache.thrift.protocol.TType.DOUBLE, (short)4);
  private static final org.apache.thrift.protocol.TField SHIPMENT_LOGSITICS_COST_FIELD_DESC = new org.apache.thrift.protocol.TField("shipmentLogsiticsCost", org.apache.thrift.protocol.TType.DOUBLE, (short)5);
  private static final org.apache.thrift.protocol.TField SHIPMENT_COD_COLLECTION_CHARGES_FIELD_DESC = new org.apache.thrift.protocol.TField("shipmentCodCollectionCharges", org.apache.thrift.protocol.TType.DOUBLE, (short)6);
  private static final org.apache.thrift.protocol.TField CREATED_AT_FIELD_DESC = new org.apache.thrift.protocol.TField("createdAt", org.apache.thrift.protocol.TType.I64, (short)7);
  private static final org.apache.thrift.protocol.TField UPDATED_AT_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedAt", org.apache.thrift.protocol.TType.I64, (short)8);
  private static final org.apache.thrift.protocol.TField PACKAGE_DIMENSIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("packageDimensions", org.apache.thrift.protocol.TType.STRING, (short)9);

  private String logisticsTransactionId; // required
  private String airwayBillNo; // required
  private double shipmentAmount; // required
  private double shipmentWeight; // required
  private double shipmentLogsiticsCost; // required
  private double shipmentCodCollectionCharges; // required
  private long createdAt; // required
  private long updatedAt; // required
  private String packageDimensions; // 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 {
    LOGISTICS_TRANSACTION_ID((short)1, "logisticsTransactionId"),
    AIRWAY_BILL_NO((short)2, "airwayBillNo"),
    SHIPMENT_AMOUNT((short)3, "shipmentAmount"),
    SHIPMENT_WEIGHT((short)4, "shipmentWeight"),
    SHIPMENT_LOGSITICS_COST((short)5, "shipmentLogsiticsCost"),
    SHIPMENT_COD_COLLECTION_CHARGES((short)6, "shipmentCodCollectionCharges"),
    CREATED_AT((short)7, "createdAt"),
    UPDATED_AT((short)8, "updatedAt"),
    PACKAGE_DIMENSIONS((short)9, "packageDimensions");

    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: // LOGISTICS_TRANSACTION_ID
          return LOGISTICS_TRANSACTION_ID;
        case 2: // AIRWAY_BILL_NO
          return AIRWAY_BILL_NO;
        case 3: // SHIPMENT_AMOUNT
          return SHIPMENT_AMOUNT;
        case 4: // SHIPMENT_WEIGHT
          return SHIPMENT_WEIGHT;
        case 5: // SHIPMENT_LOGSITICS_COST
          return SHIPMENT_LOGSITICS_COST;
        case 6: // SHIPMENT_COD_COLLECTION_CHARGES
          return SHIPMENT_COD_COLLECTION_CHARGES;
        case 7: // CREATED_AT
          return CREATED_AT;
        case 8: // UPDATED_AT
          return UPDATED_AT;
        case 9: // PACKAGE_DIMENSIONS
          return PACKAGE_DIMENSIONS;
        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 __SHIPMENTAMOUNT_ISSET_ID = 0;
  private static final int __SHIPMENTWEIGHT_ISSET_ID = 1;
  private static final int __SHIPMENTLOGSITICSCOST_ISSET_ID = 2;
  private static final int __SHIPMENTCODCOLLECTIONCHARGES_ISSET_ID = 3;
  private static final int __CREATEDAT_ISSET_ID = 4;
  private static final int __UPDATEDAT_ISSET_ID = 5;
  private BitSet __isset_bit_vector = new BitSet(6);

  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.LOGISTICS_TRANSACTION_ID, new org.apache.thrift.meta_data.FieldMetaData("logisticsTransactionId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.AIRWAY_BILL_NO, new org.apache.thrift.meta_data.FieldMetaData("airwayBillNo", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SHIPMENT_AMOUNT, new org.apache.thrift.meta_data.FieldMetaData("shipmentAmount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SHIPMENT_WEIGHT, new org.apache.thrift.meta_data.FieldMetaData("shipmentWeight", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SHIPMENT_LOGSITICS_COST, new org.apache.thrift.meta_data.FieldMetaData("shipmentLogsiticsCost", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.SHIPMENT_COD_COLLECTION_CHARGES, new org.apache.thrift.meta_data.FieldMetaData("shipmentCodCollectionCharges", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.CREATED_AT, new org.apache.thrift.meta_data.FieldMetaData("createdAt", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.UPDATED_AT, new org.apache.thrift.meta_data.FieldMetaData("updatedAt", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PACKAGE_DIMENSIONS, new org.apache.thrift.meta_data.FieldMetaData("packageDimensions", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ShipmentLogisticsCostDetail.class, metaDataMap);
  }

  public ShipmentLogisticsCostDetail() {
  }

  public ShipmentLogisticsCostDetail(
    String logisticsTransactionId,
    String airwayBillNo,
    double shipmentAmount,
    double shipmentWeight,
    double shipmentLogsiticsCost,
    double shipmentCodCollectionCharges,
    long createdAt,
    long updatedAt,
    String packageDimensions)
  {
    this();
    this.logisticsTransactionId = logisticsTransactionId;
    this.airwayBillNo = airwayBillNo;
    this.shipmentAmount = shipmentAmount;
    setShipmentAmountIsSet(true);
    this.shipmentWeight = shipmentWeight;
    setShipmentWeightIsSet(true);
    this.shipmentLogsiticsCost = shipmentLogsiticsCost;
    setShipmentLogsiticsCostIsSet(true);
    this.shipmentCodCollectionCharges = shipmentCodCollectionCharges;
    setShipmentCodCollectionChargesIsSet(true);
    this.createdAt = createdAt;
    setCreatedAtIsSet(true);
    this.updatedAt = updatedAt;
    setUpdatedAtIsSet(true);
    this.packageDimensions = packageDimensions;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public ShipmentLogisticsCostDetail(ShipmentLogisticsCostDetail other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    if (other.isSetLogisticsTransactionId()) {
      this.logisticsTransactionId = other.logisticsTransactionId;
    }
    if (other.isSetAirwayBillNo()) {
      this.airwayBillNo = other.airwayBillNo;
    }
    this.shipmentAmount = other.shipmentAmount;
    this.shipmentWeight = other.shipmentWeight;
    this.shipmentLogsiticsCost = other.shipmentLogsiticsCost;
    this.shipmentCodCollectionCharges = other.shipmentCodCollectionCharges;
    this.createdAt = other.createdAt;
    this.updatedAt = other.updatedAt;
    if (other.isSetPackageDimensions()) {
      this.packageDimensions = other.packageDimensions;
    }
  }

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

  @Override
  public void clear() {
    this.logisticsTransactionId = null;
    this.airwayBillNo = null;
    setShipmentAmountIsSet(false);
    this.shipmentAmount = 0.0;
    setShipmentWeightIsSet(false);
    this.shipmentWeight = 0.0;
    setShipmentLogsiticsCostIsSet(false);
    this.shipmentLogsiticsCost = 0.0;
    setShipmentCodCollectionChargesIsSet(false);
    this.shipmentCodCollectionCharges = 0.0;
    setCreatedAtIsSet(false);
    this.createdAt = 0;
    setUpdatedAtIsSet(false);
    this.updatedAt = 0;
    this.packageDimensions = null;
  }

  public String getLogisticsTransactionId() {
    return this.logisticsTransactionId;
  }

  public void setLogisticsTransactionId(String logisticsTransactionId) {
    this.logisticsTransactionId = logisticsTransactionId;
  }

  public void unsetLogisticsTransactionId() {
    this.logisticsTransactionId = null;
  }

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

  public void setLogisticsTransactionIdIsSet(boolean value) {
    if (!value) {
      this.logisticsTransactionId = null;
    }
  }

  public String getAirwayBillNo() {
    return this.airwayBillNo;
  }

  public void setAirwayBillNo(String airwayBillNo) {
    this.airwayBillNo = airwayBillNo;
  }

  public void unsetAirwayBillNo() {
    this.airwayBillNo = null;
  }

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

  public void setAirwayBillNoIsSet(boolean value) {
    if (!value) {
      this.airwayBillNo = null;
    }
  }

  public double getShipmentAmount() {
    return this.shipmentAmount;
  }

  public void setShipmentAmount(double shipmentAmount) {
    this.shipmentAmount = shipmentAmount;
    setShipmentAmountIsSet(true);
  }

  public void unsetShipmentAmount() {
    __isset_bit_vector.clear(__SHIPMENTAMOUNT_ISSET_ID);
  }

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

  public void setShipmentAmountIsSet(boolean value) {
    __isset_bit_vector.set(__SHIPMENTAMOUNT_ISSET_ID, value);
  }

  public double getShipmentWeight() {
    return this.shipmentWeight;
  }

  public void setShipmentWeight(double shipmentWeight) {
    this.shipmentWeight = shipmentWeight;
    setShipmentWeightIsSet(true);
  }

  public void unsetShipmentWeight() {
    __isset_bit_vector.clear(__SHIPMENTWEIGHT_ISSET_ID);
  }

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

  public void setShipmentWeightIsSet(boolean value) {
    __isset_bit_vector.set(__SHIPMENTWEIGHT_ISSET_ID, value);
  }

  public double getShipmentLogsiticsCost() {
    return this.shipmentLogsiticsCost;
  }

  public void setShipmentLogsiticsCost(double shipmentLogsiticsCost) {
    this.shipmentLogsiticsCost = shipmentLogsiticsCost;
    setShipmentLogsiticsCostIsSet(true);
  }

  public void unsetShipmentLogsiticsCost() {
    __isset_bit_vector.clear(__SHIPMENTLOGSITICSCOST_ISSET_ID);
  }

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

  public void setShipmentLogsiticsCostIsSet(boolean value) {
    __isset_bit_vector.set(__SHIPMENTLOGSITICSCOST_ISSET_ID, value);
  }

  public double getShipmentCodCollectionCharges() {
    return this.shipmentCodCollectionCharges;
  }

  public void setShipmentCodCollectionCharges(double shipmentCodCollectionCharges) {
    this.shipmentCodCollectionCharges = shipmentCodCollectionCharges;
    setShipmentCodCollectionChargesIsSet(true);
  }

  public void unsetShipmentCodCollectionCharges() {
    __isset_bit_vector.clear(__SHIPMENTCODCOLLECTIONCHARGES_ISSET_ID);
  }

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

  public void setShipmentCodCollectionChargesIsSet(boolean value) {
    __isset_bit_vector.set(__SHIPMENTCODCOLLECTIONCHARGES_ISSET_ID, value);
  }

  public long getCreatedAt() {
    return this.createdAt;
  }

  public void setCreatedAt(long createdAt) {
    this.createdAt = createdAt;
    setCreatedAtIsSet(true);
  }

  public void unsetCreatedAt() {
    __isset_bit_vector.clear(__CREATEDAT_ISSET_ID);
  }

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

  public void setCreatedAtIsSet(boolean value) {
    __isset_bit_vector.set(__CREATEDAT_ISSET_ID, value);
  }

  public long getUpdatedAt() {
    return this.updatedAt;
  }

  public void setUpdatedAt(long updatedAt) {
    this.updatedAt = updatedAt;
    setUpdatedAtIsSet(true);
  }

  public void unsetUpdatedAt() {
    __isset_bit_vector.clear(__UPDATEDAT_ISSET_ID);
  }

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

  public void setUpdatedAtIsSet(boolean value) {
    __isset_bit_vector.set(__UPDATEDAT_ISSET_ID, value);
  }

  public String getPackageDimensions() {
    return this.packageDimensions;
  }

  public void setPackageDimensions(String packageDimensions) {
    this.packageDimensions = packageDimensions;
  }

  public void unsetPackageDimensions() {
    this.packageDimensions = null;
  }

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

  public void setPackageDimensionsIsSet(boolean value) {
    if (!value) {
      this.packageDimensions = null;
    }
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case LOGISTICS_TRANSACTION_ID:
      if (value == null) {
        unsetLogisticsTransactionId();
      } else {
        setLogisticsTransactionId((String)value);
      }
      break;

    case AIRWAY_BILL_NO:
      if (value == null) {
        unsetAirwayBillNo();
      } else {
        setAirwayBillNo((String)value);
      }
      break;

    case SHIPMENT_AMOUNT:
      if (value == null) {
        unsetShipmentAmount();
      } else {
        setShipmentAmount((Double)value);
      }
      break;

    case SHIPMENT_WEIGHT:
      if (value == null) {
        unsetShipmentWeight();
      } else {
        setShipmentWeight((Double)value);
      }
      break;

    case SHIPMENT_LOGSITICS_COST:
      if (value == null) {
        unsetShipmentLogsiticsCost();
      } else {
        setShipmentLogsiticsCost((Double)value);
      }
      break;

    case SHIPMENT_COD_COLLECTION_CHARGES:
      if (value == null) {
        unsetShipmentCodCollectionCharges();
      } else {
        setShipmentCodCollectionCharges((Double)value);
      }
      break;

    case CREATED_AT:
      if (value == null) {
        unsetCreatedAt();
      } else {
        setCreatedAt((Long)value);
      }
      break;

    case UPDATED_AT:
      if (value == null) {
        unsetUpdatedAt();
      } else {
        setUpdatedAt((Long)value);
      }
      break;

    case PACKAGE_DIMENSIONS:
      if (value == null) {
        unsetPackageDimensions();
      } else {
        setPackageDimensions((String)value);
      }
      break;

    }
  }

  public Object getFieldValue(_Fields field) {
    switch (field) {
    case LOGISTICS_TRANSACTION_ID:
      return getLogisticsTransactionId();

    case AIRWAY_BILL_NO:
      return getAirwayBillNo();

    case SHIPMENT_AMOUNT:
      return Double.valueOf(getShipmentAmount());

    case SHIPMENT_WEIGHT:
      return Double.valueOf(getShipmentWeight());

    case SHIPMENT_LOGSITICS_COST:
      return Double.valueOf(getShipmentLogsiticsCost());

    case SHIPMENT_COD_COLLECTION_CHARGES:
      return Double.valueOf(getShipmentCodCollectionCharges());

    case CREATED_AT:
      return Long.valueOf(getCreatedAt());

    case UPDATED_AT:
      return Long.valueOf(getUpdatedAt());

    case PACKAGE_DIMENSIONS:
      return getPackageDimensions();

    }
    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 LOGISTICS_TRANSACTION_ID:
      return isSetLogisticsTransactionId();
    case AIRWAY_BILL_NO:
      return isSetAirwayBillNo();
    case SHIPMENT_AMOUNT:
      return isSetShipmentAmount();
    case SHIPMENT_WEIGHT:
      return isSetShipmentWeight();
    case SHIPMENT_LOGSITICS_COST:
      return isSetShipmentLogsiticsCost();
    case SHIPMENT_COD_COLLECTION_CHARGES:
      return isSetShipmentCodCollectionCharges();
    case CREATED_AT:
      return isSetCreatedAt();
    case UPDATED_AT:
      return isSetUpdatedAt();
    case PACKAGE_DIMENSIONS:
      return isSetPackageDimensions();
    }
    throw new IllegalStateException();
  }

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

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

    boolean this_present_logisticsTransactionId = true && this.isSetLogisticsTransactionId();
    boolean that_present_logisticsTransactionId = true && that.isSetLogisticsTransactionId();
    if (this_present_logisticsTransactionId || that_present_logisticsTransactionId) {
      if (!(this_present_logisticsTransactionId && that_present_logisticsTransactionId))
        return false;
      if (!this.logisticsTransactionId.equals(that.logisticsTransactionId))
        return false;
    }

    boolean this_present_airwayBillNo = true && this.isSetAirwayBillNo();
    boolean that_present_airwayBillNo = true && that.isSetAirwayBillNo();
    if (this_present_airwayBillNo || that_present_airwayBillNo) {
      if (!(this_present_airwayBillNo && that_present_airwayBillNo))
        return false;
      if (!this.airwayBillNo.equals(that.airwayBillNo))
        return false;
    }

    boolean this_present_shipmentAmount = true;
    boolean that_present_shipmentAmount = true;
    if (this_present_shipmentAmount || that_present_shipmentAmount) {
      if (!(this_present_shipmentAmount && that_present_shipmentAmount))
        return false;
      if (this.shipmentAmount != that.shipmentAmount)
        return false;
    }

    boolean this_present_shipmentWeight = true;
    boolean that_present_shipmentWeight = true;
    if (this_present_shipmentWeight || that_present_shipmentWeight) {
      if (!(this_present_shipmentWeight && that_present_shipmentWeight))
        return false;
      if (this.shipmentWeight != that.shipmentWeight)
        return false;
    }

    boolean this_present_shipmentLogsiticsCost = true;
    boolean that_present_shipmentLogsiticsCost = true;
    if (this_present_shipmentLogsiticsCost || that_present_shipmentLogsiticsCost) {
      if (!(this_present_shipmentLogsiticsCost && that_present_shipmentLogsiticsCost))
        return false;
      if (this.shipmentLogsiticsCost != that.shipmentLogsiticsCost)
        return false;
    }

    boolean this_present_shipmentCodCollectionCharges = true;
    boolean that_present_shipmentCodCollectionCharges = true;
    if (this_present_shipmentCodCollectionCharges || that_present_shipmentCodCollectionCharges) {
      if (!(this_present_shipmentCodCollectionCharges && that_present_shipmentCodCollectionCharges))
        return false;
      if (this.shipmentCodCollectionCharges != that.shipmentCodCollectionCharges)
        return false;
    }

    boolean this_present_createdAt = true;
    boolean that_present_createdAt = true;
    if (this_present_createdAt || that_present_createdAt) {
      if (!(this_present_createdAt && that_present_createdAt))
        return false;
      if (this.createdAt != that.createdAt)
        return false;
    }

    boolean this_present_updatedAt = true;
    boolean that_present_updatedAt = true;
    if (this_present_updatedAt || that_present_updatedAt) {
      if (!(this_present_updatedAt && that_present_updatedAt))
        return false;
      if (this.updatedAt != that.updatedAt)
        return false;
    }

    boolean this_present_packageDimensions = true && this.isSetPackageDimensions();
    boolean that_present_packageDimensions = true && that.isSetPackageDimensions();
    if (this_present_packageDimensions || that_present_packageDimensions) {
      if (!(this_present_packageDimensions && that_present_packageDimensions))
        return false;
      if (!this.packageDimensions.equals(that.packageDimensions))
        return false;
    }

    return true;
  }

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

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

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

    lastComparison = Boolean.valueOf(isSetLogisticsTransactionId()).compareTo(typedOther.isSetLogisticsTransactionId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLogisticsTransactionId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.logisticsTransactionId, typedOther.logisticsTransactionId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetAirwayBillNo()).compareTo(typedOther.isSetAirwayBillNo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAirwayBillNo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airwayBillNo, typedOther.airwayBillNo);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShipmentAmount()).compareTo(typedOther.isSetShipmentAmount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShipmentAmount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shipmentAmount, typedOther.shipmentAmount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShipmentWeight()).compareTo(typedOther.isSetShipmentWeight());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShipmentWeight()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shipmentWeight, typedOther.shipmentWeight);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShipmentLogsiticsCost()).compareTo(typedOther.isSetShipmentLogsiticsCost());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShipmentLogsiticsCost()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shipmentLogsiticsCost, typedOther.shipmentLogsiticsCost);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShipmentCodCollectionCharges()).compareTo(typedOther.isSetShipmentCodCollectionCharges());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShipmentCodCollectionCharges()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shipmentCodCollectionCharges, typedOther.shipmentCodCollectionCharges);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCreatedAt()).compareTo(typedOther.isSetCreatedAt());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCreatedAt()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdAt, typedOther.createdAt);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUpdatedAt()).compareTo(typedOther.isSetUpdatedAt());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUpdatedAt()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatedAt, typedOther.updatedAt);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPackageDimensions()).compareTo(typedOther.isSetPackageDimensions());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPackageDimensions()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.packageDimensions, typedOther.packageDimensions);
      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: // LOGISTICS_TRANSACTION_ID
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.logisticsTransactionId = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 2: // AIRWAY_BILL_NO
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.airwayBillNo = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // SHIPMENT_AMOUNT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.shipmentAmount = iprot.readDouble();
            setShipmentAmountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // SHIPMENT_WEIGHT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.shipmentWeight = iprot.readDouble();
            setShipmentWeightIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // SHIPMENT_LOGSITICS_COST
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.shipmentLogsiticsCost = iprot.readDouble();
            setShipmentLogsiticsCostIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // SHIPMENT_COD_COLLECTION_CHARGES
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.shipmentCodCollectionCharges = iprot.readDouble();
            setShipmentCodCollectionChargesIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // CREATED_AT
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.createdAt = iprot.readI64();
            setCreatedAtIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // UPDATED_AT
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.updatedAt = iprot.readI64();
            setUpdatedAtIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // PACKAGE_DIMENSIONS
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.packageDimensions = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        default:
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
      }
      iprot.readFieldEnd();
    }
    iprot.readStructEnd();
    validate();
  }

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

    oprot.writeStructBegin(STRUCT_DESC);
    if (this.logisticsTransactionId != null) {
      oprot.writeFieldBegin(LOGISTICS_TRANSACTION_ID_FIELD_DESC);
      oprot.writeString(this.logisticsTransactionId);
      oprot.writeFieldEnd();
    }
    if (this.airwayBillNo != null) {
      oprot.writeFieldBegin(AIRWAY_BILL_NO_FIELD_DESC);
      oprot.writeString(this.airwayBillNo);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(SHIPMENT_AMOUNT_FIELD_DESC);
    oprot.writeDouble(this.shipmentAmount);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(SHIPMENT_WEIGHT_FIELD_DESC);
    oprot.writeDouble(this.shipmentWeight);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(SHIPMENT_LOGSITICS_COST_FIELD_DESC);
    oprot.writeDouble(this.shipmentLogsiticsCost);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(SHIPMENT_COD_COLLECTION_CHARGES_FIELD_DESC);
    oprot.writeDouble(this.shipmentCodCollectionCharges);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(CREATED_AT_FIELD_DESC);
    oprot.writeI64(this.createdAt);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(UPDATED_AT_FIELD_DESC);
    oprot.writeI64(this.updatedAt);
    oprot.writeFieldEnd();
    if (this.packageDimensions != null) {
      oprot.writeFieldBegin(PACKAGE_DIMENSIONS_FIELD_DESC);
      oprot.writeString(this.packageDimensions);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("logisticsTransactionId:");
    if (this.logisticsTransactionId == null) {
      sb.append("null");
    } else {
      sb.append(this.logisticsTransactionId);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("airwayBillNo:");
    if (this.airwayBillNo == null) {
      sb.append("null");
    } else {
      sb.append(this.airwayBillNo);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("shipmentAmount:");
    sb.append(this.shipmentAmount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("shipmentWeight:");
    sb.append(this.shipmentWeight);
    first = false;
    if (!first) sb.append(", ");
    sb.append("shipmentLogsiticsCost:");
    sb.append(this.shipmentLogsiticsCost);
    first = false;
    if (!first) sb.append(", ");
    sb.append("shipmentCodCollectionCharges:");
    sb.append(this.shipmentCodCollectionCharges);
    first = false;
    if (!first) sb.append(", ");
    sb.append("createdAt:");
    sb.append(this.createdAt);
    first = false;
    if (!first) sb.append(", ");
    sb.append("updatedAt:");
    sb.append(this.updatedAt);
    first = false;
    if (!first) sb.append(", ");
    sb.append("packageDimensions:");
    if (this.packageDimensions == null) {
      sb.append("null");
    } else {
      sb.append(this.packageDimensions);
    }
    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);
    }
  }

}