package com.sun.jersey.samples.hypermedia.server.model; import com.sun.jersey.samples.hypermedia.server.model.adapters.AddressAdapter; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** * Customer class. * * @author Santiago.PericasGeertsen@sun.com */ @XmlRootElement @XmlType(propOrder={ "id", "name", "addresses", "cardNumber", "status" }) public class Customer { @XmlType(name="CustomerState") public enum Status { ACTIVE, SUSPENDED }; private String id; private String name; private List<Address> addresses; private String cardNumber; private Status status; public void setAddresses(List<Address> addresses) { this.addresses = addresses; } @XmlJavaTypeAdapter(AddressAdapter.class) public List<Address> getAddresses() { if (addresses == null) { addresses = new ArrayList<Address>(); } return addresses; } public Address getAddressById(String id) { if (addresses != null) { for (Address a : addresses) { if (a.getId().equals(id)) return a; } } return null; } public String getCardNumber() { return cardNumber; } public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Status getStatus() { return status; } public void setStatus(Status status) { this.status = status; } }