Add basic Code 128, Code 39, ITF writers, per Erik
[zxing.git] / core / src / com / google / zxing / MultiFormatWriter.java
index a93d07a..3ec8979 100644 (file)
 package com.google.zxing;
 
 import com.google.zxing.common.ByteMatrix;
+import com.google.zxing.oned.Code128Writer;
+import com.google.zxing.oned.Code39Writer;
 import com.google.zxing.oned.EAN13Writer;
 import com.google.zxing.oned.EAN8Writer;
+import com.google.zxing.oned.ITFWriter;
 import com.google.zxing.qrcode.QRCodeWriter;
 
 import java.util.Hashtable;
@@ -40,16 +43,23 @@ public final class MultiFormatWriter implements Writer {
   public ByteMatrix encode(String contents, BarcodeFormat format, int width, int height,
       Hashtable hints) throws WriterException {
 
+    Writer writer;
     if (format == BarcodeFormat.EAN_8) {
-      return new EAN8Writer().encode(contents, format, width, height, hints);
+      writer = new EAN8Writer();
     } else if (format == BarcodeFormat.EAN_13) {
-      return new EAN13Writer().encode(contents, format, width, height, hints);
+      writer = new EAN13Writer();
     } else if (format == BarcodeFormat.QR_CODE) {
-      return new QRCodeWriter().encode(contents, format, width, height, hints);
-    }
-    else {
+      writer = new QRCodeWriter();
+    } else if (format == BarcodeFormat.CODE_39) {
+      writer = new Code39Writer();
+    } else if (format == BarcodeFormat.CODE_128) {
+      writer = new Code128Writer();
+    } else if (format == BarcodeFormat.ITF) {
+      writer = new ITFWriter();
+    } else {
       throw new IllegalArgumentException("No encoder available for format " + format);
     }
+    return writer.encode(contents, format, width, height, hints);
   }
 
 }