public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Product)) {
return false;
}
Product other = (Product) obj;
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.category == null && other.getCategory() == null) ||
(this.category != null &&
this.category.equals(other.getCategory()))) &&
((this.description == null && other.getDescription() == null) ||
(this.description != null &&
this.description.equals(other.getDescription()))) &&
((this.ean == null && other.getEan() == null) ||
(this.ean != null &&
this.ean.equals(other.getEan()))) &&
((this.id == null && other.getId() == null) ||
(this.id != null &&
this.id.equals(other.getId()))) &&
((this.imageUrl == null && other.getImageUrl() == null) ||
(this.imageUrl != null &&
this.imageUrl.equals(other.getImageUrl()))) &&
this.listPrice == other.getListPrice() &&
((this.name == null && other.getName() == null) ||
(this.name != null &&
this.name.equals(other.getName()))) &&
((this.number == null && other.getNumber() == null) ||
(this.number != null &&
this.number.equals(other.getNumber()))) &&
this.purchasePrice == other.getPurchasePrice() &&
((this.tax == null && other.getTax() == null) ||
(this.tax != null &&
this.tax.equals(other.getTax())));
__equalsCalc = null;
return _equals;
}