|
CreditCardPack | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--com.keyoti.creditCard.logic.CreditCard
Business layer Bean, holds credit card data and can perform checks on the details to verify their validity, such as
MOD10 checks on the card number, card type/number matches and simple date testing.
Not all fields are required. Only card number, type, name and expiry date are required to fulfil
isMinimumValid().
Events
Every time one of the minimum required fields (card number, type, name and expiry date) are changed,
isMinimumValid() is called to check their validity. If the credit card details
become invalid or valid a CreditCardEvent is fired.
CreditCard objects begin in an invalid details state, since the minimum required details are not defined.
When they are all defined and valid a CreditCardEvent is fired by calling detailsValid
in all registered listeners.
| Field Summary | |
static int |
BILLING_ADDRESS
Credit card field identifier |
protected String[] |
billingAddress
The billing address for this card, this is a 5 element array. |
static int |
CARD_NAME
Credit card field identifier |
static int |
CARD_NUMBER
Credit card field identifier |
static int |
CARD_TYPE
Credit card field identifier |
static int |
CARD_VERIFICATION_NUMBER
Credit card field identifier |
protected String |
cardName
The card owners name |
protected String |
cardNumber
The card number. |
protected CardType |
cardType
The card type |
protected String |
cardVerificationNumber
The card verification number (CVV2/CVC2/CID), which for Mastercard & Visa is a 3 digit number that appears on the back of the card, above the signature strip on the right. |
protected String |
comments
Any comments, this is a plain String field that may be used to record comments about this card. |
static int |
COMMENTS
Credit card field identifier |
static int |
EXPIRY_MONTH
Credit card field identifier |
static int |
EXPIRY_YEAR
Credit card field identifier |
protected Integer |
expiryMonth
The card expiry month (1->12) |
protected Integer |
expiryYear
The 2 digit card expiry year (yy) |
static int |
ISSUE_NUMBER
Credit card field identifier |
protected Integer |
issueNumber
The card issue number |
protected String |
issuer
The card issuer's (i.e. |
static int |
ISSUER
Credit card field identifier |
static int |
START_MONTH
Credit card field identifier |
static int |
START_YEAR
Credit card field identifier |
protected Integer |
startMonth
The card start month (1->12) |
protected Integer |
startYear
The 2 digit card start year (yy) |
| Constructor Summary | |
CreditCard()
Constructs a new CreditCard object. |
|
| Method Summary | |
void |
addCreditCardListener(CreditCardListener l)
Adds the supplied CreditCardListener. |
void |
addPropertyChangeListener(PropertyChangeListener l)
Adds the supplied PropertyChangeListener object to registry of objects to be notified of changes to: cardNumber, expiryMonth, expiryYear, startMonth, startYear, issueNumber, cardName & cardType properties. |
String[] |
getBillingAddress()
Gets the card billingAddress array |
String |
getCardName()
Gets the card owners name |
String |
getCardNumber()
Gets the credit card number. |
CardType |
getCardType()
Gets the card type. |
String |
getCardVerificationNumber()
Gets the Card Verification Number, this should not be stored in long term persistence. |
String |
getComments()
Gets the card comments |
CreditCardListener[] |
getCreditCardListeners()
Gets all CreditCardListeners as an array. |
Integer |
getExpiryMonth()
Gets the card expiry date month. |
Integer |
getExpiryYear()
Gets the card expiry date year. |
Integer |
getIssueNumber()
Gets the card issue number. |
String |
getIssuer()
Gets the card issuer's name |
Integer |
getStartMonth()
Gets the card start date month. |
Integer |
getStartYear()
Gets the card start date year. |
boolean |
isCardNameValid()
Determines if the card holders name is valid, this is a very simple method, that just checks if the card name field is longer than 0 chars and not null. |
boolean |
isCardNumberValid()
Determines if the card number is valid, according to a MOD10 check and character validity check. |
boolean |
isCardTypeValid()
Determines if the card type corresponds with the credit card number. |
boolean |
isCardVerificationNumberValid()
Determines if the card verification number is 3 or 4 digits long and only includes numeric characters. |
boolean |
isExpiryMonthValid()
Determines if the expiry month is valid, simply by checking that it is between 1 and 12 inclusive, if it is null, false is returned. |
boolean |
isExpiryYearValid()
Determines if the expiry year is valid , simply by checking that it is between 0 and 99 inclusive (since credit card expiry dates are 2 digits long), if it is null, false is returned. |
boolean |
isMinimumValid()
Convenience method, checks that card number, expiry date, type and card name are valid. |
boolean |
isStartMonthValid()
Determines if the start month is valid, simply by checking that it is between 1 and 12 inclusive, if it is null, false is returned. |
boolean |
isStartYearValid()
Determines if the start year is valid , simply by checking that it is between 0 and 99 inclusive (since credit card start dates are 2 digits long), if it is null, false is returned. |
void |
removeCreditCardListener(CreditCardListener l)
Removes the supplied CreditCardListener. |
void |
removePropertyChangeListener(PropertyChangeListener l)
Removes the supplied PropertyChangeListener from the registry of objects notified of property changes. |
void |
setBillingAddress(String[] billingAddress)
Sets the card billingAddress array. |
void |
setCardName(String cardName)
Sets the card owners name. |
void |
setCardNumber(String cardNumber)
Sets the card number. |
void |
setCardType(CardType cardType)
Sets the card type. |
void |
setCardVerificationNumber(String cvn)
Sets the Card Verification Number (CVN), this should not be stored in long term persistence. |
void |
setComments(String comments)
Sets the card comments. |
void |
setExpiryMonth(int expiryMonth)
Sets the card expiry date month, using setExpiryMonth(Integer). |
void |
setExpiryMonth(Integer expiryMonth)
Sets the card expiry date month. |
void |
setExpiryYear(int expiryYear)
Sets the card expiry date year, using setExpiryYear(Integer). |
void |
setExpiryYear(Integer expiryYear)
Sets the card expiry date year, because credit cards usually specify 2 digit year values this is mirrored here. |
void |
setIssueNumber(int issueNumber)
Sets the card issue number, using setIssueNumber(Integer). |
void |
setIssueNumber(Integer issueNumber)
Sets the card issue number. |
void |
setIssuer(String issuer)
Sets the card issuer's name. |
void |
setStartMonth(int startMonth)
Sets the card start date month, using setStartMonth(Integer). |
void |
setStartMonth(Integer startMonth)
Sets the card start date month. |
void |
setStartYear(int startYear)
Sets the card start date year, using setStartYear(Integer). |
void |
setStartYear(Integer startYear)
Sets the card start date year, because credit cards usually specify 2 digit year values this is mirrored here. |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
protected String cardNumber
protected Integer expiryMonth
protected Integer expiryYear
protected Integer startMonth
protected Integer startYear
protected Integer issueNumber
protected String cardName
protected CardType cardType
protected String cardVerificationNumber
protected String issuer
protected String comments
protected String[] billingAddress
billingAddress[0] = "StreetLine1";
billingAddress[1] = "StreetLine2";
billingAddress[2] = "City";
billingAddress[3] = "State/Province/County";
billingAddress[4] = "PostalCode";
billingAddress[5] = "Country";
public static transient int CARD_NAME
public static transient int CARD_NUMBER
public static transient int CARD_TYPE
public static transient int EXPIRY_MONTH
public static transient int EXPIRY_YEAR
public static transient int ISSUE_NUMBER
public static transient int START_MONTH
public static transient int START_YEAR
public static transient int CARD_VERIFICATION_NUMBER
public static transient int ISSUER
public static transient int COMMENTS
public static transient int BILLING_ADDRESS
| Constructor Detail |
public CreditCard()
| Method Detail |
public void addCreditCardListener(CreditCardListener l)
l - an object implementing CreditCardListenerl != nulll will be notified of CreditCard eventspublic void removeCreditCardListener(CreditCardListener l)
l - a CreditCardListener that should be excluded from future event broadcasts.l != nulll will not be notified of CreditCard eventspublic CreditCardListener[] getCreditCardListeners()
return == array of listenerspublic void addPropertyChangeListener(PropertyChangeListener l)
l - an object implementing the PropertyChangeListener interface, to be notified of property change events.public void removePropertyChangeListener(PropertyChangeListener l)
l - an object implementing the PropertyChangeListener interface, will not be notified of property change events in future.public String getCardNumber()
public void setCardNumber(String cardNumber)
cardNumber - the new card number String.cardNumber != nullgetCardNumber() == cardNumberpublic boolean isCardNumberValid()
return == LuhnChecker.isValid(getCardNumber())public String getCardName()
public void setCardName(String cardName)
cardName != nullgetCardName() == cardNamepublic boolean isCardNameValid()
return == getCardName().length() > 0public Integer getExpiryMonth()
public void setExpiryMonth(Integer expiryMonth)
expiryMonth != null AND expiryMonth >= 1 AND expiryMonth <= 12getExpiryMonth() == expiryMonth AND isExpiryMonthValid() == truepublic Integer getExpiryYear()
public void setExpiryYear(Integer expiryYear)
expiryYear != null AND expiryYear >= 0 AND expiryYear <= 99getExpiryYear() == expiryYear AND isExpiryYearValid() == true
public void setExpiryMonth(int expiryMonth)
throws IllegalArgumentException
setExpiryMonth(Integer)
public void setExpiryYear(int expiryYear)
throws IllegalArgumentException
setExpiryYear(Integer)public boolean isExpiryMonthValid()
return == (0 < getExpiryMonth() && getExpiryMonth() <= 12)public boolean isExpiryYearValid()
return == (0 <= getExpiryYear() && getExpiryYear <= 99)public Integer getStartMonth()
public void setStartMonth(Integer startMonth)
startMonth != null AND startMonth >= 1 AND startMonth <= 12getStartMonth() == startMonth AND isStartMonthValid() == truepublic Integer getStartYear()
public void setStartYear(Integer startYear)
startYear != null AND startYear >= 0 AND startYear <= 99getStartYear() == startYear AND isStartYearValid() == true
public void setStartMonth(int startMonth)
throws IllegalArgumentException
setStartMonth(Integer)
public void setStartYear(int startYear)
throws IllegalArgumentException
setStartYear(Integer)public boolean isStartMonthValid()
return == (0 < getStartMonth() && getStartMonth() <= 12)public boolean isStartYearValid()
return == (0 <= getStartYear() && getStartYear <= 99)public Integer getIssueNumber()
public void setIssueNumber(Integer issueNumber)
issueNumber != null AND issueNumber >=0 AND issueNumber <= 999getIssueNumber() == issueNumber
public void setIssueNumber(int issueNumber)
throws IllegalArgumentException
setIssueNumber(Integer)public CardType getCardType()
public void setCardType(CardType cardType)
cardType != nullgetCardType() == cardTypepublic boolean isCardTypeValid()
return == (true AND getCardNumber() matches patterns specified by getCardType()) OR (false)CardTypepublic String getCardVerificationNumber()
cardVerificationNumberpublic void setCardVerificationNumber(String cvn)
cvn - the card verification number String.cvn != null AND ((3 <= cvn.length() <= 4 AND cvn.equals(LuhnChecker.getDigitsOnly(cvn))) OR cvn == "" )getCardVerificationNumber() == cvncardVerificationNumberpublic boolean isCardVerificationNumberValid()
return == (true AND getCardVerificationNumber() != null AND 3 <= getCardVerificationNumber().length() <= 4 AND LuhnChecker.getDigitsOnly(getCardVerificationNumber()).equals(getCardVerificationNumber())) OR falsepublic String getIssuer()
public void setIssuer(String issuer)
issuer != nullgetIssuer() == issuerpublic String getComments()
public void setComments(String comments)
comments != nullgetComments() == commentspublic String[] getBillingAddress()
public void setBillingAddress(String[] billingAddress)
billingAddress != nullgetBillingAddress() == billingAddresspublic boolean isMinimumValid()
return == isCardNumberValid() && isExpiryMonthValid() && isExpiryYearValid() && isCardNameValid() && isCardTypeValid()
|
CreditCardPack | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||