/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package com.jboss.dvd.seam; import java.io.Serializable; import javax.persistence.*; import org.jboss.seam.annotations.Name; import org.hibernate.validator.*; import org.metawidget.inspector.annotation.*; import org.metawidget.inspector.faces.*; @Entity @Name("customer") @DiscriminatorValue("customer") public class Customer extends User implements Serializable { private static final long serialVersionUID = 5699525147178760355L; public static String[] cctypes = {"MasterCard", "Visa", "Discover", "Amex", "Dell Preferred"}; String address1; String address2; String city; String state; String zip; String email; String phone; Integer creditCardType = 1; String creditCard = "000-0000-0000"; int ccMonth = 1; int ccYear = 2005; public Customer() { } @Column(name="ADDRESS1",length=50) @NotNull @UiComesAfter("lastName") public String getAddress1() { return address1; } public void setAddress1(String address1) { this.address1 = address1; } @Column(name="ADDRESS2",length=50) @NotNull @UiComesAfter("address1") public String getAddress2() { return address2; } public void setAddress2(String address2) { this.address2 = address2; } @Column(name="CITY",length=50) @NotNull @UiComesAfter("address2") public String getCity() { return city; } public void setCity(String city) { this.city = city; } @Column(name="STATE",length=2) @NotNull @Length(min=2,max=2) @UiComesAfter("city") public String getState() { return state; } public void setState(String state) { this.state = state; } @Column(name="ZIP", length=10) @Length(min=5, max=10) @Pattern(regex="[0-9]{5}(-[0-9]{4})?", message="not a valid zipcode") // {validator.zip} @NotNull @UiComesAfter("state") public String getZip() { return zip; } public void setZip(String zip) { this.zip = zip; } @Column(name="EMAIL",length=50) @Email @UiComesAfter("zip") public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Column(name="PHONE",length=50) @UiComesAfter("email") public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Column(name="CREDITCARDTYPE") @UiFacesLookup("#{editCustomer.creditCardTypes}") public Integer getCreditCardType() { return creditCardType; } public void setCreditCardType(Integer type) { this.creditCardType = type; } @Transient @UiHidden public String getCreditCardTypeString() { if (creditCardType<1 || creditCardType>cctypes.length) { return ""; } return cctypes[creditCardType-1]; } @Column(name="CC_NUM", length=50) public String getCreditCard() { return creditCard; } public void setCreditCard(String creditCard) { this.creditCard = creditCard; } @Column(name="CC_MONTH", length=50) @UiLookup( value = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }, labels = { "#{messages.mo_1}", "#{messages.mo_2}", "#{messages.mo_3}", "#{messages.mo_4}", "#{messages.mo_5}", "#{messages.mo_6}", "#{messages.mo_7}", "#{messages.mo_8}", "#{messages.mo_9}", "#{messages.mo_10}", "#{messages.mo_11}", "#{messages.mo_12}" } ) public int getCreditCardMonth() { return ccMonth; } public void setCreditCardMonth(int ccMonth) { this.ccMonth = ccMonth; } @Column(name="CC_YEAR", length=50) @UiLookup( { "2005", "2006", "2007", "2008", "2009", "2010" } ) public int getCreditCardYear() { return ccYear; } public void setCreditCardYear(int ccYear) { this.ccYear = ccYear; } @Transient @UiHidden public String getCreditCardExpiration() { return "" + ccMonth + "/" + ccYear; } @Override public String toString() { return "Customer#" + getId() + "(" + userName + ")"; } }