73e3cd0711e0667a5b451d27b60e4f21032551c1
[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 DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");
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   /** UPC/EAN extension format. Not a stand-alone format. */
51   public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");
52
53   /** Code 128 1D format. */
54   public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");
55
56   /** Code 39 1D format. */
57   public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");
58
59   /** Code 93 1D format. */
60   public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");
61
62   /** CODABAR 1D format. */
63   public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");
64
65   /** ITF (Interleaved Two of Five) 1D format. */
66   public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
67
68   /** RSS 14 */
69   public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
70
71   /** PDF417 format. */
72   public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
73
74   /** RSS EXPANDED */
75   public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
76
77   private final String name;
78
79   private BarcodeFormat(String name) {
80     this.name = name;
81     VALUES.put(name, this);
82   }
83
84   public String getName() {
85     return name;
86   }
87
88   public String toString() {
89     return name;
90   }
91
92   public static BarcodeFormat valueOf(String name) {
93     if (name == null || name.length() == 0) {
94       throw new IllegalArgumentException();
95     }
96     BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
97     if (format == null) {
98       throw new IllegalArgumentException();
99     }
100     return format;
101   }
102
103 }