Committed C# port from Mohamad
[zxing.git] / csharp / oned / UPCAReader.cs
1 /*\r
2 * Licensed under the Apache License, Version 2.0 (the "License");\r
3 * you may not use this file except in compliance with the License.\r
4 * You may obtain a copy of the License at\r
5 *\r
6 *      http://www.apache.org/licenses/LICENSE-2.0\r
7 *\r
8 * Unless required by applicable law or agreed to in writing, software\r
9 * distributed under the License is distributed on an "AS IS" BASIS,\r
10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
11 * See the License for the specific language governing permissions and\r
12 * limitations under the License.\r
13 */\r
14 namespace com.google.zxing.oned\r
15 {\r
16     /**\r
17      * @author dswitkin@google.com (Daniel Switkin)\r
18      * @author Sean Owen\r
19      */\r
20     using System.Text;\r
21     using com.google.zxing.common;\r
22 \r
23     public sealed class UPCAReader : UPCEANReader\r
24     {\r
25           private UPCEANReader ean13Reader = new EAN13Reader();\r
26 \r
27           public Result decodeRow(int rowNumber, BitArray row, int[] startGuardRange) {\r
28             return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, startGuardRange));\r
29           }\r
30 \r
31           public Result decodeRow(int rowNumber, BitArray row, System.Collections.Hashtable hints) {\r
32             return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, hints));\r
33           }\r
34 \r
35           public Result decode(MonochromeBitmapSource image) {\r
36             return maybeReturnResult(ean13Reader.decode(image));\r
37           }\r
38 \r
39           public Result decode(MonochromeBitmapSource image, System.Collections.Hashtable hints) {\r
40             return maybeReturnResult(ean13Reader.decode(image, hints));\r
41           }\r
42 \r
43           private static Result maybeReturnResult(Result result) {\r
44             string text = result.getText();\r
45             if (text[0] == '0') {\r
46               return new Result(text.Substring(1), null, result.getResultPoints(), BarcodeFormat.UPC_A);\r
47             } else {\r
48               throw new ReaderException();\r
49             }\r
50           }\r
51     \r
52     \r
53     }\r
54 }