Package net.sf.jasperreports.components.barcode4j

Source Code of net.sf.jasperreports.components.barcode4j.BarcodeXmlWriter

/*
* 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.barcode4j;

import java.io.IOException;

import net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.component.ComponentKey;
import net.sf.jasperreports.engine.type.EvaluationTimeEnum;
import net.sf.jasperreports.engine.util.JRXmlWriteHelper;
import net.sf.jasperreports.engine.util.XmlNamespace;
import net.sf.jasperreports.engine.xml.JRXmlWriter;
import net.sf.jasperreports.engine.xml.JRXmlConstants;

/**
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: BarcodeXmlWriter.java 3616 2010-03-24 14:20:41Z teodord $
*/
public class BarcodeXmlWriter implements BarcodeVisitor
{

  private final JRXmlWriteHelper xmlWriteHelper;
  private final BarcodeComponent barcodeComponent;
  private final ComponentKey componentKey;
 
  public BarcodeXmlWriter(JRXmlWriter reportWriter,
      BarcodeComponent barcode, ComponentKey componentKey)
  {
    this.xmlWriteHelper = reportWriter.getXmlWriteHelper();
    this.barcodeComponent = barcode;
    this.componentKey = componentKey;
  }
 
  public void writeBarcode()
  {
    barcodeComponent.receive(this);
  }
 
  protected void startBarcode(BarcodeComponent barcode)
  {
    XmlNamespace namespace = new XmlNamespace(
        ComponentsExtensionsRegistryFactory.NAMESPACE,
        componentKey.getNamespacePrefix(),
        ComponentsExtensionsRegistryFactory.XSD_LOCATION);
    xmlWriteHelper.startElement(componentKey.getName(), namespace);
    writeBaseAttributes(barcode);
  }
 
  protected void endBarcode() throws IOException
  {
    xmlWriteHelper.closeElement();
  }
 
  protected void writeBaseAttributes(BarcodeComponent barcode)
  {
    if (barcode.getEvaluationTimeValue() != EvaluationTimeEnum.NOW)
    {
      xmlWriteHelper.addAttribute(JRXmlConstants.ATTRIBUTE_evaluationTime,
          barcode.getEvaluationTimeValue());
    }
    xmlWriteHelper.addAttribute(JRXmlConstants.ATTRIBUTE_evaluationGroup,
        barcode.getEvaluationGroup());
   
    xmlWriteHelper.addAttribute("orientation", barcode.getOrientation(), 0);
    xmlWriteHelper.addAttribute("moduleWidth", barcode.getModuleWidth());
    xmlWriteHelper.addAttribute("textPosition", barcode.getTextPosition());
    xmlWriteHelper.addAttribute("quietZone", barcode.getQuietZone());
    xmlWriteHelper.addAttribute("verticalQuietZone", barcode.getVerticalQuietZone());
  }
 
  protected void writeBaseContents(BarcodeComponent barcode) throws IOException
  {
    xmlWriteHelper.writeExpression("codeExpression",
        barcode.getCodeExpression(), false);
    xmlWriteHelper.writeExpression("patternExpression",
        barcode.getPatternExpression(), false);
  }
 
  public void visitCodabar(CodabarComponent codabar)
  {
    try
    {
      startBarcode(codabar);
      xmlWriteHelper.addAttribute("wideFactor", codabar.getWideFactor());
      writeBaseContents(codabar);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitCode128(Code128Component code128)
  {
    try
    {
      startBarcode(code128);
      writeBaseContents(code128);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitDataMatrix(DataMatrixComponent dataMatrix)
  {
    try
    {
      startBarcode(dataMatrix);
      xmlWriteHelper.addAttribute("shape", dataMatrix.getShape());
      writeBaseContents(dataMatrix);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitEANCode128(EAN128Component ean128)
  {
    try
    {
      startBarcode(ean128);
      xmlWriteHelper.addAttribute("checksumMode", ean128.getChecksumMode());
      writeBaseContents(ean128);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitCode39(Code39Component code39)
  {
    try
    {
      startBarcode(code39);
      xmlWriteHelper.addAttribute("checksumMode", code39.getChecksumMode());
      xmlWriteHelper.addAttribute("displayChecksum", code39.isDisplayChecksum());
      xmlWriteHelper.addAttribute("displayStartStop", code39.isDisplayStartStop());
      xmlWriteHelper.addAttribute("extendedCharSetEnabled", code39.isExtendedCharSetEnabled());
      xmlWriteHelper.addAttribute("intercharGapWidth", code39.getIntercharGapWidth());
      xmlWriteHelper.addAttribute("wideFactor", code39.getWideFactor());
      writeBaseContents(code39);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitUPCA(UPCAComponent upcA)
  {
    try
    {
      startBarcode(upcA);
      xmlWriteHelper.addAttribute("checksumMode", upcA.getChecksumMode());
      writeBaseContents(upcA);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitUPCE(UPCEComponent upcE)
  {
    try
    {
      startBarcode(upcE);
      xmlWriteHelper.addAttribute("checksumMode", upcE.getChecksumMode());
      writeBaseContents(upcE);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitEAN13(EAN13Component ean13)
  {
    try
    {
      startBarcode(ean13);
      xmlWriteHelper.addAttribute("checksumMode", ean13.getChecksumMode());
      writeBaseContents(ean13);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitEAN8(EAN8Component ean8)
  {
    try
    {
      startBarcode(ean8);
      xmlWriteHelper.addAttribute("checksumMode", ean8.getChecksumMode());
      writeBaseContents(ean8);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitInterleaved2Of5(Interleaved2Of5Component interleaved2Of5)
  {
    try
    {
      startBarcode(interleaved2Of5);
      xmlWriteHelper.addAttribute("checksumMode", interleaved2Of5.getChecksumMode());
      xmlWriteHelper.addAttribute("displayChecksum", interleaved2Of5.isDisplayChecksum());
      xmlWriteHelper.addAttribute("wideFactor", interleaved2Of5.getWideFactor());
      writeBaseContents(interleaved2Of5);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  protected void writeFourStateAttributes(FourStateBarcodeComponent barcode)
  {
    xmlWriteHelper.addAttribute("ascenderHeight", barcode.getAscenderHeight());
    xmlWriteHelper.addAttribute("checksumMode", barcode.getChecksumMode());
    xmlWriteHelper.addAttribute("intercharGapWidth", barcode.getIntercharGapWidth());
    xmlWriteHelper.addAttribute("trackHeight", barcode.getTrackHeight());
  }
 
  public void visitRoyalMailCustomer(
      RoyalMailCustomerComponent royalMailCustomer)
  {
    try
    {
      startBarcode(royalMailCustomer);
      writeFourStateAttributes(royalMailCustomer);
      writeBaseContents(royalMailCustomer);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitUSPSIntelligentMail(
      USPSIntelligentMailComponent intelligentMail)
  {
    try
    {
      startBarcode(intelligentMail);
      writeFourStateAttributes(intelligentMail);
      writeBaseContents(intelligentMail);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitPostnet(POSTNETComponent postnet)
  {
    try
    {
      startBarcode(postnet);
      xmlWriteHelper.addAttribute("shortBarHeight", postnet.getShortBarHeight());
      xmlWriteHelper.addAttribute("baselinePosition", postnet.getBaselinePosition());
      xmlWriteHelper.addAttribute("checksumMode", postnet.getChecksumMode());
      xmlWriteHelper.addAttribute("displayChecksum", postnet.getDisplayChecksum());
      xmlWriteHelper.addAttribute("intercharGapWidth", postnet.getIntercharGapWidth());
      writeBaseContents(postnet);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

  public void visitPDF417(PDF417Component pdf417)
  {
    try
    {
      startBarcode(pdf417);
      xmlWriteHelper.addAttribute("minColumns", pdf417.getMinColumns());
      xmlWriteHelper.addAttribute("maxColumns", pdf417.getMaxColumns());
      xmlWriteHelper.addAttribute("minRows", pdf417.getMinRows());
      xmlWriteHelper.addAttribute("maxRows", pdf417.getMaxRows());
      xmlWriteHelper.addAttribute("widthToHeightRatio", pdf417.getWidthToHeightRatio());
      xmlWriteHelper.addAttribute("errorCorrectionLevel", pdf417.getErrorCorrectionLevel());
      writeBaseContents(pdf417);
      endBarcode();
    }
    catch (IOException e)
    {
      throw new JRRuntimeException(e);
    }
  }

}
TOP

Related Classes of net.sf.jasperreports.components.barcode4j.BarcodeXmlWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.