package com.sun.jersey.samples.hypermedia.server.model;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* Product class.
*
* @author Santiago.PericasGeertsen@sun.com
*/
@XmlRootElement
@XmlType(propOrder={ "id", "description", "quantity", "status" })
public class Product {
@XmlType(name="ProductState")
public enum Status { IN_STOCK, OUT_OF_STOCK, BACKORDERED, DISCONTINUED };
private String id;
private String description;
private int quantity;
private Status status;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
status = (quantity > 0) ? Status.IN_STOCK : Status.OUT_OF_STOCK;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
if (status == Status.IN_STOCK) {
assert quantity > 0;
} else if (status == Status.OUT_OF_STOCK) {
assert quantity == 0;
}
this.status = status;
}
}