1 /* 2 * $Id: ClassicBarcodeLogicHandler.java,v 1.3 2003/08/18 19:07:00 jmaerki Exp $ 3 * ============================================================================ 4 * The Krysalis Patchy Software License, Version 1.1_01 5 * Copyright (c) 2002-2003 Nicola Ken Barozzi. All rights reserved. 6 * 7 * This Licence is compatible with the BSD licence as described and 8 * approved by http://www.opensource.org/, and is based on the 9 * Apache Software Licence Version 1.1. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions and the following disclaimer. 17 * 18 * 2. Redistributions in binary form must reproduce the above copyright 19 * notice, this list of conditions and the following disclaimer in 20 * the documentation and/or other materials provided with the 21 * distribution. 22 * 23 * 3. The end-user documentation included with the redistribution, 24 * if any, must include the following acknowledgment: 25 * "This product includes software developed for project 26 * Krysalis (http://www.krysalis.org/)." 27 * Alternately, this acknowledgment may appear in the software itself, 28 * if and wherever such third-party acknowledgments normally appear. 29 * 30 * 4. The names "Krysalis" and "Nicola Ken Barozzi" and 31 * "Krysalis Barcode" must not be used to endorse or promote products 32 * derived from this software without prior written permission. For 33 * written permission, please contact nicolaken@krysalis.org. 34 * 35 * 5. Products derived from this software may not be called "Krysalis", 36 * "Krysalis Barcode", nor may "Krysalis" appear in their name, 37 * without prior written permission of Nicola Ken Barozzi. 38 * 39 * 6. This software may contain voluntary contributions made by many 40 * individuals, who decided to donate the code to this project in 41 * respect of this licence, and was originally created by 42 * Jeremias Maerki <jeremias@maerki.org>. 43 * 44 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 45 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 46 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 47 * DISCLAIMED. IN NO EVENT SHALL THE KRYSALIS PROJECT OR 48 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 49 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 50 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 51 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 52 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 53 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 54 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 55 * SUCH DAMAGE. 56 * ==================================================================== 57 */ 58 package org.krysalis.barcode; 59 60 /** 61 * This interface defines methods to build classic 1D barcodes. 62 * 63 * @author Jeremias Maerki 64 */ 65 public interface ClassicBarcodeLogicHandler extends BarcodeLogicHandler { 66 67 /** 68 * This method is called when a new group of bars is about to start. A 69 * group of bars may be generated by a character (or group of characters) 70 * of the message to be encoded or by a start/end control group. 71 * @param type a constant indicating the type of group. The meaning of the 72 * integer values is implementation-dependant. 73 * @param submsg In case of parts of the message to be encoded this 74 * parameter holds the character or characters being encoded. 75 */ 76 void startBarGroup(BarGroup type, String submsg); 77 78 /** 79 * This method indicates a new bar to be painted. 80 * @param black True if the bar is to be painted black, False if 81 * white/transparent 82 * @param weight logical weight of the bar. Concrete implementations are 83 * free to define this to be height or width. For example, 1 may be interpreted 84 * as "narrow bar", 2 as "wide bar" for certain barcodes. While other barcodes 85 * might define 1 to be "short bar", 2 as "tall bar". 86 * Also, this should not be confused with the effective painting width, or the 87 * actual physical size of the bar. 88 */ 89 void addBar(boolean black, int weight); 90 91 /** 92 * This method indicates the end of a previously started bar group. The 93 * method calls to startBarGroup and endBarGroup form a stack. 94 */ 95 void endBarGroup(); 96 97 } 98