/*
* 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;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.charts.JRAreaPlot;
import net.sf.jasperreports.charts.JRBar3DPlot;
import net.sf.jasperreports.charts.JRBarPlot;
import net.sf.jasperreports.charts.JRBubblePlot;
import net.sf.jasperreports.charts.JRCandlestickPlot;
import net.sf.jasperreports.charts.JRCategoryDataset;
import net.sf.jasperreports.charts.JRCategorySeries;
import net.sf.jasperreports.charts.JRLinePlot;
import net.sf.jasperreports.charts.JRPie3DPlot;
import net.sf.jasperreports.charts.JRPieDataset;
import net.sf.jasperreports.charts.JRPiePlot;
import net.sf.jasperreports.charts.JRPieSeries;
import net.sf.jasperreports.charts.JRTimePeriodDataset;
import net.sf.jasperreports.charts.JRTimePeriodSeries;
import net.sf.jasperreports.charts.JRTimeSeries;
import net.sf.jasperreports.charts.JRTimeSeriesDataset;
import net.sf.jasperreports.charts.JRXyzDataset;
import net.sf.jasperreports.charts.JRXyzSeries;
/**
* @author Teodor Danciu (teodord@users.sourceforge.net)
* @version $Id: JRAbstractObjectFactory.java 3033 2009-08-27 11:46:22Z teodord $
*/
public abstract class JRAbstractObjectFactory implements JRVisitor
{
/**
*
*/
private Map objectsMap = new HashMap();
private Object visitResult = null;
/**
*
*/
protected Object get(Object object)
{
return objectsMap.get(object);
}
/**
*
*/
public void put(Object object, Object copy)
{
objectsMap.put(object, copy);
}
/**
*
*/
public Object getVisitResult(JRVisitable visitable)
{
if (visitable != null)
{
visitable.visit(this);
return visitResult;
}
return null;
}
/**
*
*/
protected void setVisitResult(Object visitResult)
{
this.visitResult = visitResult;
}
/**
*
*/
public abstract JRReportFont getReportFont(JRReportFont font);
/**
*
*/
public abstract JRStyle getStyle(JRStyle style);
/**
* Sets a style or a style reference on an object.
* <p/>
* If the container includes a style (see {@link JRStyleContainer#getStyle() getStyle()},
* a copy of this style will be created via {@link #getStyle(JRStyle) getStyle(JRStyle)}
* and set on the object.
* <p/>
* In addition to this, the implementation needs to handle the case when the container includes
* an external style reference (see {@link JRStyleContainer#getStyleNameReference() getStyleNameReference()}.
*
* @param setter a setter for the object on which the style should be set.
* @param styleContainer the original style container
* @see #getStyle(JRStyle)
*/
public abstract void setStyle(JRStyleSetter setter, JRStyleContainer styleContainer);
/**
*
*/
public abstract JRPieDataset getPieDataset(JRPieDataset pieDataset);
/**
*
*/
public abstract JRPiePlot getPiePlot(JRPiePlot piePlot);
/**
*
*/
public abstract JRPie3DPlot getPie3DPlot(JRPie3DPlot pie3DPlot);
/**
*
*/
public abstract JRCategoryDataset getCategoryDataset(JRCategoryDataset categoryDataset);
/**
*
*/
public abstract JRTimeSeriesDataset getTimeSeriesDataset( JRTimeSeriesDataset timeSeriesDataset );
/**
*
*/
public abstract JRTimePeriodDataset getTimePeriodDataset( JRTimePeriodDataset timePeriodDataset );
/**
*
*/
public abstract JRTimePeriodSeries getTimePeriodSeries( JRTimePeriodSeries timePeriodSeries );
/**
*
*/
public abstract JRTimeSeries getTimeSeries( JRTimeSeries timeSeries );
/**
*
*/
public abstract JRPieSeries getPieSeries(JRPieSeries pieSeries);
/**
*
*/
public abstract JRCategorySeries getCategorySeries(JRCategorySeries categorySeries);
/**
*
*/
public abstract JRXyzDataset getXyzDataset( JRXyzDataset xyzDataset );
/**
*
*/
public abstract JRXyzSeries getXyzSeries( JRXyzSeries xyzSeries );
/**
*
*/
public abstract JRBarPlot getBarPlot(JRBarPlot barPlot);
/**
*
*/
public abstract JRBar3DPlot getBar3DPlot( JRBar3DPlot barPlot );
/**
*
*/
public abstract JRLinePlot getLinePlot( JRLinePlot linePlot );
/**
*
*/
public abstract JRAreaPlot getAreaPlot( JRAreaPlot areaPlot );
/**
*
*/
public abstract JRBubblePlot getBubblePlot( JRBubblePlot bubblePlot );
/**
*
*/
public abstract JRCandlestickPlot getCandlestickPlot(JRCandlestickPlot candlestickPlot);
/**
*
*/
public abstract JRConditionalStyle getConditionalStyle(JRConditionalStyle conditionalStyle, JRStyle parentStyle);
public abstract JRExpression getExpression(JRExpression expression, boolean assignNotUsedId);
public JRExpression getExpression(JRExpression expression)
{
return getExpression(expression, false);
}
}