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     *  This file was contributed to JBarcodeBean by Jose Gaonac'h.
013     *  Copyright (C) 2004 Jose Gaonac'h.
014     */
015    
016    package net.sourceforge.jbarcodebean.model;
017    
018    /**
019     * EAN-8 barcode implementation.
020     * If less than 7 digits are supplied, the symbol is invalid
021     * Only the first 7 digits are considered: the checksum (8th digit) is
022     * always generated (MANDATORY_CHECKSUM).
023     *
024     * @author  Jose Gaonac'h
025     */
026    public class Ean8 extends Ean13 {
027        
028        protected String preprocess(String text) {
029            if (text.length() < 7) return text;
030            text = text.substring(0, 7);
031    
032            computeChecksum(text, 7);
033            char[] t = (text.substring(0, 4) + "C" + text.substring(4)).toCharArray();
034            return new String(t);
035        }    
036    
037        protected String getBarcodeLabelText(String text) {
038            if (text.length() < 7) return text;
039            return text.substring(0, 7) + checkSum;
040        }
041    }