Package net.sf.jasperreports.engine.design

Source Code of net.sf.jasperreports.engine.design.JRReportCompileData

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

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.crosstabs.JRCrosstab;
import net.sf.jasperreports.engine.JRConstants;
import net.sf.jasperreports.engine.JRDataset;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;

/**
* Structure used to hold a report's expression evaluator compile data.
* <p>
* An instantce consists of expression evaluators for the main report dataset
* and for sub datasets.
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: JRReportCompileData.java 3732 2010-04-12 13:08:04Z lucianc $
*
* @see net.sf.jasperreports.engine.JasperReport#getCompileData()
*/
public class JRReportCompileData implements Serializable
{
  private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;

  /**
   * Main report dataset compile data.
   */
  private Serializable mainDatasetCompileData;
 
  /**
   * Map containing compiled data per sub dataset name.
   */
  private Map datasetCompileData;
 
  /**
   * Map containing compiled data per crosstab name.
   */
  private Map crosstabCompileData;
 
 
  /**
   * Default constructor.
   */
  public JRReportCompileData()
  {
    datasetCompileData = new HashMap();
    crosstabCompileData = new HashMap();
  }
 
 
  /**
   * Sets the main dataset compile data.
   *
   * @param compileData the main dataset compile data
   */
  public void setMainDatasetCompileData(Serializable compileData)
  {
    mainDatasetCompileData = compileData;
  }
 
 
  /**
   * Sets the compile data for a dataset.
   *
   * @param dataset the dataset
   * @param compileData the compile data
   */
  public void setDatasetCompileData(JRDataset dataset, Serializable compileData)
  {
    if (dataset.isMainDataset())
    {
      setMainDatasetCompileData(compileData);
    }
    else
    {
      datasetCompileData.put(dataset.getName(), compileData);
    }
  }
 
 
  /**
   * Sets the compile data for a crosstab.
   *
   * @param crosstabId the generated crosstab Id, which will be used to retreive the crosstab compile data at fill time.
   * @param compileData the compile data
   */
  public void setCrosstabCompileData(int crosstabId, Serializable compileData)
  {
    crosstabCompileData.put(Integer.valueOf(crosstabId), compileData);
  }
 
 
  /**
   * Returns the compile data for the main dataset.
   *
   * @return the compile data for the main dataset
   */
  public Serializable getMainDatasetCompileData()
  {
    return mainDatasetCompileData;
  }
 
 
  /**
   * Returns the compile data for a dataset.
   *
   * @param dataset the dataset
   * @return the compile data
   * @throws JRException
   */
  public Serializable getDatasetCompileData(JRDataset dataset) throws JRException
  {
    Serializable compileData;
    if (dataset.isMainDataset())
    {
      compileData = getMainDatasetCompileData();
    }
    else
    {
      compileData = (Serializable) datasetCompileData.get(dataset.getName());
      if (compileData == null)
      {
        throw new JRException("Compile data for dataset " + dataset.getName() + " not found in the report.");
      }
    }
   
    return compileData;
  }
 
 
  /**
   * Returns the compile data for a crosstab.
   *
   * @param crosstab the crosstab
   * @return the compile data
   * @throws JRException
   */
  public Serializable getCrosstabCompileData(JRCrosstab crosstab) throws JRException
  {
    Serializable compileData = (Serializable) crosstabCompileData.get(Integer.valueOf(crosstab.getId()));
    if (compileData == null)
    {
      throw new JRException("Compile data for crosstab not found in the report.");
    }
   
    return compileData;
  }

  public String getUnitName(JasperReport jasperReport, JRDataset dataset)
  {
    return JRAbstractCompiler.getUnitName(jasperReport, dataset);
  }

  public String getUnitName(JasperReport jasperReport, JRCrosstab crosstab)
  {
    return JRAbstractCompiler.getUnitName(jasperReport, crosstab);
  }
}
TOP

Related Classes of net.sf.jasperreports.engine.design.JRReportCompileData

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.