1 /** 2 * This library is free software; you can redistribute it and/or modify it 3 * under the terms of the GNU Lesser General Public License (LGPL) as 4 * published by the Free Software Foundation; either version 3.0 of the 5 * License, or (at your option) any later version. 6 * 7 * This library is distributed in the hope that it will be useful, but 8 * WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 * Lesser General Public License for more details. 11 */ 12 13 /** 14 * Title: JBarcodeBean 15 * Description: Barcode JavaBeans Component 16 * Copyright: Copyright (C) 2004 17 * Company: Dafydd Walters 18 */ 19 package net.sourceforge.jbarcodebean.model; 20 21 import net.sourceforge.jbarcodebean.BarcodeException; 22 import net.sourceforge.jbarcodebean.EncodedBarcode; 23 24 /** 25 * Interface which defines the barcode strategy for any 26 * given type of barcode. Classes that implement this interface exist for each 27 * of the barcode types such as Code39, Interleaved25, etc. 28 */ 29 public interface BarcodeStrategy { 30 31 /** 32 * When returned by {@link #requiresChecksum}, indicates that this type of 33 * barcode does not support a checksum. 34 */ 35 public static final int NO_CHECKSUM = 0; 36 37 /** 38 * When returned by {@link #requiresChecksum}, indicates that this type of 39 * barcode always has a checksum. 40 */ 41 public static final int MANDATORY_CHECKSUM = 1; 42 43 /** 44 * When returned by {@link #requiresChecksum}, indicates that this type of 45 * barcode may have an optional checksum. 46 */ 47 public static final int OPTIONAL_CHECKSUM = 2; 48 49 /** 50 * Subclasses implement this method to encode some text into a barcode. 51 * 52 * @param text The raw text to encode. 53 * @param checked <tt>true</tt> if a checksum is to be calculated, <tt>false</tt> if not. 54 * 55 * @return The fully encoded barcode, represented as bars and spaces, wrapped 56 * in a {@link EncodedBarcode} object. 57 * 58 * @throws BarcodeException Typically caused by passing in 59 * a String containing illegal characters (characters that cannot be encoded in 60 * this type of barcode). 61 */ 62 public EncodedBarcode encode(String text, boolean checked) throws BarcodeException; 63 64 /** 65 * Subclasses implement this method to determine whether this type of barcode 66 * has a mandatory, optional or no checksum. Returns one of the constants 67 * defined in the interface. 68 */ 69 public int requiresChecksum(); 70 }