| 211 | } |
| 212 | |
| 213 | public String gtin13() { |
| 214 | char[] values = faker.regexify("\\d{12}").toCharArray(); |
| 215 | int sum = 0; |
| 216 | for (int i = 0; i < values.length; i++) { |
| 217 | sum += Character.getNumericValue(values[i]) * GTIN_13_CHECK_DIGITS[i]; |
| 218 | } |
| 219 | int checkDigit = 10 - sum % 10; |
| 220 | if (checkDigit == 10) { |
| 221 | return new String(ArrayUtils.add(values, Character.forDigit(0, 10))); |
| 222 | } else { |
| 223 | return new String(ArrayUtils.add(values, Character.forDigit(checkDigit, 10))); |
| 224 | } |
| 225 | } |
| 226 | |
| 227 | private static final int[] GTIN_8_CHECK_DIGITS = { 3, 1, 3, 1, 3, 1, 3 }; |
| 228 | private static final int[] GTIN_13_CHECK_DIGITS = { 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3 }; |