Add Code 93 support. Update tests to reflect new (better) number of successes.
[zxing.git] / core / src / com / google / zxing / BarcodeFormat.java
1 /*
2  * Copyright 2007 ZXing authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.google.zxing;
18
19 import java.util.Hashtable;
20
21 /**
22  * Enumerates barcode formats known to this package.
23  *
24  * @author Sean Owen
25  */
26 public final class BarcodeFormat {
27
28   // No, we can't use an enum here. J2ME doesn't support it.
29
30   private static final Hashtable VALUES = new Hashtable();
31
32   /** QR Code 2D barcode format. */
33   public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");
34
35   /** DataMatrix 2D barcode format. */
36   public static final BarcodeFormat DATAMATRIX = new BarcodeFormat("DATAMATRIX");
37
38   /** UPC-E 1D format. */
39   public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");
40
41   /** UPC-A 1D format. */
42   public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");
43
44   /** EAN-8 1D format. */
45   public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");
46
47   /** EAN-13 1D format. */
48   public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");
49
50   /** Code 128 1D format. */
51   public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");
52
53   /** Code 39 1D format. */
54   public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");
55
56   /** Code 93 1D format. */
57   public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");
58
59   /** ITF (Interleaved Two of Five) 1D format. */
60   public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
61
62   /** RSS 14 */
63   public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
64
65   /** PDF417 format. */
66   public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
67   
68   /** RSS EXPANDED */
69   public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
70
71   private final String name;
72
73   private BarcodeFormat(String name) {
74     this.name = name;
75     VALUES.put(name, this);
76   }
77
78   public String getName() {
79     return name;
80   }
81
82   public String toString() {
83     return name;
84   }
85
86   public static BarcodeFormat valueOf(String name) {
87     if (name == null || name.length() == 0) {
88       throw new IllegalArgumentException();
89     }
90     BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
91     if (format == null) {
92       throw new IllegalArgumentException();
93     }
94     return format;
95   }
96
97 }