d4e1e70a1d83793e7928fffbd28c15406b24fdc9
[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   /** ITF (Interleaved Two of Five) 1D format. */
57   public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
58
59   /** RSS 14 */
60   public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
61
62   /** PDF417 format. */
63   public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
64   
65   /** RSS EXPANDED */
66   public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
67
68   private final String name;
69
70   private BarcodeFormat(String name) {
71     this.name = name;
72     VALUES.put(name, this);
73   }
74
75   public String getName() {
76     return name;
77   }
78
79   public String toString() {
80     return name;
81   }
82
83   public static BarcodeFormat valueOf(String name) {
84     if (name == null || name.length() == 0) {
85       throw new IllegalArgumentException();
86     }
87     BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
88     if (format == null) {
89       throw new IllegalArgumentException();
90     }
91     return format;
92   }
93
94 }