- return new Result(resultString, new ResultPoint[]{
- new GenericResultPoint((float) (startGuardRange[1] - startGuardRange[0]) / 2.0f, (float) rowNumber),
- new GenericResultPoint((float) (endRange[1] - endRange[0]) / 2.0f, (float) rowNumber)});
+ float left = (float) (startGuardRange[1] + startGuardRange[0]) / 2.0f;
+ float right = (float) (endRange[1] + endRange[0]) / 2.0f;
+ return new Result(resultString,
+ null, // no natural byte representation for these barcodes
+ new ResultPoint[]{
+ new GenericResultPoint(left, (float) rowNumber),
+ new GenericResultPoint(right, (float) rowNumber)},
+ getBarcodeFormat());
+ }
+
+ abstract BarcodeFormat getBarcodeFormat();
+
+ /**
+ * @return {@link #checkStandardUPCEANChecksum(String)}
+ */
+ boolean checkChecksum(String s) throws ReaderException {
+ return checkStandardUPCEANChecksum(s);