Fixed same ResultPoint bug in Code 128 and Code 39 reader; added convenient toString...
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 2 Apr 2008 13:40:29 +0000 (13:40 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 2 Apr 2008 13:40:29 +0000 (13:40 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@336 59b500cc-1b3d-0410-9834-0bbf25fbcc57

core/src/com/google/zxing/Result.java
core/src/com/google/zxing/common/GenericResultPoint.java
core/src/com/google/zxing/oned/Code128Reader.java
core/src/com/google/zxing/oned/Code39Reader.java

index a320673..3173af3 100644 (file)
@@ -35,6 +35,9 @@ public final class Result {
                 byte[] rawBytes,
                 ResultPoint[] resultPoints,
                 BarcodeFormat format) {
+    if (text == null && rawBytes == null) {
+      throw new IllegalArgumentException("Text and bytes are null");
+    }
     this.text = text;
     this.rawBytes = rawBytes;
     this.resultPoints = resultPoints;
@@ -87,4 +90,12 @@ public final class Result {
     resultMetadata.put(type, value);
   }
 
+  public String toString() {
+    if (text == null) {
+      return "[" + rawBytes.length + " bytes]";
+    } else {
+      return text;
+    }
+  }
+
 }
index 800f773..c72e7b2 100644 (file)
@@ -42,4 +42,14 @@ public final class GenericResultPoint implements ResultPoint {
     return posY;
   }
 
+  public String toString() {
+    StringBuffer result = new StringBuffer();
+    result.append('(');
+    result.append(posX);
+    result.append(',');
+    result.append(posY);
+    result.append(')');
+    return result.toString();
+  }
+
 }
\ No newline at end of file
index 46d1bd7..7a59bbd 100644 (file)
@@ -405,12 +405,14 @@ public final class Code128Reader extends AbstractOneDReader {
     }
 
     String resultString = result.toString();
+    float left = (float) (startPatternInfo[1] + startPatternInfo[0]) / 2.0f;
+    float right = (float) (nextStart + lastStart) / 2.0f;
     return new Result(
         resultString,
         null,
         new ResultPoint[]{
-            new GenericResultPoint((float) (startPatternInfo[1] - startPatternInfo[0]) / 2.0f, (float) rowNumber),
-            new GenericResultPoint((float) (nextStart - lastStart) / 2.0f, (float) rowNumber)},
+            new GenericResultPoint(left, (float) rowNumber),
+            new GenericResultPoint(right, (float) rowNumber)},
         BarcodeFormat.CODE_128);
 
   }
index 6ab9510..0d27ad7 100644 (file)
@@ -138,12 +138,14 @@ public final class Code39Reader extends AbstractOneDReader {
     if (extendedMode) {
       resultString = decodeExtended(resultString);
     }
+    float left = (float) (start[1] + start[0]) / 2.0f;
+    float right = (float) (nextStart + lastStart) / 2.0f;
     return new Result(
         resultString,
         null,
         new ResultPoint[]{
-            new GenericResultPoint((float) (start[1] - start[0]) / 2.0f, (float) rowNumber),
-            new GenericResultPoint((float) (nextStart - lastStart) / 2.0f, (float) rowNumber)},
+            new GenericResultPoint(left, (float) rowNumber),
+            new GenericResultPoint(right, (float) rowNumber)},
         BarcodeFormat.CODE_39);
 
   }