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