package br.com.caelum.restbucks.model;
import static br.com.caelum.restfulie.Restfulie.resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
@XStreamAlias("order")
public class Order {
private String id;
private Location location;
private List<Item> items;
private String status;
private Payment payment;
@XStreamAlias("created-at")
private String createdAt;
@XStreamAlias("updated-at")
private String updatedAt;
@XStreamOmitField
private double cost;
public enum Location {
takeAway, drinkIn
}
public Order(String status, List<Item> items, Location location) {
this.status = status;
this.items = items;
this.location = location;
}
public Order() {
this.items = new ArrayList<Item>();
}
public void setLocation(Location location) {
this.location = location;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Payment getPayment() {
return payment;
}
public void add(Item item) {
this.items.add(item);
}
public String getSelfUri() {
return resource(this).getRelation("self").getHref();
}
public Payment pay(Payment payment) {
return resource(this).getRelation("payment").accessAndRetrieve(payment);
}
public void cancel() {
resource(this).getRelation("cancel").access();
}
public double getCost() {
return cost;
}
}