Package net.sf.jasperreports.components.table.fill

Source Code of net.sf.jasperreports.components.table.fill.TableReportDataset

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

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import net.sf.jasperreports.engine.JRAbstractScriptlet;
import net.sf.jasperreports.engine.JRDataset;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JRGroup;
import net.sf.jasperreports.engine.JRParameter;
import net.sf.jasperreports.engine.JRPropertiesHolder;
import net.sf.jasperreports.engine.JRPropertiesMap;
import net.sf.jasperreports.engine.JRQuery;
import net.sf.jasperreports.engine.JRScriptlet;
import net.sf.jasperreports.engine.JRSortField;
import net.sf.jasperreports.engine.JRVariable;
import net.sf.jasperreports.engine.design.JRDesignParameter;
import net.sf.jasperreports.engine.design.JRDesignScriptlet;
import net.sf.jasperreports.engine.type.WhenResourceMissingTypeEnum;

/**
*
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: TableReportDataset.java 3735 2010-04-12 15:45:13Z lucianc $
*/
public class TableReportDataset implements JRDataset
{

  private final JRDataset tableSubdataset;
  private final String name;
  private final TableReportGroup[] tableGroups;
  private final List<JRGroup> groups;
  private final JRPropertiesMap properties;
 
  private final List<JRScriptlet> scriptlets;
  private final List<JRParameter> parameters;
 
  public TableReportDataset(JRDataset tableSubdataset, String name)
  {
    this.tableSubdataset = tableSubdataset;
    this.name = name;
   
    JRGroup[] datasetGroups = tableSubdataset.getGroups();
    groups = new ArrayList<JRGroup>();
    if (datasetGroups == null)
    {
      tableGroups = null;
    }
    else
    {
      tableGroups = new TableReportGroup[datasetGroups.length];
      for (int i = 0; i < datasetGroups.length; i++)
      {
        tableGroups[i] = new TableReportGroup(datasetGroups[i]);
        groups.add(tableGroups[i]);
      }
    }
   
    properties = tableSubdataset.getPropertiesMap().cloneProperties();
   
    scriptlets = new ArrayList<JRScriptlet>();
    JRScriptlet[] datasetScriptlets = tableSubdataset.getScriptlets();
    if (datasetScriptlets != null)
    {
      Collections.addAll(scriptlets, datasetScriptlets);
    }
   
    JRParameter[] datasetParameters = tableSubdataset.getParameters();
    parameters = new ArrayList<JRParameter>();
    if (datasetParameters != null)
    {
      Collections.addAll(parameters, datasetParameters);
    }
  }

  public JRField[] getFields()
  {
    return tableSubdataset.getFields();
  }

  public JRExpression getFilterExpression()
  {
    return tableSubdataset.getFilterExpression();
  }

  public TableReportGroup[] getTableGroups()
  {
    return tableGroups;
  }

  public JRGroup[] getGroups()
  {
    return groups.toArray(new JRGroup[groups.size()]);
  }
 
  public void addFirstGroup(JRGroup group)
  {
    groups.add(0, group);
  }

  public String getName()
  {
    return name;
  }

  public JRParameter[] getParameters()
  {
    return parameters.toArray(new JRParameter[parameters.size()]);
  }

  public JRQuery getQuery()
  {
    return tableSubdataset.getQuery();
  }

  public String getResourceBundle()
  {
    return tableSubdataset.getResourceBundle();
  }

  public String getScriptletClass()
  {
    return tableSubdataset.getScriptletClass();
  }

  public JRScriptlet[] getScriptlets()
  {
    return scriptlets.toArray(new JRScriptlet[scriptlets.size()]);
  }

  public JRSortField[] getSortFields()
  {
    return tableSubdataset.getSortFields();
  }

  public JRVariable[] getVariables()
  {
    return tableSubdataset.getVariables();
  }

  @Deprecated
  public byte getWhenResourceMissingType()
  {
    return tableSubdataset.getWhenResourceMissingType();
  }

  public WhenResourceMissingTypeEnum getWhenResourceMissingTypeValue()
  {
    return tableSubdataset.getWhenResourceMissingTypeValue();
  }

  public boolean isMainDataset()
  {
    // used as main dataset
    return true;
  }

  @Deprecated
  public void setWhenResourceMissingType(byte whenResourceMissingType)
  {
    throw new UnsupportedOperationException();
  }

  public void setWhenResourceMissingType(
      WhenResourceMissingTypeEnum whenResourceMissingType)
  {
    throw new UnsupportedOperationException();
  }

  public JRPropertiesHolder getParentProperties()
  {
    return tableSubdataset.getParentProperties();
  }

  public JRPropertiesMap getPropertiesMap()
  {
    return properties;
  }

  public boolean hasProperties()
  {
    return properties.hasProperties();
  }
 
  public Object clone()
  {
    throw new UnsupportedOperationException();
  }
 
  public void addScriptlet(String name, Class<? extends JRAbstractScriptlet> type)
  {
    JRDesignScriptlet scriptlet = new JRDesignScriptlet();
    scriptlet.setName(name);
    scriptlet.setValueClass(type);
   
    JRDesignParameter parameter = new JRDesignParameter();
    parameter.setName(name + JRScriptlet.SCRIPTLET_PARAMETER_NAME_SUFFIX);
    parameter.setValueClass(scriptlet.getValueClass());
    parameter.setSystemDefined(true);
    parameter.setForPrompting(false);
   
    scriptlets.add(scriptlet);
    parameters.add(parameter);
  }
 
}
TOP

Related Classes of net.sf.jasperreports.components.table.fill.TableReportDataset

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.