ECOM/ProductBean
Jump to navigation
Jump to search
package ecom.ejb;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.*;
@Entity
@Table(name = "PRODUCT")
public final class ProductBean implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long sku;
@Column(nullable = false)
private String name;
private String description;
@Column(nullable = false)
private BigDecimal price;
// MIME type TODO Bean Validation
private String mediaType;
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "MEDIACONTENT")
private byte[] media;
public ProductBean(long sku, String name, String description,
BigDecimal price, String mediaType, byte[] media) {
this.sku = sku;
this.name = name;
this.description = description;
this.price = price;
this.mediaType = mediaType;
this.media = media;
}
public long getSku() {
return sku;
}
public void setSku(long sku) {
this.sku = sku;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public byte[] getMedia() {
return media;
}
public void setMedia(byte[] media) {
this.media = media;
}
public String getMediaType() {
return mediaType;
}
public void setMediaType(String mediaType) {
this.mediaType = mediaType;
}
public BigDecimal getPrice() {
return new BigDecimal(price.doubleValue());
}
public void setPrice(BigDecimal price) {
this.price = new BigDecimal(price.doubleValue());
}
@Override
public String toString() {
// JSON format
return "{" + "'type'='Product'," + "'sku'=" + sku + ", 'name'='" + name
+ '\'' + ", 'description'='" + description + '\''
+ ", 'mediaType'='" + mediaType + '\'' + ", 'mediaSize'='"
+ ((media != null) ? media.length : 0) + '\'' + ", 'price'="
+ price + '}';
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof ProductBean))
return false;
ProductBean product = (ProductBean) o;
if (sku != product.sku)
return false;
if (name != null ? !name.equals(product.name) : product.name != null)
return false;
return true;
}
}