001 /** 002 * This library is free software; you can redistribute it and/or modify it 003 * under the terms of the GNU Lesser General Public License (LGPL) as 004 * published by the Free Software Foundation; either version 3.0 of the 005 * License, or (at your option) any later version. 006 * 007 * This library is distributed in the hope that it will be useful, but 008 * WITHOUT ANY WARRANTY; without even the implied warranty of 009 * MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 * Lesser General Public License for more details. 011 */ 012 013 /** 014 * Title: JBarcodeBean 015 * Description: Barcode JavaBeans Component 016 * Copyright: Copyright (C) 2004 017 * Company: Dafydd Walters 018 */ 019 package net.sourceforge.jbarcodebean.model; 020 021 /** 022 * This class, which implements the {@link BarcodeStrategy} interface, 023 * knows how to encode the 024 * 2:1 (narrow) variant of the Codabar barcode type. 025 */ 026 public class Codabar_2to1 extends Codabar implements java.io.Serializable { 027 028 private static CharacterCode[] codes = { 029 new CharacterCode('0', new byte[] {1,1,1,1,1,2,2,1}, 0), 030 new CharacterCode('1', new byte[] {1,1,1,1,2,2,1,1}, 1), 031 new CharacterCode('2', new byte[] {1,1,1,2,1,1,2,1}, 2), 032 new CharacterCode('3', new byte[] {2,2,1,1,1,1,1,1}, 3), 033 new CharacterCode('4', new byte[] {1,1,2,1,1,2,1,1}, 4), 034 new CharacterCode('5', new byte[] {2,1,1,1,1,2,1,1}, 5), 035 new CharacterCode('6', new byte[] {1,2,1,1,1,1,2,1}, 6), 036 new CharacterCode('7', new byte[] {1,2,1,1,2,1,1,1}, 7), 037 new CharacterCode('8', new byte[] {1,2,2,1,1,1,1,1}, 8), 038 new CharacterCode('9', new byte[] {2,1,1,2,1,1,1,1}, 9), 039 new CharacterCode('-', new byte[] {1,1,1,2,2,1,1,1}, 10), 040 new CharacterCode('$', new byte[] {1,1,2,2,1,1,1,1}, 11), 041 new CharacterCode(':', new byte[] {2,1,1,1,2,1,2,1}, 12), 042 new CharacterCode('/', new byte[] {2,1,2,1,1,1,2,1}, 13), 043 new CharacterCode('.', new byte[] {2,1,2,1,2,1,1,1}, 14), 044 new CharacterCode('+', new byte[] {1,1,2,1,2,1,2,1}, 15), 045 new CharacterCode('A', new byte[] {1,1,2,2,1,2,1,1}, 16), // Start 046 new CharacterCode('B', new byte[] {1,2,1,2,1,1,2,1}, 17) // Stop 047 }; 048 049 /** 050 * This implementation of <tt>getCodes</tt> returns an array of 051 * {@link AbstractBarcodeStrategy.CharacterCode CharacterCode} objects 052 * for the narrow Codabar format. 053 */ 054 protected CharacterCode[] getCodes() { 055 return codes; 056 } 057 }