Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

UPC.java

Go to the documentation of this file.
00001 package net.threebit.utils.sosc ; 
00002 
00008 public class UPC extends Validatable
00009 {
00017     public UPC(final String upc)
00018     {
00019         super(upc, "UPC");
00020     }
00021 
00030         public boolean equals(Object o)
00031     {
00032        if (!(o instanceof UPC))
00033        {
00034            return (false);
00035        }
00036        return (super.equals(o));
00037     }
00038 
00048     protected boolean checkDigits(final int[] digits)
00049     {
00050         int sumEven;
00051         int sumOdd;
00052         int sum;
00053 
00054         sumEven = 0;
00055         sumOdd = 0;
00056         sum = 0;
00057         
00058         for(int i = 0; i < (number.length() - 1); i++)
00059         {
00060                 if((i % 2) == 0)
00061             {
00062                 sumEven += Utils.add(digits[i]);
00063             }
00064             else
00065             {
00066                 sumOdd += digits[i];
00067             }
00068         }
00069         
00070         sumEven *= 3;
00071         sum = (sumEven + sumOdd);
00072         
00073         while ((sum % 10) != 0)
00074         {
00075             sum++;
00076         }
00077         
00078         if ((sum - (sumEven + sumOdd)) == digits[number.length() - 1])
00079         {
00080             return(true);
00081         }
00082         return (false);
00083     }
00084     
00092     public static boolean validate(String num)
00093     {
00094         return (new UPC(num).validate());
00095     }
00096       
00103     protected boolean checkSize()
00104     {
00105         return (12 == number.length());
00106     }
00107  }
00108 

Generated on Mon Jul 14 17:19:20 2003 for SOSC by doxygen1.2.15