00001 package net.threebit.utils.sosc ;
00002
00007 public abstract class CreditCard extends Validatable {
00008
00017 protected CreditCard(final String num, final String typ) {
00018 super(num, typ);
00019 }
00020
00029 protected boolean checkDigits(final int[] digits) {
00030 int sumEven;
00031 int sumOdd;
00032 int sum;
00033
00034 sumEven = 0;
00035 sumOdd = 0;
00036 sum = 0;
00037
00038 for (int i = (number.length() - 2); i >= 0; i--) {
00043 if ((((number.length() - 2) - i) % 2) == 0) {
00044 sumEven += Utils.add(digits[i] * 2);
00045 }
00046 else {
00047 sumOdd += digits[i];
00048 }
00049 }
00050
00051 sum = sumEven + sumOdd;
00052
00053 while ((sum % 10) != 0) {
00054 sum++;
00055 }
00056
00057 if ((sum - (sumEven + sumOdd)) == digits[number.length() - 1]) {
00058 return(true);
00059 }
00060 return (false);
00061 }
00062 }