1 22 package org.jboss.test.cmp2.commerce; 23 24 25 public class Card implements java.io.Serializable { 26 public static final int VISA = 0; 27 public static final int AMERICAN_EXPRESS = 1; 28 public static final int MASTER_CARD = 2; 29 public static final int DISCOVER = 3; 30 31 private int type; 32 private FormalName cardHolder; 33 private String cardNumber; 34 private int billingZip; 35 36 public Card() { 37 } 38 39 public FormalName getCardHolder() { 40 return cardHolder; 41 } 42 43 public void setCardHolder(FormalName name) { 44 this.cardHolder = name; 45 } 46 47 public int getBillingZip() { 48 return billingZip; 49 } 50 51 public void setBillingZip(int zip) { 52 this.billingZip = zip; 53 } 54 55 public String getCardNumber() { 56 return cardNumber; 57 } 58 59 public void setCardNumber(String num) { 60 this.cardNumber = num; 61 } 62 63 public int getType() { 64 return type; 65 } 66 67 public void setType(int type) { 68 if(type != VISA && 69 type != AMERICAN_EXPRESS && 70 type != MASTER_CARD && 71 type != DISCOVER) { 72 throw new IllegalArgumentException ("Unknown card type: "+type); 73 } 74 this.type = type; 75 } 76 77 public boolean equals(Object obj) { 78 if(obj instanceof Card) { 79 Card c = (Card)obj; 80 return 81 equal(c.cardNumber, cardNumber) && 82 equal(c.cardHolder, cardHolder) && 83 c.type == type && 84 c.billingZip == billingZip; 85 } 86 return false; 87 } 88 89 private boolean equal(Object a, Object b) { 90 return (a==null && b==null) || (a!=null && a.equals(b)); 91 } 92 93 public String toString() { 94 return cardNumber; 95 } 96 } 97 | Popular Tags |