/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using System.Collections; namespace com.google.zxing { /// The general exception class throw when something goes wrong during decoding of a barcode. /// This includes, but is not limited to, failing checksums / error correction algorithms, being /// unable to locate finder timing patterns, and so on. /// /// /// srowen@google.com (Sean Owen) /// //[Serializable] public sealed class Result { private String text; private sbyte[] rawBytes; private ResultPoint[] resultPoints; private BarcodeFormat format; private Hashtable resultMetadata; public Result(String text, sbyte[] rawBytes, ResultPoint[] resultPoints, BarcodeFormat format) { if (text == null && rawBytes == null) { throw new ArgumentException("Text and bytes are null"); } this.text = text; this.rawBytes = rawBytes; this.resultPoints = resultPoints; this.format = format; this.resultMetadata = null; } /** * @return raw text encoded by the barcode, if applicable, otherwise null */ public String getText() { return text; } /** * @return raw bytes encoded by the barcode, if applicable, otherwise null */ public sbyte[] getRawBytes() { return rawBytes; } /** * @return points related to the barcode in the image. These are typically points * identifying finder patterns or the corners of the barcode. The exact meaning is * specific to the type of barcode that was decoded. */ public ResultPoint[] getResultPoints() { return resultPoints; } /** * @return {@link BarcodeFormat} representing the format of the barcode that was recognized and decoded */ public BarcodeFormat getBarcodeFormat() { return format; } /** * @return {@link Hashtable} mapping {@link ResultMetadataType} keys to values. May be null. * This contains optional metadata about what was detected about the barcode, like orientation. */ public Hashtable getResultMetadata() { return resultMetadata; } public void putMetadata(ResultMetadataType type, Object value) { if (resultMetadata == null) { resultMetadata = new Hashtable(3); } resultMetadata.Add(type, value); } public String toString() { if (text == null) { return "[" + rawBytes.Length + " bytes]"; } else { return text; } } } }