*/
package org.mxchange.jproduct.model.product;
+import java.math.BigDecimal;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Objects;
* Gross price of product
*/
@Basic (optional = false)
- @Column (name = "product_gross_price", nullable = false)
- private Float productGrossPrice;
+ @Column (name = "product_gross_price", nullable = false, precision = 10, scale = 4)
+ private BigDecimal productGrossPrice;
/**
* I18n key of product
/**
* Net price of product
*/
- @Column (name = "product_net_price")
- private Float productNetPrice;
+ @Column (name = "product_net_price", precision = 10, scale = 4)
+ private BigDecimal productNetPrice;
/**
* Number of product
/**
* Tax rate (0-1, by 1=100%)
*/
- @Column (name = "product_tax_rate")
- private Float productTaxRate;
+ @Column (name = "product_tax_rate", precision = 3, scale = 1)
+ private BigDecimal productTaxRate;
/**
* Amount of this product (for example 1 for 1 liter)
*/
@Basic (optional = false)
- @Column (name = "product_unit_amount", nullable = false)
- private Float productUnitAmount;
+ @Column (name = "product_unit_amount", nullable = false, precision = 10, scale = 2)
+ private BigDecimal productUnitAmount;
/**
* Unit type (for example liter)
* @throws IllegalArgumentException If a parameter is empty (string) or out
* of bounds
*/
- public GenericProduct (final String productI18nKey, final Float productGrossPrice, final String productCurrencyCode, final Category productCategory, final Boolean productAvailability, final Float productUnitAmount, final String productUnitI18nKey) {
+ public GenericProduct (final String productI18nKey, final BigDecimal productGrossPrice, final String productCurrencyCode, final Category productCategory, final Boolean productAvailability, final BigDecimal productUnitAmount , final String productUnitI18nKey) {
// Call other constructor first
this();
} else if (null == productGrossPrice) {
// Throw it again
throw new NullPointerException("productGrossPrice is null"); //NOI18N
- } else if (productGrossPrice < 0) {
+ } else if (productGrossPrice.longValue() < 0) {
// Throw IAE
throw new IllegalArgumentException(MessageFormat.format("productGrossPrice={0} is invalid. Do not enter discounts as products.", productGrossPrice)); //NOI18N
} else if (null == productI18nKey) {
} else if (null == productUnitAmount) {
// Throw it again
throw new NullPointerException("productUnitAmount is null"); //NOI18N
- } else if (productUnitAmount < 0) {
+ } else if (productUnitAmount.longValue() < 0) {
// Throw IAE
throw new IllegalArgumentException(MessageFormat.format("productUnitAmount={0} is invalid. Do not enter discounts as products.", productUnitAmount)); //NOI18N
} else if (null == productUnitI18nKey) {
final Product product = (Product) object;
- if (!Objects.equals(this.getProductId(), product.getProductId())) {
+ if (!Objects.equals(this.getProductGrossPrice(), product.getProductGrossPrice())) {
+ return false;
+ } else if (!Objects.equals(this.getProductId(), product.getProductId())) {
return false;
} else if (!Objects.equals(this.getProductI18nKey(), product.getProductI18nKey())) {
return false;
}
@Override
- public Float getProductGrossPrice () {
+ public BigDecimal getProductGrossPrice () {
return this.productGrossPrice;
}
@Override
- public void setProductGrossPrice (final Float productGrossPrice) {
+ public void setProductGrossPrice (final BigDecimal productGrossPrice) {
this.productGrossPrice = productGrossPrice;
}
}
@Override
- public Float getProductNetPrice () {
+ public BigDecimal getProductNetPrice () {
return this.productNetPrice;
}
@Override
- public void setProductNetPrice (final Float productNetPrice) {
+ public void setProductNetPrice (final BigDecimal productNetPrice) {
this.productNetPrice = productNetPrice;
}
}
@Override
- public Float getProductTaxRate () {
+ public BigDecimal getProductTaxRate () {
return this.productTaxRate;
}
@Override
- public void setProductTaxRate (final Float productTaxRate) {
+ public void setProductTaxRate (final BigDecimal productTaxRate) {
this.productTaxRate = productTaxRate;
}
@Override
- public Float getProductUnitAmount () {
+ public BigDecimal getProductUnitAmount () {
return this.productUnitAmount;
}
@Override
- public void setProductUnitAmount (final Float productUnitAmount) {
+ public void setProductUnitAmount (final BigDecimal productUnitAmount) {
this.productUnitAmount = productUnitAmount;
}
public int hashCode () {
int hash = 7;
+ hash = 23 * hash + Objects.hashCode(this.getProductGrossPrice());
hash = 23 * hash + Objects.hashCode(this.getProductId());
hash = 23 * hash + Objects.hashCode(this.getProductI18nKey());
hash = 23 * hash + Objects.hashCode(this.getProductAgeGroup());
package org.mxchange.jproduct.model.product;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
import org.mxchange.jproduct.model.category.Category;
* <p>
* @return Product's net price
*/
- Float getProductNetPrice ();
+ BigDecimal getProductNetPrice ();
/**
* Setter for product's net price
* <p>
* @param productNetPrice Product's net price
*/
- void setProductNetPrice (final Float productNetPrice);
+ void setProductNetPrice (final BigDecimal productNetPrice);
/**
* Getter for product's tax rate
* <p>
* @return Product's tax rate
*/
- Float getProductTaxRate ();
+ BigDecimal getProductTaxRate ();
/**
* Setter for product's tax rate
* <p>
* @param productTaxRate Product's tax rate
*/
- void setProductTaxRate (final Float productTaxRate);
+ void setProductTaxRate (final BigDecimal productTaxRate);
/**
* Getter for product's gross price
* <p>
* @return Product's gross price
*/
- Float getProductGrossPrice ();
+ BigDecimal getProductGrossPrice ();
/**
* Setter for product's gross price
* <p>
* @param productGrossPrice Product's gross price
*/
- void setProductGrossPrice (final Float productGrossPrice);
+ void setProductGrossPrice (final BigDecimal productGrossPrice);
/**
* Getter for currency code like EUR or USD
* <p>
* @return Product's unit amount
*/
- Float getProductUnitAmount ();
+ BigDecimal getProductUnitAmount ();
/**
* Setter for product's unit amount
* <p>
* @param productUnitAmount Product's unit amount
*/
- void setProductUnitAmount (final Float productUnitAmount);
+ void setProductUnitAmount (final BigDecimal productUnitAmount);
/**
* Getter for product's i18n key