/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.jasperreports.components.barbecue;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeException;
import net.sourceforge.barbecue.BarcodeFactory;
import net.sourceforge.barbecue.linear.ean.UCCEAN128Barcode;
/**
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: BarcodeProviders.java 3717 2010-04-09 10:01:33Z teodord $
*/
public final class BarcodeProviders
{
private static Map providers;
private static synchronized void initProviders()
{
if (providers != null)
{
return;
}
providers = new HashMap();
providers.put("2of7", new Barcode2of7Provider());
providers.put("3of9", new Barcode3of9Provider());
providers.put("Bookland", new BooklandProvider());
providers.put("Codabar", new CodabarProvider());
providers.put("Code128", new Code128Provider());
providers.put("Code128A", new Code128AProvider());
providers.put("Code128B", new Code128Provider());
providers.put("Code128C", new Code128CProvider());
providers.put("Code39", new Code39Provider());
providers.put("Code39 (Extended)",
new Code39ExtendedProvider());
providers.put("EAN128", new EAN128Provider());
providers.put("EAN13", new EAN13Provider());
providers.put("GlobalTradeItemNumber",
new GlobalTradeItemNumberProvider());
providers.put("Int2of5", new Int2of5Provider());
providers.put("Monarch", new MonarchProvider());
providers.put("NW7", new NW7Provider());
providers.put("PDF417", new PDF417Provider());
providers.put("PostNet", new PostNetProvider());
providers.put("RandomWeightUPCA", new RandomWeightUPCAProvider());
providers.put("SCC14ShippingCode",
new SCC14ShippingCodeProvider());
providers.put("ShipmentIdentificationNumber",
new ShipmentIdentificationNumberProvider());
providers.put("SSCC18", new SSCC18Provider());
providers.put("Std2of5", new Std2of5Provider());
providers.put("UCC128", new UCC128Provider());
providers.put("UPCA", new UPCAProvider());
providers.put("USD3", new USD3Provider());
providers.put("USD4", new USD4Provider());
providers.put("USPS", new USPSProvider());
}
public static boolean isTypeSupported(String type)
{
initProviders();
return providers.containsKey(type);
}
public static Barcode createBarcode(BarcodeInfo barcodeInfo)
{
initProviders();
BarcodeProvider provider = (BarcodeProvider) providers.get(
barcodeInfo.getType());
if (provider == null)
{
throw new JRRuntimeException("No barcode provider for type "
+ barcodeInfo.getType());
}
try
{
return provider.createBarcode(barcodeInfo);
}
catch (BarcodeException e)
{
throw new JRRuntimeException("Error creating barcode", e);
}
}
public static class Barcode2of7Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.create2of7(barcodeInfo.getCode());
}
}
public static class Barcode3of9Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.create3of9(barcodeInfo.getCode(),
barcodeInfo.getRequiresChecksum());
}
}
public static class BooklandProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createBookland(barcodeInfo.getCode());
}
}
public static class CodabarProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCodabar(barcodeInfo.getCode());
}
}
public static class Code128Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCode128(barcodeInfo.getCode());
}
}
public static class Code128AProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCode128A(barcodeInfo.getCode());
}
}
public static class Code128BProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCode128B(barcodeInfo.getCode());
}
}
public static class Code128CProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCode128C(barcodeInfo.getCode());
}
}
public static class Code39Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createCode39(barcodeInfo.getCode(),
barcodeInfo.getRequiresChecksum());
}
}
public static class Code39ExtendedProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return new net.sourceforge.barbecue.linear.code39.Code39Barcode(
barcodeInfo.getCode(), barcodeInfo.getRequiresChecksum(), true);
}
}
public static class EAN128Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createEAN128(barcodeInfo.getCode());
}
}
public static class EAN13Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createEAN13(barcodeInfo.getCode());
}
}
public static class GlobalTradeItemNumberProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createGlobalTradeItemNumber(barcodeInfo.getCode());
}
}
public static class Int2of5Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createInt2of5(
barcodeInfo.getCode(), barcodeInfo.getRequiresChecksum());
}
}
public static class MonarchProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createMonarch(barcodeInfo.getCode());
}
}
public static class NW7Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createNW7(barcodeInfo.getCode());
}
}
public static class PDF417Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createPDF417(barcodeInfo.getCode());
}
}
public static class PostNetProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createPostNet(barcodeInfo.getCode());
}
}
public static class RandomWeightUPCAProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createRandomWeightUPCA(barcodeInfo.getCode());
}
}
public static class SCC14ShippingCodeProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createSCC14ShippingCode(barcodeInfo.getCode());
}
}
public static class ShipmentIdentificationNumberProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createShipmentIdentificationNumber(barcodeInfo.getCode());
}
}
public static class SSCC18Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return new UCCEAN128Barcode(UCCEAN128Barcode.SSCC_18_AI,
barcodeInfo.getCode(),
barcodeInfo.getRequiresChecksum());
}
}
public static class Std2of5Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createStd2of5(barcodeInfo.getCode(),
barcodeInfo.getRequiresChecksum());
}
}
public static class UCC128Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return new UCCEAN128Barcode(barcodeInfo.getApplicationIdentifier(),
barcodeInfo.getCode(), barcodeInfo.getRequiresChecksum());
}
}
public static class UPCAProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createUPCA(barcodeInfo.getCode());
}
}
public static class USD3Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createUSD3(barcodeInfo.getCode(),
barcodeInfo.getRequiresChecksum());
}
}
public static class USD4Provider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createUSD4(barcodeInfo.getCode());
}
}
public static class USPSProvider extends BaseBarcodeProvider
{
protected Barcode createBaseBarcode(BarcodeInfo barcodeInfo)
throws BarcodeException
{
return BarcodeFactory.createUSPS(barcodeInfo.getCode());
}
}
private BarcodeProviders()
{
}
}