www.pudn.com > BarCodeTest.rar > Barcode.java, change:2007-11-23,size:67145b


// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-11-23 16:17:22 
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version! 
// Decompiler options: packimports(3)  
// Source File Name:   Barcode.java 
 
package com.bokai.barcodes; 
 
import com.bokai.drawing.*; 
import java.awt.*; 
import java.awt.geom.AffineTransform; 
import java.awt.image.MemoryImageSource; 
import java.io.*; 
import java.util.Enumeration; 
import java.util.NoSuchElementException; 
 
// Referenced classes of package com.bokai.barcodes: 
//            BarcodeExtraTextPosition, BarcodeFileLicense, BarcodeLicense, BarcodeNotSupportedException,  
//            BarcodePainter, BarcodeSpec, BarcodeSymbol, BarcodeType,  
//            C2of5, CheckCharShowMode, Codabar, Code11,  
//            Code11Check, Code11DoubleCheck, Code128A, Code128Auto,  
//            Code128B, Code128C, Code39, Code39Check,  
//            Code39CheckExtended, Code39Extended, Code93, Code93Extended,  
//            EAN128A, EAN128Auto, EAN128B, EAN128C,  
//            EAN128CCheck10, EAN128CCheck10AI2, EAN128CCheck10AI3, EAN128CCheck10AI4,  
//            EAN13, EAN13_2, EAN13_5, EAN14,  
//            EAN8, EAN8_2, EAN8_5, ISBN,  
//            ISBN_5, ISSN, ISSN_2, ITF,  
//            ITF14, ITFMod10, ITFMod10Wt12, ITFMod10Wt21,  
//            Identcode, ImageEncoder, InvalidAddOnDataException, InvalidDataException,  
//            JpgEncoder, Leitcode, MSI, MsiCheck10,  
//            MsiCheck1010, MsiCheck11, MsiCheck1110, Planet,  
//            PngEncoder, Postnet, RM4SCCNoCheck, RoyalMail,  
//            SSCC18, Telepen, TelepenNumeric, UPCA,  
//            UPCA_2, UPCA_5, UPCE, UPCE_2,  
//            UPCE_5, BarEnumerator, Bar, Bars,  
//            CharDef 
 
public class Barcode 
{ 
    class BarEnumerator1 
        implements BarEnumerator 
    { 
 
        public boolean nextBar(Bar bar) 
        { 
            int i = _symbol.getStyle(); 
            if(_bEnumStart) 
            { 
                _bEnumStart = false; 
                _more = _bcenum.nextBars(_bars, _charDefBuffer); 
                int l = _bars.getCharDef().BCGETNUMSTRIPE(); 
                _iBarInd = l - 1; 
                _nmWth = 0; 
            } else 
            { 
                if(!_more) 
                    return false; 
                if(_iBarInd == -1) 
                { 
                    _more = _bcenum.nextBars(_bars, _charDefBuffer); 
                    if(!_more) 
                        return false; 
                    int i1 = _bars.getCharDef().BCGETNUMSTRIPE(); 
                    _iBarInd = i1 - 1; 
                    _nmWth = 0; 
                } 
            } 
            do 
            { 
                int l1 = 0; 
                int k = -1; 
                int i2 = 0; 
                for(int k1 = _iBarInd; k1 >= 0; k1--) 
                { 
                    int j = _bars.getCharDef().BCGETSTRIPE(k1); 
                    if(CharDef.BCSTRIPEISBAR(j)) 
                    { 
                        l1 = CharDef.BCSTRIPEWTHIND(j); 
                        if(k == -1) 
                            k = _nmWth; 
                        if((i & 0x10000) != 0) 
                            _nmWth += _anmBarWidth[0]; 
                        else 
                            _nmWth += _anmBarWidth[l1]; 
                        if(k1 == 0) 
                            i2 = _nmWth - k; 
                    } else 
                    { 
                        if(k != -1) 
                            i2 = _nmWth - k; 
                        if((i & 0x10000) != 0) 
                            _nmWth += _anmSpaceWidth[0]; 
                        else 
                            _nmWth += _anmSpaceWidth[CharDef.BCSTRIPEWTHIND(j)]; 
                    } 
                    if(i2 > 0) 
                    { 
                        int j2 = _bars.getStyle(); 
                        if((i & 0x10000) != 0) 
                            if(getBarcodeType() == 22 || getBarcodeType() == 46) 
                            { 
                                if(l1 == 1) 
                                    j2 |= 0x10; 
                            } else 
                            if(getBarcodeType() == 31 || getBarcodeType() == 56) 
                                if(l1 == 1) 
                                    j2 |= 0x20; 
                                else 
                                if(l1 == 2) 
                                    j2 |= 0x40; 
                                else 
                                if(l1 == 3) 
                                    j2 |= 0x10; 
                        bar.setAll((_bars.getOffset() + k) * _iModuleWidth, i2 * _iModuleWidth, j2); 
                        _iBarInd = k1 - 1; 
                        return true; 
                    } 
                } 
 
                _more = _bcenum.nextBars(_bars, _charDefBuffer); 
                if(!_more) 
                    return false; 
                int j1 = _bars.getCharDef().BCGETNUMSTRIPE(); 
                _iBarInd = j1 - 1; 
                _nmWth = 0; 
            } while(true); 
        } 
 
        int _iModuleWidth; 
        boolean _bEnumStart; 
        int _iBarInd; 
        int _nmWth; 
        Bars _bars; 
        CharDef _charDefBuffer; 
        boolean _more; 
        BarcodeSymbol.BarCharEnumerator _bcenum; 
        int _anmBarWidth[]; 
        int _anmSpaceWidth[]; 
 
        BarEnumerator1(int i) 
        { 
            _iModuleWidth = i; 
            _more = false; 
            _bEnumStart = true; 
            _bars = new Bars(); 
            _charDefBuffer = new CharDef(); 
            _bcenum = _symbol.enumerateBars(); 
            _anmBarWidth = new int[5]; 
            _anmSpaceWidth = new int[5]; 
            _symbol.getBarExts(_anmBarWidth, 5); 
            _symbol.getSpaceExts(_anmSpaceWidth, 5); 
        } 
    } 
 
    public static class BarcodeTypeEnumerator 
        implements Enumeration 
    { 
 
        public boolean hasMoreElements() 
        { 
            return _current < 57; 
        } 
 
        public Object nextElement() 
            throws NoSuchElementException 
        { 
            if(_current >= 57) 
                throw new NoSuchElementException("BarcodeTypeEnumerator"); 
            else 
                return Barcode._barcodeTypes[_current++]; 
        } 
 
        int _current; 
 
        BarcodeTypeEnumerator() 
        { 
            _current = 0; 
        } 
    } 
 
 
    public Barcode() 
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, BarcodeNotSupportedException 
    { 
        this(6, 0); 
    } 
 
    public Barcode(int i) 
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, BarcodeNotSupportedException 
    { 
        this(i, 0); 
    } 
 
    public Barcode(int i, int j) 
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, BarcodeNotSupportedException 
    { 
        _extraTextPrefix = ""; 
        _defaultFont = new SimpleFont("SansSerif", 0, 11); 
        _style = j; 
        _symbol = null; 
        if(_static_invalidLicenseShortText != null) 
            _invalidLicenseShortText = _static_invalidLicenseShortText; 
        else 
            _invalidLicenseShortText = _license.getInvalidLicenseShortText(); 
        _extraTextPrefix = _license.getBarcodeExtraText(); 
        _bDataInvalid = false; 
        _bAddOnDataInvalid = false; 
        _invalidDataAction = 3; 
        _throwDataError = false; 
        _font = _defaultFont; 
        _orientation = 0; 
        _textAlign = 1; 
        _addOnTextAlign = 0; 
        _horzAlign = 0; 
        _vertAlign = 0; 
        _stretchText = true; 
        _uniBarHeight = false; 
        _showCode39StartStop = true; 
        _upcSmallFont = true; 
        _figureTransparent = false; 
        _retainAspectRatio = false; 
        _clrBack = SimpleColor.white; 
        _clrFore = SimpleColor.black; 
        _bPixelAlign = true; 
        _checkCharShowMode = 0; 
        _extraText = _extraTextPrefix; 
        _extraTextPosition = -1; 
        changeBarcodeType(i); 
    } 
 
    public static String ImageFormatToMimeType(int i) 
    { 
        if(i == 1) 
            return "image/png"; 
        if(i == 3) 
            return "image/jpeg"; 
        else 
            return "image/png"; 
    } 
 
    private SimpleDimension calcSimpleTextSize(SimpleGraphics simplegraphics, String s, SimpleFont simplefont) 
    { 
        if(simplefont != null) 
            simplegraphics.setFont(simplefont); 
        SimpleDimension simpledimension = BarcodePainter.drawMultilineAlignedChars(simplegraphics, s.toCharArray(), 0, s.length(), 0, 0, simplegraphics.getFontMetrics(), 0, true); 
        return simpledimension; 
    } 
 
    private SimpleDimension calcTextSize(Graphics g, String s, SimpleFont simplefont) 
    { 
        SimpleGraphics simplegraphics = new SimpleGraphics(g); 
        if(simplefont != null) 
            simplegraphics.setFont(simplefont); 
        SimpleDimension simpledimension = BarcodePainter.drawMultilineAlignedChars(simplegraphics, s.toCharArray(), 0, s.length(), 0, 0, simplegraphics.getFontMetrics(), 0, true); 
        return simpledimension; 
    } 
 
    void changeBarcodeType(int i) 
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, BarcodeNotSupportedException 
    { 
        if(_symbol != null && _symbol.getBarcodeType() == i) 
            return; 
        int j; 
        for(j = 0; j < _barcodeTypes.length; j++) 
            if(i == _barcodeTypes[j].getType()) 
                break; 
 
        if(j >= _barcodeTypes.length) 
        { 
            throw new BarcodeNotSupportedException(i); 
        } else 
        { 
            _symbol = new BarcodeSymbol((BarcodeSpec)_barcodeTypes[j].getSpecClass().newInstance()); 
            return; 
        } 
    } 
 
    static Class _mthclass$(String s) 
    { 
        try 
        { 
            return Class.forName(s); 
        } 
        catch(ClassNotFoundException classnotfoundexception) 
        { 
            throw new NoClassDefFoundError(classnotfoundexception.getMessage()); 
        } 
    } 
 
    public void draw(SimpleGraphics simplegraphics, SimpleRectangle simplerectangle) 
    { 
        draw(simplegraphics, simplerectangle, getDrawingAttributes(), getBackSimpleColor()); 
    } 
 
    public void draw(SimpleGraphics simplegraphics, SimpleRectangle simplerectangle, long l, SimpleColor simplecolor) 
    { 
        draw(simplegraphics, simplerectangle, l, simplecolor, null); 
    } 
 
    public void draw(SimpleGraphics simplegraphics, SimpleRectangle simplerectangle, long l, SimpleColor simplecolor, String s) 
    { 
        int i = simplerectangle.width; 
        int j = simplerectangle.height; 
        if(s != null && (i == 0 || j == 0)) 
        { 
            SimpleDimension simpledimension = calcSimpleTextSize(simplegraphics, s, null); 
            if(i == 0) 
                i = simpledimension.width; 
            if(j == 0) 
                j = simpledimension.height; 
            simplerectangle.setSize(i, j); 
        } 
        drawHelper(simplegraphics, simplerectangle, l, simplecolor, s); 
    } 
 
    public void draw(SimpleGraphics simplegraphics, Rectangle rectangle, long l, Color color) 
    { 
        draw(simplegraphics, new SimpleRectangle(rectangle), l, new SimpleColor(color)); 
    } 
 
    public void draw(Graphics g, Rectangle rectangle) 
    { 
        draw(g, rectangle, getDrawingAttributes(), getBackColor()); 
    } 
 
    public void draw(Graphics g, Rectangle rectangle, long l, Color color) 
    { 
        draw(g, rectangle, l, color, null); 
    } 
 
    public void draw(Graphics g, Rectangle rectangle, long l, Color color, String s) 
    { 
        int i = rectangle.width; 
        int j = rectangle.height; 
        if(s != null && (i == 0 || j == 0)) 
        { 
            SimpleDimension simpledimension = calcTextSize(g, s, null); 
            if(i == 0) 
                i = simpledimension.width; 
            if(j == 0) 
                j = simpledimension.height; 
            rectangle.setSize(i, j); 
        } 
        drawHelper(new SimpleGraphics(g), new SimpleRectangle(rectangle), l, new SimpleColor(color), s); 
    } 
 
    public void drawHelper(SimpleGraphics simplegraphics, SimpleRectangle simplerectangle, long l, SimpleColor simplecolor, String s) 
    { 
        SimpleColor simplecolor1 = simplegraphics.getColor(); 
        SimpleFont simplefont = simplegraphics.getFont(); 
        String s1 = null; 
        if(_invalidLicenseShortText != null) 
            s1 = _invalidLicenseShortText; 
        else 
        if((_bDataInvalid || _bAddOnDataInvalid) && _invalidDataAction == 3) 
            s1 = "Invalid Data"; 
        if(s1 != null) 
        { 
            simplegraphics.setColor(simplecolor); 
            simplegraphics.drawRect(simplerectangle.x, simplerectangle.y, simplerectangle.width, simplerectangle.height); 
            simplegraphics.setColor(simplecolor1); 
            BarcodePainter.drawAlignedChars(simplegraphics, s1.toCharArray(), 0, s1.length(), simplerectangle.x + simplerectangle.width / 2, simplerectangle.y + simplerectangle.height / 2, simplegraphics.getFontMetrics(), 68); 
        } else 
        if(s != null) 
        { 
            simplegraphics.setColor(simplecolor); 
            simplegraphics.drawRect(simplerectangle.x, simplerectangle.y, simplerectangle.width, simplerectangle.height); 
            simplegraphics.setColor(simplecolor1); 
            BarcodePainter.drawMultilineAlignedChars(simplegraphics, s.toCharArray(), 0, s.length(), simplerectangle.x + simplerectangle.width / 2, simplerectangle.y + simplerectangle.height / 2, simplegraphics.getFontMetrics(), 68, false); 
        } else 
        { 
            BarcodePainter barcodepainter = new BarcodePainter(this, simplegraphics, simplerectangle, l, simplecolor); 
            barcodepainter.draw(); 
        } 
    } 
 
    public static Enumeration enumerateBarcodeTypes() 
    { 
        return new BarcodeTypeEnumerator(); 
    } 
 
    public BarEnumerator enumerateBars(int i) 
    { 
        return new BarEnumerator1(i); 
    } 
 
    public char[] getActualAddOnData() 
    { 
        return _symbol.getAddOnText(1, 0L); 
    } 
 
    public char[] getActualData() 
    { 
        return _symbol.getText(1, 0L); 
    } 
 
    public Rectangle getActualRect() 
    { 
        return _rcAll.getRectangle(); 
    } 
 
    public SimpleRectangle getActualSimpleRect() 
    { 
        return _rcAll; 
    } 
 
    public char[] getAddOnCaption() 
    { 
        return _acAddOnMsg; 
    } 
 
    public char[] getAddOnData() 
    { 
        return _acOrigAddOnData; 
    } 
 
    public Rectangle getAddOnRect() 
    { 
        return _rcAddOn.getRectangle(); 
    } 
 
    public SimpleRectangle getAddOnSimpleRect() 
    { 
        return _rcAddOn; 
    } 
 
    public int getAddOnTextAlign() 
    { 
        return _addOnTextAlign; 
    } 
 
    public Color getBackColor() 
    { 
        return _clrBack.getColor(); 
    } 
 
    public SimpleColor getBackSimpleColor() 
    { 
        return _clrBack; 
    } 
 
    public int getBarTypeCount() 
    { 
        return _symbol.getNumBarTypes(); 
    } 
 
    public int getBarTypeWidth(int i) 
    { 
        return _symbol.getBarExt(i); 
    } 
 
    public static int getBarcodeDefDrawFlags(int i) 
    { 
        if(i == 22 || i == 46 || i == 31 || i == 56) 
            return 32; 
        return i != 6 && i != 4 ? 0 : 0x80000; 
    } 
 
    public static int getBarcodeDrawFlagsMask(int i) 
    { 
        int j = 0x800809d0; 
        j = ~j; 
        switch(i) 
        { 
        case 4: // '\004' 
        case 6: // '\006' 
            j |= 0x80000; 
            break; 
 
        case 3: // '\003' 
        case 9: // '\t' 
            j |= 0x810; 
            break; 
 
        case 1: // '\001' 
        case 2: // '\002' 
        case 39: // '\'' 
        case 41: // ')' 
            j |= 0x10; 
            break; 
 
        case 14: // '\016' 
        case 15: // '\017' 
        case 16: // '\020' 
        case 17: // '\021' 
            j |= 0x9d0; 
            j |= 0x80000000; 
            break; 
 
        case 10: // '\n' 
        case 11: // '\013' 
        case 12: // '\f' 
        case 13: // '\r' 
        case 40: // '(' 
        case 42: // '*' 
            j |= 0x1d0; 
            j |= 0x80000000; 
            break; 
 
        case 22: // '\026' 
        case 31: // '\037' 
        case 46: // '.' 
        case 56: // '8' 
            j &= 0xfffbf9df; 
            break; 
        } 
        return j; 
    } 
 
    public int getBarcodeType() 
    { 
        return _symbol.getBarcodeType(); 
    } 
 
    public char[] getCaption() 
    { 
        return _acMsg; 
    } 
 
    public int getCheckCharShowMode() 
    { 
        return _checkCharShowMode; 
    } 
 
    public char[] getCheckChars() 
    { 
        return _symbol.getCheckchars(); 
    } 
 
    public int getClearArea(int i) 
    { 
        return _symbol.getMargin(i); 
    } 
 
    public int getClearAreaBottom() 
    { 
        return getClearArea(4); 
    } 
 
    public int getClearAreaLeft() 
    { 
        return getClearArea(1); 
    } 
 
    public int getClearAreaMiddle() 
    { 
        return getClearArea(5); 
    } 
 
    public int getClearAreaRight() 
    { 
        return getClearArea(3); 
    } 
 
    public int getClearAreaTop() 
    { 
        return getClearArea(2); 
    } 
 
    public char[] getData() 
    { 
        return _acOrigData; 
    } 
 
    public int getDefDrawFlags() 
    { 
        return getBarcodeDefDrawFlags(getBarcodeType()); 
    } 
 
    public char[] getDefaultCaption() 
    { 
        return getDefaultCaption(getDrawingAttributes()); 
    } 
 
    char[] getDefaultCaption(long l) 
    { 
        return _symbol.getText(2, l); 
    } 
 
    public char[] getDisplayData() 
    { 
        return getFullData(); 
    } 
 
    public long getDrawFlagsFromProperties() 
    { 
        return getDrawingAttributes(); 
    } 
 
    public int getDrawFlagsMask() 
    { 
        return getBarcodeDrawFlagsMask(getBarcodeType()); 
    } 
 
    long getDrawingAttributes() 
    { 
        long l = 0L; 
        if(_checkCharShowMode != 0) 
            if(_checkCharShowMode == 1) 
                l |= 0x2000000L; 
            else 
            if(_checkCharShowMode == 2) 
                l |= 0x4000000L; 
        if(_textAlign == 0) 
            l |= 512L; 
        else 
        if(_textAlign == 1) 
            l |= 1024L; 
        else 
        if(_textAlign == 2) 
            l |= 32L; 
        if(_addOnTextAlign == 0) 
            l |= 128L; 
        else 
        if(_addOnTextAlign == 1) 
            l |= 256L; 
        else 
        if(_addOnTextAlign == 2) 
            l |= 64L; 
        if(!_bPixelAlign) 
            l |= 0x20000L; 
        if(!_stretchText) 
            l |= 0x40000L; 
        if(_horzAlign == 0) 
            l |= 1L; 
        else 
        if(_horzAlign == 1) 
            l |= 4L; 
        else 
        if(_horzAlign == 2) 
            l |= 2L; 
        if(_vertAlign == 0) 
            l |= 8192L; 
        else 
        if(_vertAlign == 1) 
            l |= 32768L; 
        else 
        if(_vertAlign == 2) 
            l |= 16384L; 
        if(_uniBarHeight) 
            l |= 16L; 
        if(_showCode39StartStop) 
            l |= 0x80000L; 
        if(!_upcSmallFont) 
            l |= 2048L; 
        if(_retainAspectRatio) 
            l |= 4096L; 
        l |= 0x400000L; 
        if((_bDataInvalid || _bAddOnDataInvalid) && _invalidDataAction == 0) 
            l |= 0x1000000L; 
        else 
        if((_bDataInvalid || _bAddOnDataInvalid) && _invalidDataAction == 1) 
            l |= 0x800000L; 
        return l; 
    } 
 
    public String getExtraText() 
    { 
        if(_license.getLicenseType() == 2 || _license.getLicenseType() == 5) 
        { 
            if(_extraText.startsWith(_extraTextPrefix)) 
            { 
                String s = _extraText.substring(_extraTextPrefix.length()); 
                if(s.startsWith("\r\n")) 
                    return s.substring(2); 
                if(s.startsWith("\n")) 
                    return s.substring(1); 
                else 
                    return s; 
            } else 
            { 
                return _extraText; 
            } 
        } else 
        { 
            return _extraText; 
        } 
    } 
 
    public int getExtraTextPosition() 
    { 
        return _extraTextPosition != -1 ? _extraTextPosition : 0; 
    } 
 
    public boolean getFigureTransparent() 
    { 
        return _figureTransparent; 
    } 
 
    public Font getFont() 
    { 
        return _font.realizeFont(); 
    } 
 
    public Color getForeColor() 
    { 
        return _clrFore.getColor(); 
    } 
 
    public SimpleColor getForeSimpleColor() 
    { 
        return _clrFore; 
    } 
 
    public char[] getFullData() 
    { 
        return _symbol.getText(0, 0L); 
    } 
 
    public int getHorzAlign() 
    { 
        return _horzAlign; 
    } 
 
    public int getInterCharSpace() 
    { 
        return _symbol.getInterCharExt(); 
    } 
 
    public SimpleFont getInternalDefaultFont() 
    { 
        return _defaultFont; 
    } 
 
    public SimpleFont getInternalFont() 
    { 
        return _font; 
    } 
 
    public int getInvalidDataAction() 
    { 
        return _invalidDataAction; 
    } 
 
    public String getLicenseInfo(String s) 
    { 
        return "Barcode/JSP V4.0 (c) 1999-2005 Bokai Corporation\nhttp://www.bokai.com/\n\n" + _license.getLicenseText(s); 
    } 
 
    public Rectangle getMainBarRect() 
    { 
        return _rcMainBar.getRectangle(); 
    } 
 
    public SimpleRectangle getMainBarSimpleRect() 
    { 
        return _rcMainBar; 
    } 
 
    public int getModuleCount() 
    { 
        return _symbol.getModuleNum(); 
    } 
 
    public int getOrientation() 
    { 
        return _orientation; 
    } 
 
    int getOrientationDegrees() 
    { 
        char c = '\0'; 
        switch(_orientation) 
        { 
        case 0: // '\0' 
            c = '\0'; 
            break; 
 
        case 1: // '\001' 
            c = 'Z'; 
            break; 
 
        case 2: // '\002' 
            c = '\264'; 
            break; 
 
        case 3: // '\003' 
            c = '\u010E'; 
            break; 
        } 
        return c; 
    } 
 
    public char[] getOriginalAddOnData(boolean flag) 
    { 
        if(_acOrigAddOnData != null) 
            return _acOrigAddOnData; 
        if(flag) 
            return _symbol.getAddOnText(1, 0L); 
        else 
            return null; 
    } 
 
    public char[] getOriginalData(boolean flag) 
    { 
        if(_acOrigData != null) 
            return _acOrigData; 
        if(flag) 
            return _symbol.getOriginalText(); 
        else 
            return null; 
    } 
 
    public boolean getRetainAspectRatio() 
    { 
        return _retainAspectRatio; 
    } 
 
    public boolean getShowCode39StartStop() 
    { 
        return _showCode39StartStop; 
    } 
 
    public SimpleFont getSimpleFont() 
    { 
        return _font; 
    } 
 
    public int getSpaceTypeCount() 
    { 
        return _symbol.getNumSpaceTypes(); 
    } 
 
    public int getSpaceTypeWidth(int i) 
    { 
        return _symbol.getSpaceExt(i); 
    } 
 
    public boolean getStretchText() 
    { 
        return _stretchText; 
    } 
 
    BarcodeSymbol getSymbol() 
    { 
        return _symbol; 
    } 
 
    public int getTextAlign() 
    { 
        return _textAlign; 
    } 
 
    public boolean getThrowDataError() 
    { 
        return _throwDataError; 
    } 
 
    public boolean getTrialExpired() 
    { 
        return _license.getLicenseType() == 3; 
    } 
 
    public boolean getUniBarHeight() 
    { 
        return _uniBarHeight; 
    } 
 
    public boolean getUpcSmallFont() 
    { 
        return _upcSmallFont; 
    } 
 
    public int getVertAlign() 
    { 
        return _vertAlign; 
    } 
 
    public boolean isAddOnDataInvalid() 
    { 
        return _bAddOnDataInvalid; 
    } 
 
    public boolean isDataInvalid() 
    { 
        return _bDataInvalid; 
    } 
 
    public void makeImage(int i, int j, int k, boolean flag, int l, String s, OutputStream outputstream) 
        throws Exception 
    { 
        Dimension dimension = new Dimension(0, 0); 
        makeImage(i, j, k, flag, l, s, outputstream, dimension); 
    } 
 
    public void makeImage(int i, int j, int k, boolean flag, int l, String s, OutputStream outputstream,  
            Dimension dimension) 
        throws Exception 
    { 
        Object obj; 
        if(i == 3) 
            obj = new JpgEncoder(); 
        else 
            obj = new PngEncoder(); 
        Frame frame = new Frame(); 
        frame.addNotify(); 
        Image image = prepareImage(frame, j, k, flag, l, ((ImageEncoder) (obj)).use2ColorSource(), s); 
        if(dimension != null) 
        { 
            dimension.width = image.getWidth(null); 
            dimension.height = image.getHeight(null); 
        } 
        ((ImageEncoder) (obj)).encode(image, _clrFore.getColor(), _clrBack.getColor(), _figureTransparent, outputstream); 
        frame.dispose(); 
    } 
 
    public void makeImage(int i, int j, int k, boolean flag, OutputStream outputstream) 
        throws Exception 
    { 
        Dimension dimension = new Dimension(0, 0); 
        makeImage(i, j, k, flag, 1, null, outputstream, dimension); 
    } 
 
    public Image makeImage(int i, int j, boolean flag, int k, String s) 
        throws Exception 
    { 
        Frame frame = new Frame(); 
        frame.addNotify(); 
        Image image = prepareImage(frame, i, j, flag, k, true, s); 
        frame.dispose(); 
        return image; 
    } 
 
    public void makeSimpleImage(int i, int j, int k, boolean flag, int l, String s, OutputStream outputstream) 
        throws Exception 
    { 
        makeSimpleImage(i, j, k, flag, l, s, outputstream, null); 
    } 
 
    public void makeSimpleImage(int i, int j, int k, boolean flag, int l, String s, OutputStream outputstream,  
            SimpleDimension simpledimension) 
        throws Exception 
    { 
        Object obj; 
        if(i == 3) 
            obj = new JpgEncoder(); 
        else 
            obj = new PngEncoder(); 
        SimpleDimension simpledimension1 = new SimpleDimension(0, 0); 
        byte abyte0[] = prepareSimpleImage(j, k, flag, l, ((ImageEncoder) (obj)).use2ColorSource(), s, simpledimension1); 
        ((ImageEncoder) (obj)).encode(abyte0, simpledimension1.width, simpledimension1.height, _clrFore, _clrBack, _figureTransparent, outputstream); 
        if(simpledimension != null) 
        { 
            simpledimension.width = simpledimension1.width; 
            simpledimension.height = simpledimension1.height; 
        } 
    } 
 
    public void makeSimpleImage(int i, int j, int k, boolean flag, OutputStream outputstream) 
        throws Exception 
    { 
        makeSimpleImage(i, j, k, flag, 1, null, outputstream, null); 
    } 
 
    public Image makeSimpleImage(int i, int j, boolean flag, int k, String s) 
        throws Exception 
    { 
        SimpleDimension simpledimension = new SimpleDimension(0, 0); 
        int ai[] = makeSimpleImagePixels(i, j, flag, k, s, simpledimension); 
        Image image = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(simpledimension.width, simpledimension.height, ai, 0, simpledimension.width)); 
        return image; 
    } 
 
    public int[] makeSimpleImagePixels(int i, int j, boolean flag, int k, String s, SimpleDimension simpledimension) 
        throws Exception 
    { 
        byte abyte0[] = prepareSimpleImage(i, j, flag, k, true, s, simpledimension); 
        int ai[] = simpleBitmapToPixelArray(abyte0, simpledimension.width, simpledimension.height, 0xff000000 | _clrFore.getRGB(), _clrBack.getRGB() | (_figureTransparent ? 0 : 0xff000000)); 
        return ai; 
    } 
 
    Image prepareImage(Frame frame, int i, int j, boolean flag, int k, boolean flag1, String s) 
    { 
        SimpleColor simplecolor = flag1 ? SimpleColor.black : _clrFore; 
        SimpleColor simplecolor1 = flag1 ? SimpleColor.white : _clrBack; 
        i *= k; 
        j *= k; 
        int j1 = getModuleCount(); 
        if(flag) 
        { 
            switch(_orientation) 
            { 
            case 1: // '\001' 
            case 3: // '\003' 
                int k1 = i; 
                i = j * j1; 
                j = k1; 
                break; 
 
            case 0: // '\0' 
            case 2: // '\002' 
            default: 
                i *= j1; 
                break; 
            } 
        } else 
        { 
            switch(_orientation) 
            { 
            case 1: // '\001' 
            case 3: // '\003' 
                int l1 = i; 
                i = j; 
                j = l1; 
                break; 
            } 
            if(i != 0 && j1 != 0) 
            { 
                i = (i + j1 / 2) / j1; 
                if(i == 0) 
                    i = 1; 
                i *= j1; 
            } 
        } 
        long l2 = getDrawingAttributes(); 
        l2 &= 0xfffffffffffdffffL; 
        SimpleFont simplefont = k != 1 ? _font.clone(k) : _font; 
        if(s != null && (i == 0 || j == 0)) 
        { 
            Image image = frame.createImage(1, 1); 
            Graphics g = image.getGraphics(); 
            SimpleDimension simpledimension = calcTextSize(g, s, simplefont); 
            g.dispose(); 
            if(i == 0) 
                i = simpledimension.width; 
            if(j == 0) 
                j = simpledimension.height; 
        } 
        int l; 
        int i1; 
        if(_orientation == 0 || _orientation == 2) 
        { 
            l = i; 
            i1 = j; 
        } else 
        { 
            l = j; 
            i1 = i; 
        } 
        Image image1 = frame.createImage(l, i1); 
        Graphics g1 = image1.getGraphics(); 
        SimpleGraphics simplegraphics = new SimpleGraphics(g1); 
        if(_orientation != 0) 
            simplegraphics.setTransform(AffineTransform.getRotateInstance((-3.1415926535897931D * (double)_orientation) / 2D, l / 2, i1 / 2)); 
        SimpleRectangle simplerectangle; 
        if(_orientation == 0 || _orientation == 2) 
            simplerectangle = new SimpleRectangle(0, 0, i, j); 
        else 
            simplerectangle = new SimpleRectangle(-(i - j) / 2, (i - j) / 2, i, j); 
        simplegraphics.setFont(simplefont); 
        simplegraphics.setColor(simplecolor); 
        draw(simplegraphics, simplerectangle, l2, simplecolor1, s); 
        simplegraphics.dispose(); 
        return image1; 
    } 
 
    private byte[] prepareSimpleImage(int i, int j, boolean flag, int k, boolean flag1, String s, SimpleDimension simpledimension) 
    { 
        flag1 = true; 
        i *= k; 
        j *= k; 
        SimpleColor simplecolor = flag1 ? SimpleColor.black : _clrFore; 
        SimpleColor simplecolor1 = flag1 ? SimpleColor.white : _clrBack; 
        int j1 = getModuleCount(); 
        if(flag) 
        { 
            switch(_orientation) 
            { 
            case 1: // '\001' 
            case 3: // '\003' 
                int k1 = i; 
                i = j * j1; 
                j = k1; 
                break; 
 
            case 0: // '\0' 
            case 2: // '\002' 
            default: 
                i *= j1; 
                break; 
            } 
        } else 
        { 
            switch(_orientation) 
            { 
            case 1: // '\001' 
            case 3: // '\003' 
                int l1 = i; 
                i = j; 
                j = l1; 
                break; 
            } 
            if(i != 0 && j1 != 0) 
            { 
                i = (i + j1 / 2) / j1; 
                if(i == 0) 
                    i = 1; 
                i *= j1; 
            } 
        } 
        long l2 = getDrawingAttributes(); 
        l2 &= 0xfffffffffffdffffL; 
        SimpleFont simplefont = k != 1 ? _font.clone(k) : _font; 
        if(s != null && (i == 0 || j == 0)) 
        { 
            SimpleGraphics simplegraphics = SimpleGraphics.createInMemoryGraphics(1, 1, true); 
            SimpleDimension simpledimension1 = calcSimpleTextSize(simplegraphics, s, simplefont); 
            simplegraphics.dispose(); 
            if(i == 0) 
                i = simpledimension1.width; 
            if(j == 0) 
                j = simpledimension1.height; 
        } 
        SimpleGraphics simplegraphics1 = SimpleGraphics.createInMemoryGraphics(i, j, flag1); 
        simplegraphics1.setFont(simplefont); 
        simplegraphics1.setColor(simplecolor); 
        SimpleRectangle simplerectangle = new SimpleRectangle(0, 0, i, j); 
        draw(simplegraphics1, simplerectangle, l2, simplecolor1, s); 
        byte abyte0[] = simplegraphics1.detachBitmapBytes(); 
        simplegraphics1.dispose(); 
        if(_orientation != 0) 
            abyte0 = SimpleGraphics.createRotatedBitmap(abyte0, i, j, getOrientationDegrees()); 
        int l; 
        int i1; 
        if(_orientation == 0 || _orientation == 2) 
        { 
            l = i; 
            i1 = j; 
        } else 
        { 
            l = j; 
            i1 = i; 
        } 
        simpledimension.width = l; 
        simpledimension.height = i1; 
        return abyte0; 
    } 
 
    public void saveImage(int i, int j, int k, boolean flag, int l, String s, String s1) 
        throws Exception 
    { 
        File file = new File(s1); 
        FileOutputStream fileoutputstream = new FileOutputStream(file); 
        Object obj; 
        if(i == 3) 
            obj = new JpgEncoder(); 
        else 
            obj = new PngEncoder(); 
        Frame frame = new Frame(); 
        frame.addNotify(); 
        Image image = prepareImage(frame, j, k, flag, l, ((ImageEncoder) (obj)).use2ColorSource(), s); 
        ((ImageEncoder) (obj)).encode(image, _clrFore.getColor(), _clrBack.getColor(), _figureTransparent, fileoutputstream); 
        fileoutputstream.close(); 
        frame.dispose(); 
    } 
 
    public void saveImage(int i, int j, int k, boolean flag, String s) 
        throws Exception 
    { 
        saveImage(i, j, k, flag, null, s); 
    } 
 
    public void saveImage(int i, int j, int k, boolean flag, String s, String s1) 
        throws Exception 
    { 
        saveImage(i, j, k, flag, 1, s, s1); 
    } 
 
    public void saveSimpleImage(int i, int j, int k, boolean flag, int l, String s, String s1) 
        throws Exception 
    { 
        File file = new File(s1); 
        FileOutputStream fileoutputstream = new FileOutputStream(file); 
        Object obj; 
        if(i == 3) 
            obj = new JpgEncoder(); 
        else 
            obj = new PngEncoder(); 
        SimpleDimension simpledimension = new SimpleDimension(0, 0); 
        byte abyte0[] = prepareSimpleImage(j, k, flag, l, ((ImageEncoder) (obj)).use2ColorSource(), s, simpledimension); 
        ((ImageEncoder) (obj)).encode(abyte0, simpledimension.width, simpledimension.height, _clrFore, _clrBack, _figureTransparent, fileoutputstream); 
        fileoutputstream.close(); 
    } 
 
    public void saveSimpleImage(int i, int j, int k, boolean flag, String s) 
        throws Exception 
    { 
        saveSimpleImage(i, j, k, flag, null, s); 
    } 
 
    public void saveSimpleImage(int i, int j, int k, boolean flag, String s, String s1) 
        throws Exception 
    { 
        saveSimpleImage(i, j, k, flag, 1, s, s1); 
    } 
 
    public void setAddOnCaption(String s) 
    { 
        setAddOnCaption(s.toCharArray()); 
    } 
 
    public void setAddOnCaption(char ac[]) 
    { 
        if(ac != null) 
        { 
            _acAddOnMsg = new char[ac.length]; 
            System.arraycopy(ac, 0, _acAddOnMsg, 0, ac.length); 
        } else 
        { 
            _acAddOnMsg = null; 
        } 
    } 
 
    public boolean setAddOnData(String s) 
        throws InvalidAddOnDataException 
    { 
        return setAddOnData(s.toCharArray()); 
    } 
 
    public boolean setAddOnData(char ac[]) 
        throws InvalidAddOnDataException 
    { 
        _bAddOnDataInvalid = true; 
        if(ac != null) 
        { 
            _acOrigAddOnData = new char[ac.length]; 
            System.arraycopy(ac, 0, _acOrigAddOnData, 0, ac.length); 
        } 
        if(!_symbol.setAddOnText(ac)) 
        { 
            if(_throwDataError) 
                throw new InvalidAddOnDataException(); 
            else 
                return false; 
        } else 
        { 
            _bAddOnDataInvalid = false; 
            return true; 
        } 
    } 
 
    public void setAddOnTextAlign(int i) 
    { 
        _addOnTextAlign = i; 
    } 
 
    public void setBackColor(Color color) 
    { 
        _clrBack = new SimpleColor(color); 
    } 
 
    public void setBackSimpleColor(SimpleColor simplecolor) 
    { 
        _clrBack = simplecolor; 
    } 
 
    public int setBarTypeWidth(int i, int j) 
    { 
        return _symbol.setBarExt(i, j); 
    } 
 
    public void setBarcodeType(int i) 
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, BarcodeNotSupportedException 
    { 
        changeBarcodeType(i); 
    } 
 
    public void setCaption(String s) 
    { 
        setCaption(s.toCharArray()); 
    } 
 
    public void setCaption(char ac[]) 
    { 
        if(ac != null) 
        { 
            _acMsg = new char[ac.length]; 
            System.arraycopy(ac, 0, _acMsg, 0, ac.length); 
        } else 
        { 
            _acMsg = null; 
        } 
    } 
 
    public void setCheckCharShowMode(int i) 
    { 
        _checkCharShowMode = i; 
    } 
 
    public int setClearArea(int i, int j) 
    { 
        return _symbol.setMargin(i, j); 
    } 
 
    public void setClearAreaBottom(int i) 
    { 
        setClearArea(4, i); 
    } 
 
    public void setClearAreaLeft(int i) 
    { 
        setClearArea(1, i); 
    } 
 
    public void setClearAreaMiddle(int i) 
    { 
        setClearArea(5, i); 
    } 
 
    public void setClearAreaRight(int i) 
    { 
        setClearArea(3, i); 
    } 
 
    public void setClearAreaTop(int i) 
    { 
        setClearArea(2, i); 
    } 
 
    public boolean setData(String s) 
        throws InvalidDataException 
    { 
        return setData(s.toCharArray()); 
    } 
 
    public boolean setData(char ac[]) 
        throws InvalidDataException 
    { 
        switch(_license.getLicenseType()) 
        { 
        case 3: // '\003' 
        case 4: // '\004' 
            return true; 
        } 
        _bDataInvalid = true; 
        if(ac != null) 
        { 
            _acOrigData = new char[ac.length]; 
            System.arraycopy(ac, 0, _acOrigData, 0, ac.length); 
        } 
        if(!_symbol.setText(_acOrigData)) 
        { 
            if(_throwDataError) 
                throw new InvalidDataException(); 
            else 
                return false; 
        } else 
        { 
            _bDataInvalid = false; 
            return true; 
        } 
    } 
 
    public void setExtraText(String s) 
    { 
        if(s == null) 
            s = ""; 
        if(_license.getLicenseType() != 2 && _extraTextPosition == -1) 
            _extraTextPosition = 0; 
        if(_license.getLicenseType() != 2 && _license.getLicenseType() != 5) 
        { 
            _extraText = s; 
        } else 
        { 
            _extraText = _extraTextPrefix; 
            if(s.length() > 0) 
                _extraText += "\n" + s; 
        } 
    } 
 
    public void setExtraTextPosition(int i) 
    { 
        if(_license.getLicenseType() != 2) 
            switch(i) 
            { 
            case 0: // '\0' 
            case 1: // '\001' 
                _extraTextPosition = i; 
                return; 
 
            case -1:  
            default: 
                return; 
            } 
        else 
            return; 
    } 
 
    public void setExtraTopText(String s) 
    { 
        setExtraText(s); 
    } 
 
    public void setFigureTransparent(boolean flag) 
    { 
        _figureTransparent = flag; 
    } 
 
    public void setFont(Font font) 
    { 
        _font = new SimpleFont(font); 
    } 
 
    public void setForeColor(Color color) 
    { 
        _clrFore = new SimpleColor(color); 
    } 
 
    public void setForeSimpleColor(SimpleColor simplecolor) 
    { 
        _clrFore = simplecolor; 
    } 
 
    public void setHorzAlign(int i) 
    { 
        _horzAlign = i; 
    } 
 
    public int setInterCharSpace(int i) 
    { 
        return _symbol.setInterCharExt(i); 
    } 
 
    public void setInvalidDataAction(int i) 
    { 
        _invalidDataAction = i; 
    } 
 
    public void setOrientation(int i) 
    { 
        _orientation = i; 
    } 
 
    public void setRetainAspectRatio(boolean flag) 
    { 
        _retainAspectRatio = flag; 
    } 
 
    public void setShowCode39StartStop(boolean flag) 
    { 
        _showCode39StartStop = flag; 
    } 
 
    public void setSimpleFont(SimpleFont simplefont) 
    { 
        _font = simplefont; 
    } 
 
    public int setSpaceTypeWidth(int i, int j) 
    { 
        return _symbol.setSpaceExt(i, j); 
    } 
 
    public void setStretchText(boolean flag) 
    { 
        _stretchText = flag; 
    } 
 
    public void setTextAlign(int i) 
    { 
        _textAlign = i; 
    } 
 
    public void setThrowDataError(boolean flag) 
    { 
        _throwDataError = flag; 
    } 
 
    public void setUniBarHeight(boolean flag) 
    { 
        _uniBarHeight = flag; 
    } 
 
    public void setUpcSmallFont(boolean flag) 
    { 
        _upcSmallFont = flag; 
    } 
 
    public void setVertAlign(int i) 
    { 
        _vertAlign = i; 
    } 
 
    public static int[] simpleBitmapToPixelArray(byte abyte0[], int i, int j, int k, int l) 
    { 
        boolean flag; 
        if((l == 0 || l == 255) && (k == 0 || k == 255)) 
            flag = true; 
        else 
            flag = false; 
        int i1 = i; 
        int j1 = j; 
        int ai[] = new int[i1 * j1]; 
        int k1 = (i1 + 7) / 8; 
        int l1 = 8 - i1 % 8; 
        if(l1 == 8) 
            l1 = 0; 
        int i2 = 0; 
        int j2 = 0; 
        for(int k2 = 0; k2 < j1; k2++) 
        { 
            for(int l2 = 0; l2 < k1; l2++) 
            { 
                int i3 = l2 != k1 - 1 ? 0 : l1; 
                byte byte0 = abyte0[i2]; 
                for(int j3 = 7; j3 >= i3; j3--) 
                { 
                    if((byte0 & 1 << j3) != 0) 
                        ai[j2] = l; 
                    else 
                        ai[j2] = k; 
                    j2++; 
                } 
 
                i2++; 
            } 
 
        } 
 
        return ai; 
    } 
 
    public static final String _copyrightText = "Barcode/JSP V4.0 (c) 1999-2005 Bokai Corporation\nhttp://www.bokai.com/"; 
    public static boolean trace = false; 
    private static String LICENSE_FILE; 
    private static BarcodeLicense _license; 
    private static String _static_invalidLicenseShortText = null; 
    public static final int BARCODE_PNG = 1; 
    public static final int BARCODE_JPEG = 3; 
    public static final int BCT_EAN13 = 1; 
    static final String STRING_BCT_EAN13 = "EAN13"; 
    static final int HASH_EAN13; 
    public static final int BCT_EAN8 = 2; 
    static final String STRING_BCT_EAN8 = "EAN8"; 
    static final int HASH_EAN8; 
    public static final int BCT_UPCA = 3; 
    static final String STRING_BCT_UPCA = "UPCA"; 
    static final int HASH_UPCA; 
    public static final int BCT_3OF9CHECK = 4; 
    public static final int BCT_CODE39CHECK = 4; 
    static final String STRING_BCT_3OF9CHECK = "Code39Check"; 
    static final int HASH_3OF9CHECK; 
    public static final int BCT_CODABAR = 5; 
    static final String STRING_BCT_CODABAR = "Codabar"; 
    static final int HASH_CODABAR; 
    public static final int BCT_3OF9 = 6; 
    public static final int BCT_CODE39 = 6; 
    static final String STRING_BCT_3OF9 = "Code39"; 
    static final int HASH_3OF9; 
    public static final int BCT_2OF5 = 7; 
    public static final int BCT_C2OF5 = 7; 
    static final String STRING_BCT_2OF5 = "C2of5"; 
    static final int HASH_2OF5; 
    public static final int BCT_INTERLEAVED2OF5 = 8; 
    static final String STRING_BCT_INTERLEAVED2OF5 = "Interleaved2of5"; 
    static final int HASH_INTERLEAVED2OF5; 
    public static final int BCT_UPCE = 9; 
    static final String STRING_BCT_UPCE = "UPCE"; 
    static final int HASH_UPCE; 
    public static final int BCT_EAN13_2 = 10; 
    static final String STRING_BCT_EAN13_2 = "EAN13_2"; 
    static final int HASH_EAN13_2; 
    public static final int BCT_EAN13_5 = 11; 
    static final String STRING_BCT_EAN13_5 = "EAN13_5"; 
    static final int HASH_EAN13_5; 
    public static final int BCT_EAN8_2 = 12; 
    static final String STRING_BCT_EAN8_2 = "EAN8_2"; 
    static final int HASH_EAN8_2; 
    public static final int BCT_EAN8_5 = 13; 
    static final String STRING_BCT_EAN8_5 = "EAN8_5"; 
    static final int HASH_EAN8_5; 
    public static final int BCT_UPCA_2 = 14; 
    static final String STRING_BCT_UPCA_2 = "UPCA_2"; 
    static final int HASH_UPCA_2; 
    public static final int BCT_UPCA_5 = 15; 
    static final String STRING_BCT_UPCA_5 = "UPCA_5"; 
    static final int HASH_UPCA_5; 
    public static final int BCT_UPCE_2 = 16; 
    static final String STRING_BCT_UPCE_2 = "UPCE_2"; 
    static final int HASH_UPCE_2; 
    public static final int BCT_UPCE_5 = 17; 
    static final String STRING_BCT_UPCE_5 = "UPCE_5"; 
    static final int HASH_UPCE_5; 
    public static final int BCT_EAN128A = 18; 
    static final String STRING_BCT_EAN128A = "EAN128A"; 
    static final int HASH_EAN128A; 
    public static final int BCT_EAN128B = 19; 
    static final String STRING_BCT_EAN128B = "EAN128B"; 
    static final int HASH_EAN128B; 
    public static final int BCT_EAN128C = 20; 
    static final String STRING_BCT_EAN128C = "EAN128C"; 
    static final int HASH_EAN128C; 
    public static final int BCT_CODE93 = 21; 
    static final String STRING_BCT_CODE93 = "Code93"; 
    static final int HASH_CODE93; 
    public static final int BCT_POSTNET = 22; 
    static final String STRING_BCT_POSTNET = "POSTNET"; 
    static final int HASH_POSTNET; 
    public static final int BCT_CODE128A = 23; 
    static final String STRING_BCT_CODE128A = "CODE128A"; 
    static final int HASH_CODE128A; 
    public static final int BCT_CODE128B = 24; 
    static final String STRING_BCT_CODE128B = "CODE128B"; 
    static final int HASH_CODE128B; 
    public static final int BCT_CODE128C = 25; 
    static final String STRING_BCT_CODE128C = "CODE128C"; 
    static final int HASH_CODE128C; 
    public static final int BCT_MSIPLESSEYCHECK10 = 26; 
    static final String STRING_BCT_MSIPLESSEYCHECK10 = "MsiPlesseyCheck10"; 
    static final int HASH_MSIPLESSEYCHECK10; 
    public static final int BCT_MSIPLESSEYCHECK1010 = 27; 
    static final String STRING_BCT_MSIPLESSEYCHECK1010 = "MsiPlesseyCheck1010"; 
    static final int HASH_MSIPLESSEYCHECK1010; 
    public static final int BCT_MSIPLESSEYCHECK11 = 28; 
    static final String STRING_BCT_MSIPLESSEYCHECK11 = "MsiPlesseyCheck11"; 
    static final int HASH_MSIPLESSEYCHECK11; 
    public static final int BCT_MSIPLESSEYCHECK1110 = 29; 
    static final String STRING_BCT_MSIPLESSEYCHECK1110 = "MsiPlesseyCheck1110"; 
    static final int HASH_MSIPLESSEYCHECK1110; 
    public static final int BCT_TELEPEN = 30; 
    static final String STRING_BCT_TELEPEN = "Telepen"; 
    static final int HASH_TELEPEN; 
    public static final int BCT_ROYALMAIL = 31; 
    public static final int BCT_RM4SCC = 31; 
    static final String STRING_BCT_ROYALMAIL = "RoyalMail"; 
    static final String STRING_BCT_RM4SCC = "RM4SCC"; 
    static final int HASH_ROYALMAIL = "RoyalMail".toUpperCase().hashCode(); 
    static final int HASH_RM4SCC; 
    public static final int BCT_INTERLEAVED2OF5CHECK10 = 32; 
    static final String STRING_BCT_INTERLEAVED2OF5CHECK10 = "Interleaved2of5Check10"; 
    static final int HASH_INTERLEAVED2OF5CHECK10; 
    public static final int BCT_ITF14 = 33; 
    static final String STRING_BCT_ITF14 = "ITF14"; 
    static final int HASH_ITF14; 
    public static final int BCT_IDENTCODE = 34; 
    static final String STRING_BCT_IDENTCODE = "Identcode"; 
    static final int HASH_IDENTCODE; 
    public static final int BCT_LEITCODE = 35; 
    static final String STRING_BCT_LEITCODE = "Leitcode"; 
    static final int HASH_LEITCODE; 
    public static final int BCT_EAN14 = 36; 
    static final String STRING_BCT_EAN14 = "EAN14"; 
    static final int HASH_EAN14; 
    public static final int BCT_EAN128CCHECK10 = 37; 
    static final String STRING_BCT_EAN128CCHECK10 = "EAN128CCheck10"; 
    static final int HASH_EAN128CCHECK10; 
    public static final int BCT_SSCC18 = 38; 
    static final String STRING_BCT_SSCC18 = "SSCC18"; 
    static final int HASH_SSCC18; 
    public static final int BCT_ISBN = 39; 
    static final String STRING_BCT_ISBN = "ISBN"; 
    static final int HASH_ISBN; 
    public static final int BCT_ISBN_5 = 40; 
    static final String STRING_BCT_ISBN_5 = "ISBN_5"; 
    static final int HASH_ISBN_5; 
    public static final int BCT_ISSN = 41; 
    static final String STRING_BCT_ISSN = "ISSN"; 
    static final int HASH_ISSN; 
    public static final int BCT_ISSN_2 = 42; 
    static final String STRING_BCT_ISSN_2 = "ISSN_2"; 
    static final int HASH_ISSN_2; 
    public static final int BCT_CODE11 = 43; 
    static final String STRING_BCT_CODE11 = "Code11"; 
    static final int HASH_CODE11; 
    public static final int BCT_CODE11CHECK = 44; 
    static final String STRING_BCT_CODE11CHECK = "Code11Check"; 
    static final int HASH_CODE11CHECK; 
    public static final int BCT_CODE11DOUBLECHECK = 45; 
    static final String STRING_BCT_CODE11DOUBLECHECK = "Code11DoubleCheck"; 
    static final int HASH_CODE11DOUBLECHECK; 
    public static final int BCT_PLANET = 46; 
    static final String STRING_BCT_PLANET = "Planet"; 
    static final int HASH_PLANET; 
    public static final int BCT_EAN128AUTO = 47; 
    static final String STRING_BCT_EAN128AUTO = "EAN128Auto"; 
    static final int HASH_EAN128AUTO; 
    public static final int BCT_CODE128AUTO = 48; 
    static final String STRING_BCT_CODE128AUTO = "Code128Auto"; 
    static final int HASH_CODE128AUTO; 
    public static final int BCT_CODE93EXTENDED = 49; 
    static final String STRING_BCT_CODE93EXTENDED = "Code93Extended"; 
    static final int HASH_CODE93EXTENDED; 
    public static final int BCT_3OF9EXTENDED = 50; 
    public static final int BCT_CODE39EXTENDED = 50; 
    static final String STRING_BCT_3OF9EXTENDED = "Code39Extended"; 
    static final int HASH_3OF9EXTENDED; 
    public static final int BCT_3OF9CHECKEXTENDED = 51; 
    public static final int BCT_CODE39CHECKEXTENDED = 51; 
    static final String STRING_BCT_3OF9CHECKEXTENDED = "Code39CheckExtended"; 
    static final int HASH_3OF9CHECKEXTENDED; 
    public static final int BCT_MSIPLESSEY = 52; 
    static final String STRING_BCT_MSIPLESSEY = "MsiPlessey"; 
    static final int HASH_MSIPLESSEY; 
    public static final int BCT_EAN128CCHECK10AI2 = 53; 
    static final String STRING_BCT_EAN128CCHECK10AI2 = "EAN128CCheck10AI2"; 
    static final int HASH_EAN128CCHECK10AI2; 
    public static final int BCT_EAN128CCHECK10AI3 = 54; 
    static final String STRING_BCT_EAN128CCHECK10AI3 = "EAN128CCheck10AI3"; 
    static final int HASH_EAN128CCHECK10AI3; 
    public static final int BCT_EAN128CCHECK10AI4 = 55; 
    static final String STRING_BCT_EAN128CCHECK10AI4 = "EAN128CCheck10AI4"; 
    static final int HASH_EAN128CCHECK10AI4; 
    public static final int BCT_RM4SCCNOCHECK = 56; 
    static final String STRING_BCT_RM4SCCNOCHECK = "RM4SCCNoCheck"; 
    static final int HASH_RM4SCCNOCHECK; 
    public static final int BCT_TELEPENNUMERIC = 57; 
    static final String STRING_BCT_TELEPENNUMERIC = "TelepenNumeric"; 
    static final int HASH_TELEPENNUMERIC; 
    public static final int BCT_REGULAR_LAST = 57; 
    public static final int BCT_CUSTOM_START = 2000; 
    public static final int BCT_INTERLEAVED2OF5_MOD10WT12 = 2000; 
    public static final int BCT_INTERLEAVED2OF5MOD10WT12 = 2000; 
    static final String STRING_BCT_INTERLEAVED2OF5MOD10WT12 = "Interleaved2of5Mod10Wt12"; 
    static final int HASH_INTERLEAVED2OF5MOD10WT12; 
    public static final int BCT_INTERLEAVED2OF5_MOD10WT21 = 2001; 
    public static final int BCT_INTERLEAVED2OF5MOD10WT21 = 2001; 
    static final String STRING_BCT_INTERLEAVED2OF5MOD10WT21 = "Interleaved2of5Mod10Wt21"; 
    static final int HASH_INTERLEAVED2OF5MOD10WT21; 
    static BarcodeType _barcodeTypes[]; 
    public static final int BDF_LEFT = 1; 
    public static final int BDF_RIGHT = 2; 
    public static final int BDF_CENTER = 4; 
    public static final int BDF_UNIBARHEIGHT = 16; 
    public static final int BDF_HIDEMAINTEXT = 32; 
    public static final int BDF_HIDEADDONTEXT = 64; 
    public static final int BDF_ADDONTEXTATTOP = 128; 
    public static final int BDF_ADDONTEXTATBOTTOM = 256; 
    public static final int BDF_MAINTEXTATTOP = 512; 
    public static final int BDF_MAINTEXTATBOTTOM = 1024; 
    public static final int BDF_NOUPCSMALLFONT = 2048; 
    public static final int BDF_RETAINASPECTRATIO = 4096; 
    public static final int BDF_TOP = 8192; 
    public static final int BDF_BOTTOM = 16384; 
    public static final int BDF_VCENTER = 32768; 
    public static final int BDF_CALCSIZEONLY = 0x10000; 
    public static final int BDF_NOPIXELALIGN = 0x20000; 
    public static final int BDF_NOSTRETCHTEXT = 0x40000; 
    public static final int BDF_SHOWCODE39STARTSTOP = 0x80000; 
    public static final int BDF_WYSIWYGEXCLCOLOR = 0x100000; 
    public static final int BDF_CLIP = 0x200000; 
    public static final int BDF_PAINTWHOLERECT = 0x400000; 
    public static final int BDF_DRAWTEXTONLY = 0x800000; 
    public static final int BDF_DRAWBACKGROUNDONLY = 0x1000000; 
    public static final int BDF_SHOWCHECKCHAR = 0x2000000; 
    public static final int BDF_HIDECHECKCHAR = 0x4000000; 
    public static final int BDF_EX_DRAWMETAFILE = 1; 
    public static final int BDF_EX_MFUSERFONT = 2; 
    public static final int BDF_EX_MFUSERCOLORS = 4; 
    public static final int BDF_EX_MFUSERBKMODE = 8; 
    public static final int BDF_EX_MFUSERMAPMODE = 16; 
    public static final int BGCA_LEFT = 1; 
    public static final int BGCA_TOP = 2; 
    public static final int BGCA_RIGHT = 3; 
    public static final int BGCA_BOTTOM = 4; 
    public static final int BGCA_MIDDLE = 5; 
    public static final int BEBN_ADDONBARS = 8; 
    public static final int BEBN_LONGBARS = 16; 
    public static final int BEBN_LOWERBARS = 32; 
    public static final int BEBN_HIGHERBARS = 64; 
    public static final int IDA_DISPLAYNONE = 0; 
    public static final int IDA_DISPLAYTEXTONLY = 1; 
    public static final int IDA_DISPLAYDEFAULTBARCODE = 2; 
    public static final int IDA_DISPLAYINVALID = 3; 
    SimpleRectangle _rcAll; 
    SimpleRectangle _rcMainBar; 
    SimpleRectangle _rcAddOn; 
    char _acMsg[]; 
    char _acOrigData[]; 
    boolean _bDataInvalid; 
    char _acAddOnMsg[]; 
    char _acOrigAddOnData[]; 
    int _cbOrigAddOnData; 
    boolean _bAddOnDataInvalid; 
    int _checkCharShowMode; 
    String _extraTextPrefix; 
    String _extraText; 
    int _extraTextPosition; 
    protected BarcodeSymbol _symbol; 
    String _invalidLicenseShortText; 
    int _style; 
    SimpleFont _defaultFont; 
    SimpleFont _font; 
    int _orientation; 
    int _textAlign; 
    int _addOnTextAlign; 
    int _horzAlign; 
    int _vertAlign; 
    boolean _stretchText; 
    boolean _uniBarHeight; 
    boolean _showCode39StartStop; 
    boolean _upcSmallFont; 
    boolean _figureTransparent; 
    boolean _retainAspectRatio; 
    SimpleColor _clrBack; 
    SimpleColor _clrFore; 
    int _invalidDataAction; 
    boolean _throwDataError; 
    boolean _bPixelAlign; 
 
    static  
    { 
        LICENSE_FILE = "/easybar.lic"; 
        _license = new BarcodeFileLicense(); 
        _license.loadLicense(LICENSE_FILE); 
        _static_invalidLicenseShortText = _license.getInvalidLicenseShortText(); 
        HASH_EAN13 = "EAN13".toUpperCase().hashCode(); 
        HASH_EAN8 = "EAN8".toUpperCase().hashCode(); 
        HASH_UPCA = "UPCA".toUpperCase().hashCode(); 
        HASH_3OF9CHECK = "Code39Check".toUpperCase().hashCode(); 
        HASH_CODABAR = "Codabar".toUpperCase().hashCode(); 
        HASH_3OF9 = "Code39".toUpperCase().hashCode(); 
        HASH_2OF5 = "C2of5".toUpperCase().hashCode(); 
        HASH_INTERLEAVED2OF5 = "Interleaved2of5".toUpperCase().hashCode(); 
        HASH_UPCE = "UPCE".toUpperCase().hashCode(); 
        HASH_EAN13_2 = "EAN13_2".toUpperCase().hashCode(); 
        HASH_EAN13_5 = "EAN13_5".toUpperCase().hashCode(); 
        HASH_EAN8_2 = "EAN8_2".toUpperCase().hashCode(); 
        HASH_EAN8_5 = "EAN8_5".toUpperCase().hashCode(); 
        HASH_UPCA_2 = "UPCA_2".toUpperCase().hashCode(); 
        HASH_UPCA_5 = "UPCA_5".toUpperCase().hashCode(); 
        HASH_UPCE_2 = "UPCE_2".toUpperCase().hashCode(); 
        HASH_UPCE_5 = "UPCE_5".toUpperCase().hashCode(); 
        HASH_EAN128A = "EAN128A".toUpperCase().hashCode(); 
        HASH_EAN128B = "EAN128B".toUpperCase().hashCode(); 
        HASH_EAN128C = "EAN128C".toUpperCase().hashCode(); 
        HASH_CODE93 = "Code93".toUpperCase().hashCode(); 
        HASH_POSTNET = "POSTNET".toUpperCase().hashCode(); 
        HASH_CODE128A = "CODE128A".toUpperCase().hashCode(); 
        HASH_CODE128B = "CODE128B".toUpperCase().hashCode(); 
        HASH_CODE128C = "CODE128C".toUpperCase().hashCode(); 
        HASH_MSIPLESSEYCHECK10 = "MsiPlesseyCheck10".toUpperCase().hashCode(); 
        HASH_MSIPLESSEYCHECK1010 = "MsiPlesseyCheck1010".toUpperCase().hashCode(); 
        HASH_MSIPLESSEYCHECK11 = "MsiPlesseyCheck11".toUpperCase().hashCode(); 
        HASH_MSIPLESSEYCHECK1110 = "MsiPlesseyCheck1110".toUpperCase().hashCode(); 
        HASH_TELEPEN = "Telepen".toUpperCase().hashCode(); 
        HASH_RM4SCC = "RM4SCC".toUpperCase().hashCode(); 
        HASH_INTERLEAVED2OF5CHECK10 = "Interleaved2of5Check10".toUpperCase().hashCode(); 
        HASH_ITF14 = "ITF14".toUpperCase().hashCode(); 
        HASH_IDENTCODE = "Identcode".toUpperCase().hashCode(); 
        HASH_LEITCODE = "Leitcode".toUpperCase().hashCode(); 
        HASH_EAN14 = "EAN14".toUpperCase().hashCode(); 
        HASH_EAN128CCHECK10 = "EAN128CCheck10".toUpperCase().hashCode(); 
        HASH_SSCC18 = "SSCC18".toUpperCase().hashCode(); 
        HASH_ISBN = "ISBN".toUpperCase().hashCode(); 
        HASH_ISBN_5 = "ISBN_5".toUpperCase().hashCode(); 
        HASH_ISSN = "ISSN".toUpperCase().hashCode(); 
        HASH_ISSN_2 = "ISSN_2".toUpperCase().hashCode(); 
        HASH_CODE11 = "Code11".toUpperCase().hashCode(); 
        HASH_CODE11CHECK = "Code11Check".toUpperCase().hashCode(); 
        HASH_CODE11DOUBLECHECK = "Code11DoubleCheck".toUpperCase().hashCode(); 
        HASH_PLANET = "Planet".toUpperCase().hashCode(); 
        HASH_EAN128AUTO = "EAN128Auto".toUpperCase().hashCode(); 
        HASH_CODE128AUTO = "Code128Auto".toUpperCase().hashCode(); 
        HASH_CODE93EXTENDED = "Code93Extended".toUpperCase().hashCode(); 
        HASH_3OF9EXTENDED = "Code39Extended".toUpperCase().hashCode(); 
        HASH_3OF9CHECKEXTENDED = "Code39CheckExtended".toUpperCase().hashCode(); 
        HASH_MSIPLESSEY = "MsiPlessey".toUpperCase().hashCode(); 
        HASH_EAN128CCHECK10AI2 = "EAN128CCheck10AI2".toUpperCase().hashCode(); 
        HASH_EAN128CCHECK10AI3 = "EAN128CCheck10AI3".toUpperCase().hashCode(); 
        HASH_EAN128CCHECK10AI4 = "EAN128CCheck10AI4".toUpperCase().hashCode(); 
        HASH_RM4SCCNOCHECK = "RM4SCCNoCheck".toUpperCase().hashCode(); 
        HASH_TELEPENNUMERIC = "TelepenNumeric".toUpperCase().hashCode(); 
        HASH_INTERLEAVED2OF5MOD10WT12 = "Interleaved2of5Mod10Wt12".toUpperCase().hashCode(); 
        HASH_INTERLEAVED2OF5MOD10WT21 = "Interleaved2of5Mod10Wt21".toUpperCase().hashCode(); 
        _barcodeTypes = (new BarcodeType[] { 
            new BarcodeType(7, "2 of 5", com.bokai.barcodes.C2of5.class, "C2of5", HASH_2OF5), new BarcodeType(5, Codabar.name, com.bokai.barcodes.Codabar.class, "Codabar", HASH_CODABAR), new BarcodeType(43, "Code 11/USD-8", com.bokai.barcodes.Code11.class, "Code11", HASH_CODE11), new BarcodeType(44, "Code 11/USD-8 (Check)", com.bokai.barcodes.Code11Check.class, "Code11Check", HASH_CODE11CHECK), new BarcodeType(45, "Code 11/USD-8 (Double Check)", com.bokai.barcodes.Code11DoubleCheck.class, "Code11DoubleCheck", HASH_CODE11DOUBLECHECK), new BarcodeType(23, "CODE-128 A", com.bokai.barcodes.Code128A.class, "CODE128A", HASH_CODE128A), new BarcodeType(24, "CODE-128 B", com.bokai.barcodes.Code128B.class, "CODE128B", HASH_CODE128B), new BarcodeType(25, "CODE-128 C", com.bokai.barcodes.Code128C.class, "CODE128C", HASH_CODE128C), new BarcodeType(48, "CODE-128 (Auto Switch)", com.bokai.barcodes.Code128Auto.class, "Code128Auto", HASH_CODE128AUTO), new BarcodeType(6, "Code 39", com.bokai.barcodes.Code39.class, "Code39", HASH_3OF9),  
            new BarcodeType(4, "Code 39 Check", com.bokai.barcodes.Code39Check.class, "Code39Check", HASH_3OF9CHECK), new BarcodeType(50, "Code 39 (Extended)", com.bokai.barcodes.Code39Extended.class, "Code39Extended", HASH_3OF9EXTENDED), new BarcodeType(51, "Code 39 Check (Extended)", com.bokai.barcodes.Code39CheckExtended.class, "Code39CheckExtended", HASH_3OF9CHECKEXTENDED), new BarcodeType(21, "Code 93", com.bokai.barcodes.Code93.class, "Code93", HASH_CODE93), new BarcodeType(49, "Code 93 (Extended)", com.bokai.barcodes.Code93Extended.class, "Code93Extended", HASH_CODE93EXTENDED), new BarcodeType(1, "EAN-13/JAN-13", com.bokai.barcodes.EAN13.class, "EAN13", HASH_EAN13), new BarcodeType(10, "EAN-13 + 2", com.bokai.barcodes.EAN13_2.class, "EAN13_2", HASH_EAN13_2), new BarcodeType(11, "EAN-13 + 5", com.bokai.barcodes.EAN13_5.class, "EAN13_5", HASH_EAN13_5), new BarcodeType(36, "EAN-14/UCC-14/SCC-14/DUN-14 (EAN-128)", com.bokai.barcodes.EAN14.class, "EAN14", HASH_EAN14), new BarcodeType(18, "EAN/UCC-128 A", com.bokai.barcodes.EAN128A.class, "EAN128A", HASH_EAN128A),  
            new BarcodeType(19, "EAN/UCC-128 B", com.bokai.barcodes.EAN128B.class, "EAN128B", HASH_EAN128B), new BarcodeType(20, "EAN/UCC-128 C", com.bokai.barcodes.EAN128C.class, "EAN128C", HASH_EAN128C), new BarcodeType(47, "EAN/UCC-128 (Auto Switch)", com.bokai.barcodes.EAN128Auto.class, "EAN128Auto", HASH_EAN128AUTO), new BarcodeType(37, "EAN/UCC-128 C (Check 10)", com.bokai.barcodes.EAN128CCheck10.class, "EAN128CCheck10", HASH_EAN128CCHECK10), new BarcodeType(53, "EAN-128C Check 10 AI 2", com.bokai.barcodes.EAN128CCheck10AI2.class, "EAN128CCheck10AI2", HASH_EAN128CCHECK10AI2), new BarcodeType(54, "EAN-128C Check 10 AI 3", com.bokai.barcodes.EAN128CCheck10AI3.class, "EAN128CCheck10AI3", HASH_EAN128CCHECK10AI3), new BarcodeType(55, "EAN-128C Check 10 AI 4", com.bokai.barcodes.EAN128CCheck10AI4.class, "EAN128CCheck10AI4", HASH_EAN128CCHECK10AI4), new BarcodeType(2, "EAN-8/JAN-8", com.bokai.barcodes.EAN8.class, "EAN8", HASH_EAN8), new BarcodeType(12, "EAN-8 + 2", com.bokai.barcodes.EAN8_2.class, "EAN8_2", HASH_EAN8_2), new BarcodeType(13, "EAN-8 + 5", com.bokai.barcodes.EAN8_5.class, "EAN8_5", HASH_EAN8_5),  
            new BarcodeType(34, "Identcode (Deutsche Post/DHL)", com.bokai.barcodes.Identcode.class, "Identcode", HASH_IDENTCODE), new BarcodeType(8, "Interleaved 2 of 5", com.bokai.barcodes.ITF.class, "Interleaved2of5", HASH_INTERLEAVED2OF5), new BarcodeType(32, "Interleaved 2 of 5 (Check 10)", com.bokai.barcodes.ITFMod10.class, "Interleaved2of5Check10", HASH_INTERLEAVED2OF5CHECK10), new BarcodeType(39, "ISBN/Bookland EAN", com.bokai.barcodes.ISBN.class, "ISBN", HASH_ISBN), new BarcodeType(40, "ISBN/Bookland EAN + 5", com.bokai.barcodes.ISBN_5.class, "ISBN_5", HASH_ISBN_5), new BarcodeType(41, "ISSN", com.bokai.barcodes.ISSN.class, "ISSN", HASH_ISSN), new BarcodeType(42, "ISSN + 2", com.bokai.barcodes.ISSN_2.class, "ISSN_2", HASH_ISSN_2), new BarcodeType(33, "SCC-14/EAN-14/UCC-14 (ITF-14)", com.bokai.barcodes.ITF14.class, "ITF14", HASH_ITF14), new BarcodeType(35, "Leitcode (Deutsche Post/DHL)", com.bokai.barcodes.Leitcode.class, "Leitcode", HASH_LEITCODE), new BarcodeType(52, "MSI/Plessey", com.bokai.barcodes.MSI.class, "MsiPlessey", HASH_MSIPLESSEY),  
            new BarcodeType(26, "MSI/Plessey (Check 10)", com.bokai.barcodes.MsiCheck10.class, "MsiPlesseyCheck10", HASH_MSIPLESSEYCHECK10), new BarcodeType(27, "MSI/Plessey (Check 10-10)", com.bokai.barcodes.MsiCheck1010.class, "MsiPlesseyCheck1010", HASH_MSIPLESSEYCHECK1010), new BarcodeType(28, "MSI/Plessey (Check 11)", com.bokai.barcodes.MsiCheck11.class, "MsiPlesseyCheck11", HASH_MSIPLESSEYCHECK11), new BarcodeType(29, "MSI/Plessey (Check 11-10)", com.bokai.barcodes.MsiCheck1110.class, "MsiPlesseyCheck1110", HASH_MSIPLESSEYCHECK1110), new BarcodeType(22, "POSTNET", com.bokai.barcodes.Postnet.class, "POSTNET", HASH_POSTNET), new BarcodeType(46, "PLANET", com.bokai.barcodes.Planet.class, "Planet", HASH_PLANET), new BarcodeType(31, "RM4SCC (4-State, Royal Mail, Singapore Post)", com.bokai.barcodes.RoyalMail.class, "RM4SCC", HASH_RM4SCC), new BarcodeType(56, "RM4SCC w/o Check (Dutch Post)", com.bokai.barcodes.RM4SCCNoCheck.class, "RM4SCCNoCheck", HASH_RM4SCCNOCHECK), new BarcodeType(38, "SSCC-18", com.bokai.barcodes.SSCC18.class, "SSCC18", HASH_SSCC18), new BarcodeType(30, "Telepen", com.bokai.barcodes.Telepen.class, "Telepen", HASH_TELEPEN),  
            new BarcodeType(57, "Telepen Numeric", com.bokai.barcodes.TelepenNumeric.class, "TelepenNumeric", HASH_TELEPENNUMERIC), new BarcodeType(3, "UPC-A", com.bokai.barcodes.UPCA.class, "UPCA", HASH_UPCA), new BarcodeType(14, "UPC-A + 2", com.bokai.barcodes.UPCA_2.class, "UPCA_2", HASH_UPCA_2), new BarcodeType(15, "UPC-A + 5", com.bokai.barcodes.UPCA_5.class, "UPCA_5", HASH_UPCA_5), new BarcodeType(9, "UPC-E", com.bokai.barcodes.UPCE.class, "UPCE", HASH_UPCE), new BarcodeType(16, "UPC-E + 2", com.bokai.barcodes.UPCE_2.class, "UPCE_2", HASH_UPCE_2), new BarcodeType(17, "UPC-E + 5", com.bokai.barcodes.UPCE_5.class, "UPCE_5", HASH_UPCE_5), new BarcodeType(2000, "Interleaved 2 of 5 (Mod 10; 12 Weighting)", com.bokai.barcodes.ITFMod10Wt12.class, "Interleaved2of5Mod10Wt12", HASH_INTERLEAVED2OF5MOD10WT12), new BarcodeType(2001, "Interleaved 2 of 5 (Mod 10; 21 Weighting)", com.bokai.barcodes.ITFMod10Wt21.class, "Interleaved2of5Mod10Wt21", HASH_INTERLEAVED2OF5MOD10WT21) 
        }); 
    } 
}