first commit
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import net.sf.jasperreports.engine.JRPropertiesHolder;
|
||||
import org.apache.commons.digester.Rule;
|
||||
import org.xml.sax.Attributes;
|
||||
|
||||
public class JRPropertyDigesterRule extends Rule {
|
||||
public void begin(String namespace, String name, Attributes attributes) {
|
||||
JRPropertiesHolder propertiesHolder = (JRPropertiesHolder)this.digester.peek();
|
||||
String key = attributes.getValue("name");
|
||||
String value = attributes.getValue("value");
|
||||
propertiesHolder.getPropertiesMap().setProperty(key, value);
|
||||
}
|
||||
}
|
101
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlBaseWriter.java
Normal file
101
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlBaseWriter.java
Normal file
@@ -0,0 +1,101 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import java.io.IOException;
|
||||
import net.sf.jasperreports.engine.JRConditionalStyle;
|
||||
import net.sf.jasperreports.engine.JRLineBox;
|
||||
import net.sf.jasperreports.engine.JRPen;
|
||||
import net.sf.jasperreports.engine.JRStyle;
|
||||
import net.sf.jasperreports.engine.JRStyleContainer;
|
||||
import net.sf.jasperreports.engine.util.JRXmlWriteHelper;
|
||||
|
||||
public abstract class JRXmlBaseWriter {
|
||||
protected JRXmlWriteHelper writer;
|
||||
|
||||
protected void useWriter(JRXmlWriteHelper aWriter) {
|
||||
this.writer = aWriter;
|
||||
}
|
||||
|
||||
protected void writeStyle(JRStyle style) throws IOException {
|
||||
this.writer.startElement("style");
|
||||
this.writer.addEncodedAttribute("name", style.getName());
|
||||
this.writer.addAttribute("isDefault", style.isDefault());
|
||||
writeStyleReferenceAttr((JRStyleContainer)style);
|
||||
this.writer.addAttribute("mode", style.getOwnMode(), JRXmlConstants.getModeMap());
|
||||
this.writer.addAttribute("forecolor", style.getOwnForecolor());
|
||||
this.writer.addAttribute("backcolor", style.getOwnBackcolor());
|
||||
this.writer.addAttribute("fill", style.getOwnFill(), JRXmlConstants.getFillMap());
|
||||
this.writer.addAttribute("radius", style.getOwnRadius());
|
||||
this.writer.addAttribute("scaleImage", style.getOwnScaleImage(), JRXmlConstants.getScaleImageMap());
|
||||
this.writer.addAttribute("hAlign", style.getOwnHorizontalAlignment(), JRXmlConstants.getHorizontalAlignMap());
|
||||
this.writer.addAttribute("vAlign", style.getOwnVerticalAlignment(), JRXmlConstants.getVerticalAlignMap());
|
||||
this.writer.addAttribute("rotation", style.getOwnRotation(), JRXmlConstants.getRotationMap());
|
||||
this.writer.addAttribute("lineSpacing", style.getOwnLineSpacing(), JRXmlConstants.getLineSpacingMap());
|
||||
this.writer.addAttribute("markup", style.getOwnMarkup());
|
||||
this.writer.addEncodedAttribute("pattern", style.getOwnPattern());
|
||||
this.writer.addAttribute("isBlankWhenNull", style.isOwnBlankWhenNull());
|
||||
this.writer.addEncodedAttribute("fontName", style.getOwnFontName());
|
||||
this.writer.addAttribute("fontSize", style.getOwnFontSize());
|
||||
this.writer.addAttribute("isBold", style.isOwnBold());
|
||||
this.writer.addAttribute("isItalic", style.isOwnItalic());
|
||||
this.writer.addAttribute("isUnderline", style.isOwnUnderline());
|
||||
this.writer.addAttribute("isStrikeThrough", style.isOwnStrikeThrough());
|
||||
this.writer.addEncodedAttribute("pdfFontName", style.getOwnPdfFontName());
|
||||
this.writer.addEncodedAttribute("pdfEncoding", style.getOwnPdfEncoding());
|
||||
this.writer.addAttribute("isPdfEmbedded", style.isOwnPdfEmbedded());
|
||||
writePen(style.getLinePen());
|
||||
writeBox(style.getLineBox());
|
||||
if (toWriteConditionalStyles()) {
|
||||
JRConditionalStyle[] conditionalStyles = style.getConditionalStyles();
|
||||
if (!(style instanceof JRConditionalStyle) && conditionalStyles != null)
|
||||
for (int i = 0; i < conditionalStyles.length; i++)
|
||||
writeConditionalStyle(conditionalStyles[i]);
|
||||
}
|
||||
this.writer.closeElement();
|
||||
}
|
||||
|
||||
protected void writeStyleReferenceAttr(JRStyleContainer styleContainer) {
|
||||
if (styleContainer.getStyle() != null) {
|
||||
this.writer.addEncodedAttribute("style", styleContainer.getStyle().getName());
|
||||
} else if (styleContainer.getStyleNameReference() != null) {
|
||||
this.writer.addEncodedAttribute("style", styleContainer.getStyleNameReference());
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract boolean toWriteConditionalStyles();
|
||||
|
||||
protected void writeConditionalStyle(JRConditionalStyle style) throws IOException {
|
||||
this.writer.startElement("conditionalStyle");
|
||||
this.writer.writeExpression("conditionExpression", style.getConditionExpression(), false);
|
||||
writeStyle((JRStyle)style);
|
||||
this.writer.closeElement();
|
||||
}
|
||||
|
||||
protected void writePen(JRPen pen) throws IOException {
|
||||
writePen("pen", pen);
|
||||
}
|
||||
|
||||
private void writePen(String element, JRPen pen) throws IOException {
|
||||
this.writer.startElement(element);
|
||||
this.writer.addAttribute("lineWidth", pen.getOwnLineWidth());
|
||||
this.writer.addAttribute("lineStyle", pen.getOwnLineStyle(), JRXmlConstants.getLineStyleMap());
|
||||
this.writer.addAttribute("lineColor", pen.getOwnLineColor());
|
||||
this.writer.closeElement(true);
|
||||
}
|
||||
|
||||
protected void writeBox(JRLineBox box) throws IOException {
|
||||
if (box != null) {
|
||||
this.writer.startElement("box");
|
||||
this.writer.addAttribute("padding", box.getOwnPadding());
|
||||
this.writer.addAttribute("topPadding", box.getOwnTopPadding());
|
||||
this.writer.addAttribute("leftPadding", box.getOwnLeftPadding());
|
||||
this.writer.addAttribute("bottomPadding", box.getOwnBottomPadding());
|
||||
this.writer.addAttribute("rightPadding", box.getOwnRightPadding());
|
||||
writePen("pen", (JRPen)box.getPen());
|
||||
writePen("topPen", (JRPen)box.getTopPen());
|
||||
writePen("leftPen", (JRPen)box.getLeftPen());
|
||||
writePen("bottomPen", (JRPen)box.getBottomPen());
|
||||
writePen("rightPen", (JRPen)box.getRightPen());
|
||||
this.writer.closeElement(true);
|
||||
}
|
||||
}
|
||||
}
|
1740
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlConstants.java
Normal file
1740
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlConstants.java
Normal file
File diff suppressed because it is too large
Load Diff
46
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlDigester.java
Normal file
46
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlDigester.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import org.apache.commons.digester.Digester;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.XMLReader;
|
||||
|
||||
public class JRXmlDigester extends Digester {
|
||||
public JRXmlDigester() {}
|
||||
|
||||
public JRXmlDigester(XMLReader xmlReader) {
|
||||
super(xmlReader);
|
||||
}
|
||||
|
||||
public InputSource resolveEntity(String pubId, String systemId) {
|
||||
InputSource inputSource = null;
|
||||
if (systemId != null) {
|
||||
InputStream is;
|
||||
String dtd = null;
|
||||
if ("http://jasperreports.sourceforge.net/dtds/jasperreport.dtd".equals(systemId)) {
|
||||
dtd = "net/sf/jasperreports/engine/dtds/jasperreport.dtd";
|
||||
} else if ("http://jasperreports.sourceforge.net/dtds/jasperprint.dtd".equals(systemId)) {
|
||||
dtd = "net/sf/jasperreports/engine/dtds/jasperprint.dtd";
|
||||
} else if ("http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd".equals(systemId)) {
|
||||
dtd = "net/sf/jasperreports/engine/dtds/jaspertemplate.dtd";
|
||||
} else {
|
||||
return new InputSource(systemId);
|
||||
}
|
||||
ClassLoader clsLoader = Thread.currentThread().getContextClassLoader();
|
||||
URL url = null;
|
||||
if (clsLoader != null)
|
||||
url = clsLoader.getResource(dtd);
|
||||
if (url == null)
|
||||
clsLoader = JRXmlDigester.class.getClassLoader();
|
||||
if (clsLoader == null) {
|
||||
is = JRXmlDigester.class.getResourceAsStream("/" + dtd);
|
||||
} else {
|
||||
is = clsLoader.getResourceAsStream(dtd);
|
||||
}
|
||||
if (is != null)
|
||||
inputSource = new InputSource(is);
|
||||
}
|
||||
return inputSource;
|
||||
}
|
||||
}
|
@@ -0,0 +1,714 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import net.sf.jasperreports.charts.JRChartAxis;
|
||||
import net.sf.jasperreports.charts.design.JRDesignCategorySeries;
|
||||
import net.sf.jasperreports.charts.design.JRDesignDataRange;
|
||||
import net.sf.jasperreports.charts.design.JRDesignTimePeriodSeries;
|
||||
import net.sf.jasperreports.charts.design.JRDesignTimeSeries;
|
||||
import net.sf.jasperreports.charts.design.JRDesignValueDisplay;
|
||||
import net.sf.jasperreports.charts.design.JRDesignXySeries;
|
||||
import net.sf.jasperreports.charts.design.JRDesignXyzSeries;
|
||||
import net.sf.jasperreports.charts.util.JRAxisFormat;
|
||||
import net.sf.jasperreports.charts.util.JRMeterInterval;
|
||||
import net.sf.jasperreports.charts.xml.JRAreaChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRAreaPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBar3DChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBar3DPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBarChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBarPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBubbleChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRBubblePlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRCandlestickChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRCandlestickPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRCategoryDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRCategorySeriesFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRChartAxisFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRDataRangeFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRHighLowChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRHighLowDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRHighLowPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRLineChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRLinePlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRMeterChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRMeterIntervalFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRMeterPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRMultiAxisChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRMultiAxisPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRPie3DChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRPie3DPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRPieChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRPieDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRPiePlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRScatterChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRScatterPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRStackedAreaChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRStackedBar3DChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRStackedBarChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRThermometerChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRThermometerPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimePeriodDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimePeriodSeriesFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimeSeriesChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimeSeriesDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimeSeriesFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRTimeSeriesPlotFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRValueDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRValueDisplayFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyAreaChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyBarChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyLineChartFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXySeriesFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyzDatasetFactory;
|
||||
import net.sf.jasperreports.charts.xml.JRXyzSeriesFactory;
|
||||
import net.sf.jasperreports.crosstabs.JRCrosstabParameter;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCellContents;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabBucket;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabCell;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabColumnGroup;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabMeasure;
|
||||
import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabRowGroup;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCellContentsFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabBucketExpressionFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabBucketFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabCellFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabColumnGroupFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabDatasetFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabMeasureExpressionFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabMeasureFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabParameterFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabParameterValueExpressionFactory;
|
||||
import net.sf.jasperreports.crosstabs.xml.JRCrosstabRowGroupFactory;
|
||||
import net.sf.jasperreports.engine.JRBand;
|
||||
import net.sf.jasperreports.engine.JRChartPlot;
|
||||
import net.sf.jasperreports.engine.JRDatasetParameter;
|
||||
import net.sf.jasperreports.engine.JRDatasetRun;
|
||||
import net.sf.jasperreports.engine.JRExpression;
|
||||
import net.sf.jasperreports.engine.JRField;
|
||||
import net.sf.jasperreports.engine.JRFont;
|
||||
import net.sf.jasperreports.engine.JRHyperlink;
|
||||
import net.sf.jasperreports.engine.JRHyperlinkParameter;
|
||||
import net.sf.jasperreports.engine.JRParameter;
|
||||
import net.sf.jasperreports.engine.JRPropertyExpression;
|
||||
import net.sf.jasperreports.engine.JRReportFont;
|
||||
import net.sf.jasperreports.engine.JRReportTemplate;
|
||||
import net.sf.jasperreports.engine.JRSortField;
|
||||
import net.sf.jasperreports.engine.JRStyle;
|
||||
import net.sf.jasperreports.engine.JRSubreportParameter;
|
||||
import net.sf.jasperreports.engine.JRSubreportReturnValue;
|
||||
import net.sf.jasperreports.engine.design.JRDesignDataset;
|
||||
import net.sf.jasperreports.engine.design.JRDesignElement;
|
||||
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
|
||||
import net.sf.jasperreports.engine.design.JRDesignExpression;
|
||||
import net.sf.jasperreports.engine.design.JRDesignGroup;
|
||||
import net.sf.jasperreports.engine.design.JRDesignQuery;
|
||||
import net.sf.jasperreports.engine.design.JRDesignReportTemplate;
|
||||
import net.sf.jasperreports.engine.design.JRDesignVariable;
|
||||
import net.sf.jasperreports.engine.design.JasperDesign;
|
||||
import net.sf.jasperreports.engine.util.JRProperties;
|
||||
import org.apache.commons.digester.Digester;
|
||||
import org.apache.commons.digester.Rule;
|
||||
import org.apache.commons.digester.SetNestedPropertiesRule;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
|
||||
public class JRXmlDigesterFactory {
|
||||
public static void configureDigester(Digester digester) throws SAXException, ParserConfigurationException {
|
||||
boolean validating = JRProperties.getBooleanProperty("net.sf.jasperreports.compiler.xml.validation");
|
||||
digester.setErrorHandler(new ErrorHandlerImpl());
|
||||
digester.setValidating(validating);
|
||||
digester.setFeature("http://xml.org/sax/features/validation", validating);
|
||||
digester.addFactoryCreate("jasperReport", JasperDesignFactory.class.getName());
|
||||
digester.addSetNext("jasperReport", "setJasperDesign", JasperDesign.class.getName());
|
||||
digester.addRule("*/property", new JRPropertyDigesterRule());
|
||||
String propertyExpressionPattern = "*/propertyExpression";
|
||||
digester.addFactoryCreate(propertyExpressionPattern, JRPropertyExpressionFactory.class.getName());
|
||||
digester.addSetNext(propertyExpressionPattern, "addPropertyExpression", JRPropertyExpression.class.getName());
|
||||
digester.addFactoryCreate(propertyExpressionPattern, JRExpressionFactory.StringExpressionFactory.class.getName());
|
||||
digester.addSetNext(propertyExpressionPattern, "setValueExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(propertyExpressionPattern, "setText", 0);
|
||||
digester.addCallMethod("jasperReport/import", "addImport", 1);
|
||||
digester.addCallParam("jasperReport/import", 0, "value");
|
||||
addTemplateRules(digester);
|
||||
digester.addFactoryCreate("jasperReport/reportFont", JRReportFontFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/reportFont", "addFont", JRReportFont.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/style", JRStyleFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/style", "addStyle", JRStyle.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/style/conditionalStyle", JRConditionalStyleFactory.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/style/conditionalStyle/conditionExpression", JRExpressionFactory.BooleanExpressionFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/style/conditionalStyle/conditionExpression", "setConditionExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("jasperReport/style/conditionalStyle/conditionExpression", "setText", 0);
|
||||
digester.addFactoryCreate("jasperReport/style/conditionalStyle/style", JRConditionalStyleFillerFactory.class.getName());
|
||||
digester.addFactoryCreate("*/style/pen", JRPenFactory.Style.class.getName());
|
||||
digester.addFactoryCreate("*/parameter", JRParameterFactory.class.getName());
|
||||
digester.addSetNext("*/parameter", "addParameter", JRParameter.class.getName());
|
||||
digester.addCallMethod("*/parameter/parameterDescription", "setDescription", 0);
|
||||
digester.addFactoryCreate("*/parameter/defaultValueExpression", JRDefaultValueExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/parameter/defaultValueExpression", "setDefaultValueExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/parameter/defaultValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/queryString", JRQueryFactory.class.getName());
|
||||
digester.addSetNext("*/queryString", "setQuery", JRDesignQuery.class.getName());
|
||||
digester.addCallMethod("*/queryString", "setText", 0);
|
||||
digester.addFactoryCreate("*/field", JRFieldFactory.class.getName());
|
||||
digester.addSetNext("*/field", "addField", JRField.class.getName());
|
||||
digester.addCallMethod("*/field/fieldDescription", "setDescription", 0);
|
||||
digester.addFactoryCreate("*/sortField", JRSortFieldFactory.class.getName());
|
||||
digester.addSetNext("*/sortField", "addSortField", JRSortField.class.getName());
|
||||
digester.addFactoryCreate("*/variable", JRVariableFactory.class.getName());
|
||||
digester.addSetNext("*/variable", "addVariable", JRDesignVariable.class.getName());
|
||||
digester.addFactoryCreate("*/variable/variableExpression", JRVariableExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/variable/variableExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/variable/variableExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/variable/initialValueExpression", JRInitialValueExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/variable/initialValueExpression", "setInitialValueExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/variable/initialValueExpression", "setText", 0);
|
||||
String filterExpressionPath = "*/filterExpression";
|
||||
digester.addFactoryCreate(filterExpressionPath, JRExpressionFactory.BooleanExpressionFactory.class.getName());
|
||||
digester.addSetNext(filterExpressionPath, "setFilterExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(filterExpressionPath, "setText", 0);
|
||||
digester.addFactoryCreate("*/group", JRGroupFactory.class.getName());
|
||||
digester.addSetNext("*/group", "addGroup", JRDesignGroup.class.getName());
|
||||
digester.addFactoryCreate("*/group/groupExpression", JRExpressionFactory.ObjectExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/group/groupExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/group/groupExpression", "setText", 0);
|
||||
digester.addFactoryCreate("jasperReport/background/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/background/band", "setBackground", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/title/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/title/band", "setTitle", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/pageHeader/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/pageHeader/band", "setPageHeader", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/columnHeader/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/columnHeader/band", "setColumnHeader", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/group/groupHeader/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/group/groupHeader/band", "setGroupHeader", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/detail/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/detail/band", "setDetail", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/group/groupFooter/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/group/groupFooter/band", "setGroupFooter", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/columnFooter/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/columnFooter/band", "setColumnFooter", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/pageFooter/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/pageFooter/band", "setPageFooter", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/lastPageFooter/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/lastPageFooter/band", "setLastPageFooter", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/summary/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/summary/band", "setSummary", JRBand.class.getName());
|
||||
digester.addFactoryCreate("jasperReport/noData/band", JRBandFactory.class.getName());
|
||||
digester.addSetNext("jasperReport/noData/band", "setNoData", JRBand.class.getName());
|
||||
digester.addFactoryCreate("*/band/printWhenExpression", JRExpressionFactory.BooleanExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/band/printWhenExpression", "setPrintWhenExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/band/printWhenExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/break", JRBreakFactory.class.getName());
|
||||
digester.addSetNext("*/break", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/line", JRLineFactory.class.getName());
|
||||
digester.addSetNext("*/line", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/reportElement", JRElementFactory.class.getName());
|
||||
digester.addFactoryCreate("*/reportElement/printWhenExpression", JRExpressionFactory.BooleanExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/reportElement/printWhenExpression", "setPrintWhenExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/reportElement/printWhenExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/graphicElement", JRGraphicElementFactory.class.getName());
|
||||
digester.addFactoryCreate("*/graphicElement/pen", JRPenFactory.class.getName());
|
||||
digester.addFactoryCreate("*/rectangle", JRRectangleFactory.class.getName());
|
||||
digester.addSetNext("*/rectangle", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/ellipse", JREllipseFactory.class.getName());
|
||||
digester.addSetNext("*/ellipse", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/image", JRImageFactory.class.getName());
|
||||
digester.addSetNext("*/image", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/box", JRBoxFactory.class.getName());
|
||||
digester.addFactoryCreate("*/box/pen", JRPenFactory.Box.class.getName());
|
||||
digester.addFactoryCreate("*/box/topPen", JRPenFactory.Top.class.getName());
|
||||
digester.addFactoryCreate("*/box/leftPen", JRPenFactory.Left.class.getName());
|
||||
digester.addFactoryCreate("*/box/bottomPen", JRPenFactory.Bottom.class.getName());
|
||||
digester.addFactoryCreate("*/box/rightPen", JRPenFactory.Right.class.getName());
|
||||
digester.addFactoryCreate("*/image/imageExpression", JRStringExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/image/imageExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/image/imageExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/staticText", JRStaticTextFactory.class.getName());
|
||||
digester.addSetNext("*/staticText", "addElement", JRDesignElement.class.getName());
|
||||
SetNestedPropertiesRule textRule = new SetNestedPropertiesRule(new String[] { "text", "reportElement", "box", "textElement" }, new String[] { "text" });
|
||||
textRule.setTrimData(false);
|
||||
textRule.setAllowUnknownChildElements(true);
|
||||
digester.addRule("*/staticText", (Rule)textRule);
|
||||
digester.addFactoryCreate("*/textElement", JRTextElementFactory.class.getName());
|
||||
digester.addFactoryCreate("*/textElement/font", JRFontFactory.TextElementFontFactory.class.getName());
|
||||
digester.addFactoryCreate("*/textField", JRTextFieldFactory.class.getName());
|
||||
digester.addSetNext("*/textField", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/textField/textFieldExpression", JRStringExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/textField/textFieldExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/textField/textFieldExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/anchorNameExpression", JRExpressionFactory.StringExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/anchorNameExpression", "setAnchorNameExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/anchorNameExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/hyperlinkReferenceExpression", JRExpressionFactory.StringExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/hyperlinkReferenceExpression", "setHyperlinkReferenceExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/hyperlinkReferenceExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/hyperlinkAnchorExpression", JRExpressionFactory.StringExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/hyperlinkAnchorExpression", "setHyperlinkAnchorExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/hyperlinkAnchorExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/hyperlinkPageExpression", JRExpressionFactory.IntegerExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/hyperlinkPageExpression", "setHyperlinkPageExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/hyperlinkPageExpression", "setText", 0);
|
||||
String hyperlinkTooltipExpressionPattern = "*/hyperlinkTooltipExpression";
|
||||
digester.addFactoryCreate(hyperlinkTooltipExpressionPattern, JRExpressionFactory.StringExpressionFactory.class.getName());
|
||||
digester.addSetNext(hyperlinkTooltipExpressionPattern, "setHyperlinkTooltipExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(hyperlinkTooltipExpressionPattern, "setText", 0);
|
||||
addHyperlinkParameterRules(digester);
|
||||
digester.addFactoryCreate("*/subreport", JRSubreportFactory.class.getName());
|
||||
digester.addSetNext("*/subreport", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/subreport/subreportParameter", JRSubreportParameterFactory.class.getName());
|
||||
digester.addSetNext("*/subreport/subreportParameter", "addParameter", JRSubreportParameter.class.getName());
|
||||
digester.addFactoryCreate("*/subreport/returnValue", JRSubreportReturnValueFactory.class.getName());
|
||||
digester.addSetNext("*/subreport/returnValue", "addReturnValue", JRSubreportReturnValue.class.getName());
|
||||
digester.addFactoryCreate("*/parametersMapExpression", JRExpressionFactory.MapExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/parametersMapExpression", "setParametersMapExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/parametersMapExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/subreport/subreportParameter/subreportParameterExpression", JRExpressionFactory.ObjectExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/subreport/subreportParameter/subreportParameterExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/subreport/subreportParameter/subreportParameterExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/connectionExpression", JRExpressionFactory.ConnectionExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/connectionExpression", "setConnectionExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/connectionExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/dataSourceExpression", JRExpressionFactory.DataSourceExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/dataSourceExpression", "setDataSourceExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/dataSourceExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/subreport/subreportExpression", JRSubreportExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/subreport/subreportExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/subreport/subreportExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/elementGroup", JRElementGroupFactory.class.getName());
|
||||
digester.addSetNext("*/elementGroup", "addElementGroup", JRDesignElementGroup.class.getName());
|
||||
addChartRules(digester);
|
||||
addDatasetRules(digester);
|
||||
addCrosstabRules(digester);
|
||||
addFrameRules(digester);
|
||||
}
|
||||
|
||||
protected static void addTemplateRules(Digester digester) {
|
||||
String templatePattern = "jasperReport/template";
|
||||
digester.addObjectCreate(templatePattern, JRDesignReportTemplate.class);
|
||||
digester.addSetNext(templatePattern, "addTemplate", JRReportTemplate.class.getName());
|
||||
digester.addFactoryCreate(templatePattern, JRStringExpressionFactory.class);
|
||||
digester.addCallMethod(templatePattern, "setText", 0);
|
||||
digester.addSetNext(templatePattern, "setSourceExpression", JRExpression.class.getName());
|
||||
}
|
||||
|
||||
private static void addChartRules(Digester digester) {
|
||||
digester.addFactoryCreate("*/dataset", JRElementDatasetFactory.class.getName());
|
||||
String datasetIncrementWhenExpressionPath = "*/dataset/incrementWhenExpression";
|
||||
digester.addFactoryCreate(datasetIncrementWhenExpressionPath, JRExpressionFactory.BooleanExpressionFactory.class.getName());
|
||||
digester.addSetNext(datasetIncrementWhenExpressionPath, "setIncrementWhenExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(datasetIncrementWhenExpressionPath, "setText", 0);
|
||||
digester.addFactoryCreate("*/plot", JRChartPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/plot/seriesColor", JRChartPlotFactory.JRSeriesColorFactory.class.getName());
|
||||
digester.addSetNext("*/plot/seriesColor", "addSeriesColor", JRChartPlot.JRSeriesColor.class.getName());
|
||||
digester.addFactoryCreate("*/chart", JRChartFactory.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartTitle", JRChartFactory.JRChartTitleFactory.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartTitle/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/chart/chartTitle/font", "setTitleFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartTitle/titleExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/chart/chartTitle/titleExpression", "setTitleExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/chart/chartTitle/titleExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/chart/chartSubtitle", JRChartFactory.JRChartSubtitleFactory.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartSubtitle/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/chart/chartSubtitle/font", "setSubtitleFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartSubtitle/subtitleExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/chart/chartSubtitle/subtitleExpression", "setSubtitleExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/chart/chartSubtitle/subtitleExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/chart/chartLegend", JRChartFactory.JRChartLegendFactory.class.getName());
|
||||
digester.addFactoryCreate("*/chart/chartLegend/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/chart/chartLegend/font", "setLegendFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/categoryAxisFormat/axisFormat", JRChartFactory.JRChartAxisFormatFactory.class.getName());
|
||||
digester.addSetNext("*/categoryAxisFormat/axisFormat", "setCategoryAxisFormat", JRAxisFormat.class.getName());
|
||||
digester.addFactoryCreate("*/categoryAxisFormat/axisFormat/labelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/categoryAxisFormat/axisFormat/labelFont/font", "setLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/categoryAxisFormat/axisFormat/tickLabelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/categoryAxisFormat/axisFormat/tickLabelFont/font", "setTickLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/valueAxisFormat/axisFormat", JRChartFactory.JRChartAxisFormatFactory.class.getName());
|
||||
digester.addSetNext("*/valueAxisFormat/axisFormat", "setValueAxisFormat", JRAxisFormat.class.getName());
|
||||
digester.addFactoryCreate("*/valueAxisFormat/axisFormat/labelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/valueAxisFormat/axisFormat/labelFont/font", "setLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/valueAxisFormat/axisFormat/tickLabelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/valueAxisFormat/axisFormat/tickLabelFont/font", "setTickLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/timeAxisFormat/axisFormat", JRChartFactory.JRChartAxisFormatFactory.class.getName());
|
||||
digester.addSetNext("*/timeAxisFormat/axisFormat", "setTimeAxisFormat", JRAxisFormat.class.getName());
|
||||
digester.addFactoryCreate("*/timeAxisFormat/axisFormat/labelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/timeAxisFormat/axisFormat/labelFont/font", "setLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/timeAxisFormat/axisFormat/tickLabelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/timeAxisFormat/axisFormat/tickLabelFont/font", "setTickLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/xAxisFormat/axisFormat", JRChartFactory.JRChartAxisFormatFactory.class.getName());
|
||||
digester.addSetNext("*/xAxisFormat/axisFormat", "setXAxisFormat", JRAxisFormat.class.getName());
|
||||
digester.addFactoryCreate("*/xAxisFormat/axisFormat/labelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/xAxisFormat/axisFormat/labelFont/font", "setLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/xAxisFormat/axisFormat/tickLabelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/xAxisFormat/axisFormat/tickLabelFont/font", "setTickLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/yAxisFormat/axisFormat", JRChartFactory.JRChartAxisFormatFactory.class.getName());
|
||||
digester.addSetNext("*/yAxisFormat/axisFormat", "setYAxisFormat", JRAxisFormat.class.getName());
|
||||
digester.addFactoryCreate("*/yAxisFormat/axisFormat/labelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/yAxisFormat/axisFormat/labelFont/font", "setLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/yAxisFormat/axisFormat/tickLabelFont/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/yAxisFormat/axisFormat/tickLabelFont/font", "setTickLabelFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/pieChart", JRPieChartFactory.class.getName());
|
||||
digester.addSetNext("*/pieChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/pieChart/piePlot", JRPiePlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/pieDataset", JRPieDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/pieDataset/keyExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/pieDataset/keyExpression", "setKeyExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/pieDataset/keyExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/pieDataset/labelExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/pieDataset/labelExpression", "setLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/pieDataset/labelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/pieDataset/valueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/pieDataset/valueExpression", "setValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/pieDataset/valueExpression", "setText", 0);
|
||||
String sectionHyperlinkPattern = "*/pieDataset/sectionHyperlink";
|
||||
digester.addFactoryCreate(sectionHyperlinkPattern, JRHyperlinkFactory.class);
|
||||
digester.addSetNext(sectionHyperlinkPattern, "setSectionHyperlink", JRHyperlink.class.getName());
|
||||
digester.addFactoryCreate("*/pie3DChart", JRPie3DChartFactory.class.getName());
|
||||
digester.addSetNext("*/pie3DChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/pie3DPlot", JRPie3DPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/barChart", JRBarChartFactory.class.getName());
|
||||
digester.addSetNext("*/barChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/barChart/barPlot", JRBarPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/barPlot/categoryAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/barPlot/categoryAxisLabelExpression", "setCategoryAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/barPlot/categoryAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/barPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/barPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/barPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/areaChart", JRAreaChartFactory.class.getName());
|
||||
digester.addSetNext("*/areaChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/areaChart/areaPlot", JRAreaPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/xyAreaChart", JRXyAreaChartFactory.class.getName());
|
||||
digester.addSetNext("*/xyAreaChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/xyAreaChart/areaPlot", JRAreaPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/areaPlot/categoryAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/areaPlot/categoryAxisLabelExpression", "setCategoryAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/areaPlot/categoryAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/areaPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/areaPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/areaPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/bar3DChart", JRBar3DChartFactory.class.getName());
|
||||
digester.addSetNext("*/bar3DChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/bar3DChart/bar3DPlot", JRBar3DPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/bar3DPlot/categoryAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/bar3DPlot/categoryAxisLabelExpression", "setCategoryAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/bar3DPlot/categoryAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/bar3DPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/bar3DPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/bar3DPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/categoryDataset", JRCategoryDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/categoryDataset/categorySeries", JRCategorySeriesFactory.class.getName());
|
||||
digester.addSetNext("*/categoryDataset/categorySeries", "addCategorySeries", JRDesignCategorySeries.class.getName());
|
||||
digester.addFactoryCreate("*/categorySeries/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/categorySeries/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/categorySeries/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/categorySeries/categoryExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/categorySeries/categoryExpression", "setCategoryExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/categorySeries/categoryExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/categorySeries/labelExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/categorySeries/labelExpression", "setLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/categorySeries/labelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/categorySeries/valueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/categorySeries/valueExpression", "setValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/categorySeries/valueExpression", "setText", 0);
|
||||
String itemHyperlinkPattern = "*/itemHyperlink";
|
||||
digester.addFactoryCreate(itemHyperlinkPattern, JRHyperlinkFactory.class);
|
||||
digester.addSetNext(itemHyperlinkPattern, "setItemHyperlink", JRHyperlink.class.getName());
|
||||
digester.addFactoryCreate("*/xyzDataset", JRXyzDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/xyzDataset/xyzSeries", JRXyzSeriesFactory.class.getName());
|
||||
digester.addSetNext("*/xyzDataset/xyzSeries", "addXyzSeries", JRDesignXyzSeries.class.getName());
|
||||
digester.addFactoryCreate("*/xyzSeries/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/xyzSeries/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xyzSeries/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyzSeries", JRXyzDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/xyzSeries/xValueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/xyzSeries/xValueExpression", "setXValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xyzSeries/xValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyzSeries/yValueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/xyzSeries/yValueExpression", "setYValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xyzSeries/yValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyzSeries/zValueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/xyzSeries/zValueExpression", "setZValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xyzSeries/zValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timePeriodDataset", JRTimePeriodDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/timePeriodDataset/timePeriodSeries", JRTimePeriodSeriesFactory.class.getName());
|
||||
digester.addSetNext("*/timePeriodDataset/timePeriodSeries", "addTimePeriodSeries", JRDesignTimePeriodSeries.class.getName());
|
||||
digester.addFactoryCreate("*/timePeriodSeries/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/timePeriodSeries/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timePeriodSeries/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timePeriodSeries/startDateExpression", JRExpressionFactory.DateExpressionFactory.class);
|
||||
digester.addSetNext("*/timePeriodSeries/startDateExpression", "setStartDateExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timePeriodSeries/startDateExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timePeriodSeries/endDateExpression", JRExpressionFactory.DateExpressionFactory.class);
|
||||
digester.addSetNext("*/timePeriodSeries/endDateExpression", "setEndDateExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timePeriodSeries/endDateExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timePeriodSeries/valueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/timePeriodSeries/valueExpression", "setValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timePeriodSeries/valueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timePeriodSeries/labelExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/timePeriodSeries/labelExpression", "setLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timePeriodSeries/labelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timeSeriesChart", JRTimeSeriesChartFactory.class.getName());
|
||||
digester.addFactoryCreate("*/timeSeriesChart/timeSeriesPlot", JRTimeSeriesPlotFactory.class.getName());
|
||||
digester.addSetNext("*/timeSeriesChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/timeSeriesPlot/timeAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeriesPlot/timeAxisLabelExpression", "setTimeAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeriesPlot/timeAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timeSeriesPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeriesPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeriesPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyBarChart", JRXyBarChartFactory.class.getName());
|
||||
digester.addSetNext("*/xyBarChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/xyBarChart/barPlot", JRBarPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/timeSeriesDataset", JRTimeSeriesDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/timeSeriesDataset/timeSeries", JRTimeSeriesFactory.class.getName());
|
||||
digester.addSetNext("*/timeSeriesDataset/timeSeries", "addTimeSeries", JRDesignTimeSeries.class.getName());
|
||||
digester.addFactoryCreate("*/timeSeries/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeries/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeries/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timeSeries/timePeriodExpression", JRExpressionFactory.DateExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeries/timePeriodExpression", "setTimePeriodExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeries/timePeriodExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timeSeries/labelExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeries/labelExpression", "setLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeries/labelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/timeSeries/valueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/timeSeries/valueExpression", "setValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/timeSeries/valueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/stackedBarChart", JRStackedBarChartFactory.class.getName());
|
||||
digester.addSetNext("*/stackedBarChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/stackedBarChart/barPlot", JRBarPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/lineChart", JRLineChartFactory.class.getName());
|
||||
digester.addSetNext("*/lineChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/linePlot", JRLinePlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/linePlot/categoryAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/linePlot/categoryAxisLabelExpression", "setCategoryAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/linePlot/categoryAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/linePlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/linePlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/linePlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyLineChart", JRXyLineChartFactory.class.getName());
|
||||
digester.addSetNext("*/xyLineChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/scatterChart", JRScatterChartFactory.class.getName());
|
||||
digester.addSetNext("*/scatterChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/scatterPlot", JRScatterPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/scatterPlot/xAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/scatterPlot/xAxisLabelExpression", "setXAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/scatterPlot/xAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/scatterPlot/yAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/scatterPlot/yAxisLabelExpression", "setYAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/scatterPlot/yAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xyDataset", JRXyDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/xyDataset/xySeries", JRXySeriesFactory.class.getName());
|
||||
digester.addSetNext("*/xyDataset/xySeries", "addXySeries", JRDesignXySeries.class.getName());
|
||||
digester.addFactoryCreate("*/xySeries", JRXyDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/xySeries/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/xySeries/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xySeries/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xySeries/xValueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/xySeries/xValueExpression", "setXValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xySeries/xValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xySeries/yValueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/xySeries/yValueExpression", "setYValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xySeries/yValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/xySeries/labelExpression", JRExpressionFactory.StringExpressionFactory.class);
|
||||
digester.addSetNext("*/xySeries/labelExpression", "setLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/xySeries/labelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/stackedBar3DChart", JRStackedBar3DChartFactory.class.getName());
|
||||
digester.addSetNext("*/stackedBar3DChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/stackedBar3DChart/bar3DPlot", JRBar3DPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/bubbleChart", JRBubbleChartFactory.class.getName());
|
||||
digester.addSetNext("*/bubbleChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/bubblePlot", JRBubblePlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/bubblePlot/xAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/bubblePlot/xAxisLabelExpression", "setXAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/bubblePlot/xAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/bubblePlot/yAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/bubblePlot/yAxisLabelExpression", "setYAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/bubblePlot/yAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowChart", JRHighLowChartFactory.class.getName());
|
||||
digester.addSetNext("*/highLowChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/highLowChart/highLowPlot", JRHighLowPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/highLowPlot/timeAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowPlot/timeAxisLabelExpression", "setTimeAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowPlot/timeAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset", JRHighLowDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/highLowDataset/seriesExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/seriesExpression", "setSeriesExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/seriesExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/dateExpression", JRExpressionFactory.DateExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/dateExpression", "setDateExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/dateExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/highExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/highExpression", "setHighExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/highExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/lowExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/lowExpression", "setLowExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/lowExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/openExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/openExpression", "setOpenExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/openExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/closeExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/closeExpression", "setCloseExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/closeExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/highLowDataset/volumeExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/highLowDataset/volumeExpression", "setVolumeExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/highLowDataset/volumeExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/candlestickChart", JRCandlestickChartFactory.class);
|
||||
digester.addSetNext("*/candlestickChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/candlestickChart/candlestickPlot", JRCandlestickPlotFactory.class);
|
||||
digester.addFactoryCreate("*/candlestickPlot/timeAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/candlestickPlot/timeAxisLabelExpression", "setTimeAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/candlestickPlot/timeAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/candlestickPlot/valueAxisLabelExpression", JRExpressionFactory.ComparableExpressionFactory.class);
|
||||
digester.addSetNext("*/candlestickPlot/valueAxisLabelExpression", "setValueAxisLabelExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/candlestickPlot/valueAxisLabelExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/valueDataset", JRValueDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/valueDataset/valueExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/valueDataset/valueExpression", "setValueExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/valueDataset/valueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/dataRange", JRDataRangeFactory.class.getName());
|
||||
digester.addSetNext("*/dataRange", "setDataRange", JRDesignDataRange.class.getName());
|
||||
digester.addFactoryCreate("*/dataRange/lowExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/dataRange/lowExpression", "setLowExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/dataRange/lowExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/dataRange/highExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/dataRange/highExpression", "setHighExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/dataRange/highExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/valueDisplay", JRValueDisplayFactory.class.getName());
|
||||
digester.addSetNext("*/valueDisplay", "setValueDisplay", JRDesignValueDisplay.class.getName());
|
||||
digester.addFactoryCreate("*/valueDisplay/font", JRFontFactory.ChartFontFactory.class.getName());
|
||||
digester.addSetNext("*/valueDisplay/font", "setFont", JRFont.class.getName());
|
||||
digester.addFactoryCreate("*/meterChart", JRMeterChartFactory.class.getName());
|
||||
digester.addSetNext("*/meterChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/meterChart/meterPlot", JRMeterPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/meterPlot/lowExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/meterPlot/lowExpression", "setLowExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/meterPlot/lowExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/meterPlot/highExpression", JRExpressionFactory.NumberExpressionFactory.class);
|
||||
digester.addSetNext("*/meterPlot/highExpression", "setHighExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/meterPlot/highExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/meterPlot/meterInterval", JRMeterIntervalFactory.class.getName());
|
||||
digester.addSetNext("*/meterPlot/meterInterval", "addInterval", JRMeterInterval.class.getName());
|
||||
digester.addFactoryCreate("*/thermometerChart", JRThermometerChartFactory.class.getName());
|
||||
digester.addSetNext("*/thermometerChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/thermometerChart/thermometerPlot", JRThermometerPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/thermometerPlot/lowRange/dataRange", JRDataRangeFactory.class.getName());
|
||||
digester.addSetNext("*/thermometerPlot/lowRange/dataRange", "setLowRange", JRDesignDataRange.class.getName());
|
||||
digester.addFactoryCreate("*/thermometerPlot/mediumRange/dataRange", JRDataRangeFactory.class.getName());
|
||||
digester.addSetNext("*/thermometerPlot/mediumRange/dataRange", "setMediumRange", JRDesignDataRange.class.getName());
|
||||
digester.addFactoryCreate("*/thermometerPlot/highRange/dataRange", JRDataRangeFactory.class.getName());
|
||||
digester.addSetNext("*/thermometerPlot/highRange/dataRange", "setHighRange", JRDesignDataRange.class.getName());
|
||||
digester.addFactoryCreate("*/multiAxisChart", JRMultiAxisChartFactory.class.getName());
|
||||
digester.addSetNext("*/multiAxisChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/multiAxisChart/multiAxisPlot", JRMultiAxisPlotFactory.class.getName());
|
||||
digester.addFactoryCreate("*/axis", JRChartAxisFactory.class.getName());
|
||||
digester.addSetNext("*/axis", "addAxis", JRChartAxis.class.getName());
|
||||
digester.addFactoryCreate("*/stackedAreaChart", JRStackedAreaChartFactory.class.getName());
|
||||
digester.addSetNext("*/stackedAreaChart", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/stackedAreaChart/areaPlot", JRAreaPlotFactory.class.getName());
|
||||
}
|
||||
|
||||
private static void addDatasetRules(Digester digester) {
|
||||
String subDatasetPattern = "jasperReport/subDataset";
|
||||
digester.addFactoryCreate(subDatasetPattern, JRDatasetFactory.class.getName());
|
||||
digester.addSetNext(subDatasetPattern, "addDataset", JRDesignDataset.class.getName());
|
||||
String datasetRunPattern = "*/dataset/datasetRun";
|
||||
digester.addFactoryCreate(datasetRunPattern, JRDatasetRunFactory.class.getName());
|
||||
digester.addSetNext(datasetRunPattern, "setDatasetRun", JRDatasetRun.class.getName());
|
||||
String datasetParamPattern = datasetRunPattern + "/" + "datasetParameter";
|
||||
digester.addFactoryCreate(datasetParamPattern, JRDatasetRunParameterFactory.class.getName());
|
||||
digester.addSetNext(datasetParamPattern, "addParameter", JRDatasetParameter.class.getName());
|
||||
String datasetParamExprPattern = datasetParamPattern + "/" + "datasetParameterExpression";
|
||||
digester.addFactoryCreate(datasetParamExprPattern, JRDatasetRunParameterExpressionFactory.class.getName());
|
||||
digester.addSetNext(datasetParamExprPattern, "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(datasetParamExprPattern, "setText", 0);
|
||||
}
|
||||
|
||||
private static void addCrosstabRules(Digester digester) {
|
||||
digester.addFactoryCreate("*/crosstab", JRCrosstabFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab", "addElement", JRDesignElement.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/crosstabParameter", JRCrosstabParameterFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/crosstabParameter", "addParameter", JRCrosstabParameter.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/crosstabParameter/parameterValueExpression", JRCrosstabParameterValueExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/crosstabParameter/parameterValueExpression", "setExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/crosstab/crosstabParameter/parameterValueExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/crosstab/crosstabDataset", JRCrosstabDatasetFactory.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/rowGroup", JRCrosstabRowGroupFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/rowGroup", "addRowGroup", JRDesignCrosstabRowGroup.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/rowGroup/crosstabRowHeader/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/rowGroup/crosstabRowHeader/cellContents", "setHeader", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/rowGroup/crosstabTotalRowHeader/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/rowGroup/crosstabTotalRowHeader/cellContents", "setTotalHeader", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/columnGroup", JRCrosstabColumnGroupFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/columnGroup", "addColumnGroup", JRDesignCrosstabColumnGroup.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/columnGroup/crosstabColumnHeader/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/columnGroup/crosstabColumnHeader/cellContents", "setHeader", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/columnGroup/crosstabTotalColumnHeader/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/columnGroup/crosstabTotalColumnHeader/cellContents", "setTotalHeader", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/bucket", JRCrosstabBucketFactory.class.getName());
|
||||
digester.addSetNext("*/bucket", "setBucket", JRDesignCrosstabBucket.class.getName());
|
||||
digester.addFactoryCreate("*/bucket/bucketExpression", JRCrosstabBucketExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/bucket/bucketExpression", "setExpression", JRDesignExpression.class.getName());
|
||||
digester.addCallMethod("*/bucket/bucketExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/bucket/comparatorExpression", JRExpressionFactory.ComparatorExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/bucket/comparatorExpression", "setComparatorExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/bucket/comparatorExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/crosstab/measure", JRCrosstabMeasureFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/measure", "addMeasure", JRDesignCrosstabMeasure.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/measure/measureExpression", JRCrosstabMeasureExpressionFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/measure/measureExpression", "setValueExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod("*/crosstab/measure/measureExpression", "setText", 0);
|
||||
digester.addFactoryCreate("*/crosstab/crosstabCell", JRCrosstabCellFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/crosstabCell", "addCell", JRDesignCrosstabCell.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/crosstabCell/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/crosstabCell/cellContents", "setContents", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/whenNoDataCell/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/whenNoDataCell/cellContents", "setWhenNoDataCell", JRDesignCellContents.class.getName());
|
||||
digester.addFactoryCreate("*/crosstab/crosstabHeaderCell/cellContents", JRCellContentsFactory.class.getName());
|
||||
digester.addSetNext("*/crosstab/crosstabHeaderCell/cellContents", "setHeaderCell", JRDesignCellContents.class.getName());
|
||||
}
|
||||
|
||||
private static void addFrameRules(Digester digester) {
|
||||
String framePattern = "*/frame";
|
||||
digester.addFactoryCreate(framePattern, JRFrameFactory.class.getName());
|
||||
digester.addSetNext(framePattern, "addElement", JRDesignElement.class.getName());
|
||||
}
|
||||
|
||||
private static void addHyperlinkParameterRules(Digester digester) {
|
||||
String hyperlinkParameterPattern = "*/hyperlinkParameter";
|
||||
digester.addFactoryCreate(hyperlinkParameterPattern, JRHyperlinkParameterFactory.class.getName());
|
||||
digester.addSetNext(hyperlinkParameterPattern, "addHyperlinkParameter", JRHyperlinkParameter.class.getName());
|
||||
String hyperlinkParameterExpressionPattern = hyperlinkParameterPattern + '/' + "hyperlinkParameterExpression";
|
||||
digester.addFactoryCreate(hyperlinkParameterExpressionPattern, JRStringExpressionFactory.class.getName());
|
||||
digester.addSetNext(hyperlinkParameterExpressionPattern, "setValueExpression", JRExpression.class.getName());
|
||||
digester.addCallMethod(hyperlinkParameterExpressionPattern, "setText", 0);
|
||||
}
|
||||
|
||||
public static JRXmlDigester createDigester() throws ParserConfigurationException, SAXException {
|
||||
JRXmlDigester digester = new JRXmlDigester();
|
||||
configureDigester(digester);
|
||||
return digester;
|
||||
}
|
||||
|
||||
private static class ErrorHandlerImpl implements ErrorHandler {
|
||||
private ErrorHandlerImpl() {}
|
||||
|
||||
public void error(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
public void fatalError(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
public void warning(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
}
|
||||
}
|
304
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlLoader.java
Normal file
304
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlLoader.java
Normal file
@@ -0,0 +1,304 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import net.sf.jasperreports.engine.JRDatasetRun;
|
||||
import net.sf.jasperreports.engine.JRException;
|
||||
import net.sf.jasperreports.engine.JRGroup;
|
||||
import net.sf.jasperreports.engine.JRVariable;
|
||||
import net.sf.jasperreports.engine.design.JRDesignChart;
|
||||
import net.sf.jasperreports.engine.design.JRDesignDataset;
|
||||
import net.sf.jasperreports.engine.design.JRDesignElement;
|
||||
import net.sf.jasperreports.engine.design.JRDesignElementDataset;
|
||||
import net.sf.jasperreports.engine.design.JRDesignImage;
|
||||
import net.sf.jasperreports.engine.design.JRDesignTextField;
|
||||
import net.sf.jasperreports.engine.design.JRDesignVariable;
|
||||
import net.sf.jasperreports.engine.design.JRValidationException;
|
||||
import net.sf.jasperreports.engine.design.JasperDesign;
|
||||
import org.apache.commons.digester.Digester;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
public class JRXmlLoader {
|
||||
private JasperDesign jasperDesign = null;
|
||||
|
||||
private Collection groupReprintedElements = new ArrayList();
|
||||
|
||||
private Collection groupEvaluatedImages = new ArrayList();
|
||||
|
||||
private Collection groupEvaluatedTextFields = new ArrayList();
|
||||
|
||||
private Collection groupEvaluatedCharts = new ArrayList();
|
||||
|
||||
private Set groupBoundDatasets = new HashSet();
|
||||
|
||||
private List errors = new ArrayList();
|
||||
|
||||
private Digester digester = null;
|
||||
|
||||
private boolean ignoreConsistencyProblems;
|
||||
|
||||
public JRXmlLoader(Digester digester) {
|
||||
this.digester = digester;
|
||||
}
|
||||
|
||||
public void setJasperDesign(JasperDesign jasperDesign) {
|
||||
this.jasperDesign = jasperDesign;
|
||||
}
|
||||
|
||||
public Collection getGroupReprintedElements() {
|
||||
return this.groupReprintedElements;
|
||||
}
|
||||
|
||||
public Collection getGroupEvaluatedImages() {
|
||||
return this.groupEvaluatedImages;
|
||||
}
|
||||
|
||||
public Collection getGroupEvaluatedTextFields() {
|
||||
return this.groupEvaluatedTextFields;
|
||||
}
|
||||
|
||||
public Collection getGroupEvaluatedCharts() {
|
||||
return this.groupEvaluatedCharts;
|
||||
}
|
||||
|
||||
public Set getGroupBoundDatasets() {
|
||||
return this.groupBoundDatasets;
|
||||
}
|
||||
|
||||
public static JasperDesign load(String sourceFileName) throws JRException {
|
||||
return load(new File(sourceFileName));
|
||||
}
|
||||
|
||||
public static JasperDesign load(File file) throws JRException {
|
||||
JasperDesign jasperDesign = null;
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
fis = new FileInputStream(file);
|
||||
jasperDesign = load(fis);
|
||||
} catch (IOException e) {
|
||||
throw new JRException(e);
|
||||
} finally {
|
||||
if (fis != null)
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException e) {}
|
||||
}
|
||||
return jasperDesign;
|
||||
}
|
||||
|
||||
public static JasperDesign load(InputStream is) throws JRException {
|
||||
JasperDesign jasperDesign = null;
|
||||
JRXmlLoader xmlLoader = null;
|
||||
try {
|
||||
xmlLoader = new JRXmlLoader(JRXmlDigesterFactory.createDigester());
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new JRException(e);
|
||||
} catch (SAXException e) {
|
||||
throw new JRException(e);
|
||||
}
|
||||
jasperDesign = xmlLoader.loadXML(is);
|
||||
return jasperDesign;
|
||||
}
|
||||
|
||||
public JasperDesign loadXML(InputStream is) throws JRException {
|
||||
return loadXML(new InputSource(is));
|
||||
}
|
||||
|
||||
public JasperDesign loadXML(InputSource is) throws JRException {
|
||||
try {
|
||||
this.digester.push(this);
|
||||
this.digester.parse(is);
|
||||
} catch (SAXException e) {
|
||||
throw new JRException(e);
|
||||
} catch (IOException e) {
|
||||
throw new JRException(e);
|
||||
} finally {
|
||||
this.digester.clear();
|
||||
}
|
||||
if (this.errors.size() > 0) {
|
||||
Exception e = this.errors.get(0);
|
||||
if (e instanceof JRException)
|
||||
throw (JRException)e;
|
||||
throw new JRException(e);
|
||||
}
|
||||
assignGroupsToVariables(this.jasperDesign.getMainDesignDataset());
|
||||
for (Iterator it = this.jasperDesign.getDatasetsList().iterator(); it.hasNext(); ) {
|
||||
JRDesignDataset dataset = it.next();
|
||||
assignGroupsToVariables(dataset);
|
||||
}
|
||||
assignGroupsToElements();
|
||||
assignGroupsToImages();
|
||||
assignGroupsToTextFields();
|
||||
assignGroupsToCharts();
|
||||
assignGroupsToDatasets();
|
||||
return this.jasperDesign;
|
||||
}
|
||||
|
||||
private void assignGroupsToVariables(JRDesignDataset dataset) throws JRException {
|
||||
JRVariable[] variables = dataset.getVariables();
|
||||
if (variables != null && variables.length > 0) {
|
||||
Map groupsMap = dataset.getGroupsMap();
|
||||
for (int i = 0; i < variables.length; i++) {
|
||||
JRDesignVariable variable = (JRDesignVariable)variables[i];
|
||||
if (variable.getResetType() == 4) {
|
||||
String groupName = null;
|
||||
JRGroup group = variable.getResetGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(groupName);
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown reset group '" + groupName + "' for variable : " + variable.getName(), variable);
|
||||
variable.setResetGroup(group);
|
||||
} else {
|
||||
variable.setResetGroup(null);
|
||||
}
|
||||
if (variable.getIncrementType() == 4) {
|
||||
String groupName = null;
|
||||
JRGroup group = variable.getIncrementGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(groupName);
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown increment group '" + groupName + "' for variable : " + variable.getName(), variable);
|
||||
variable.setIncrementGroup(group);
|
||||
} else {
|
||||
variable.setIncrementGroup(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void assignGroupsToElements() throws JRException {
|
||||
Map groupsMap = this.jasperDesign.getGroupsMap();
|
||||
for (Iterator it = this.groupReprintedElements.iterator(); it.hasNext(); ) {
|
||||
JRDesignElement element = it.next();
|
||||
String groupName = null;
|
||||
JRGroup group = element.getPrintWhenGroupChanges();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown reprint group '" + groupName + "' for element.", element);
|
||||
element.setPrintWhenGroupChanges(group);
|
||||
}
|
||||
}
|
||||
|
||||
private void assignGroupsToImages() throws JRException {
|
||||
Map groupsMap = this.jasperDesign.getGroupsMap();
|
||||
for (Iterator it = this.groupEvaluatedImages.iterator(); it.hasNext(); ) {
|
||||
JRDesignImage image = it.next();
|
||||
String groupName = null;
|
||||
JRGroup group = image.getEvaluationGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown evaluation group '" + groupName + "' for image.", image);
|
||||
image.setEvaluationGroup(group);
|
||||
}
|
||||
}
|
||||
|
||||
private void assignGroupsToTextFields() throws JRException {
|
||||
Map groupsMap = this.jasperDesign.getGroupsMap();
|
||||
for (Iterator it = this.groupEvaluatedTextFields.iterator(); it.hasNext(); ) {
|
||||
JRDesignTextField textField = it.next();
|
||||
String groupName = null;
|
||||
JRGroup group = textField.getEvaluationGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown evaluation group '" + groupName + "' for text field.", textField);
|
||||
textField.setEvaluationGroup(group);
|
||||
}
|
||||
}
|
||||
|
||||
private void assignGroupsToCharts() throws JRException {
|
||||
Map groupsMap = this.jasperDesign.getGroupsMap();
|
||||
for (Iterator it = this.groupEvaluatedCharts.iterator(); it.hasNext(); ) {
|
||||
JRDesignChart chart = it.next();
|
||||
String groupName = null;
|
||||
JRGroup group = chart.getEvaluationGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown evaluation group '" + groupName + "' for chart.", chart);
|
||||
chart.setEvaluationGroup(group);
|
||||
}
|
||||
}
|
||||
|
||||
private void assignGroupsToDatasets() throws JRException {
|
||||
for (Iterator it = this.groupBoundDatasets.iterator(); it.hasNext(); ) {
|
||||
Map groupsMap;
|
||||
JRDesignElementDataset dataset = it.next();
|
||||
JRDatasetRun datasetRun = dataset.getDatasetRun();
|
||||
if (datasetRun == null) {
|
||||
groupsMap = this.jasperDesign.getGroupsMap();
|
||||
} else {
|
||||
Map datasetMap = this.jasperDesign.getDatasetMap();
|
||||
String datasetName = datasetRun.getDatasetName();
|
||||
JRDesignDataset subDataset = (JRDesignDataset)datasetMap.get(datasetName);
|
||||
if (subDataset == null)
|
||||
throw new JRException("Unknown sub dataset '" + datasetName + "' for chart dataset.");
|
||||
groupsMap = subDataset.getGroupsMap();
|
||||
}
|
||||
if (dataset.getIncrementType() == 4) {
|
||||
String groupName = null;
|
||||
JRGroup group = dataset.getIncrementGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown increment group '" + groupName + "' for chart dataset.", dataset);
|
||||
dataset.setIncrementGroup(group);
|
||||
} else {
|
||||
dataset.setIncrementGroup(null);
|
||||
}
|
||||
if (dataset.getResetType() == 4) {
|
||||
String groupName = null;
|
||||
JRGroup group = dataset.getResetGroup();
|
||||
if (group != null) {
|
||||
groupName = group.getName();
|
||||
group = (JRGroup)groupsMap.get(group.getName());
|
||||
}
|
||||
if (!this.ignoreConsistencyProblems && group == null)
|
||||
throw new JRValidationException("Unknown reset group '" + groupName + "' for chart dataset.", dataset);
|
||||
dataset.setResetGroup(group);
|
||||
continue;
|
||||
}
|
||||
dataset.setResetGroup(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void addError(Exception e) {
|
||||
if (!this.ignoreConsistencyProblems)
|
||||
this.errors.add(e);
|
||||
}
|
||||
|
||||
public boolean isIgnoreConsistencyProblems() {
|
||||
return this.ignoreConsistencyProblems;
|
||||
}
|
||||
|
||||
public void setIgnoreConsistencyProblems(boolean ignoreConsistencyProblems) {
|
||||
this.ignoreConsistencyProblems = ignoreConsistencyProblems;
|
||||
}
|
||||
}
|
@@ -0,0 +1,121 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import net.sf.jasperreports.engine.JRRuntimeException;
|
||||
import net.sf.jasperreports.engine.util.JRProperties;
|
||||
import org.apache.commons.digester.Digester;
|
||||
import org.apache.commons.digester.RuleSet;
|
||||
import org.apache.commons.digester.RuleSetBase;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
|
||||
public class JRXmlTemplateDigesterFactory implements ErrorHandler {
|
||||
protected static final String PATTERN_ROOT = "jasperTemplate";
|
||||
|
||||
protected static final String PATTERN_INCLUDED_TEMPLATE = "jasperTemplate/template";
|
||||
|
||||
protected static final String PATTERN_STYLE = "jasperTemplate/style";
|
||||
|
||||
protected static final String PATTERN_STYLE_PEN = "jasperTemplate/style/pen";
|
||||
|
||||
protected static final String PATTERN_BOX = "jasperTemplate/style/box";
|
||||
|
||||
protected static final String PATTERN_BOX_PEN = "jasperTemplate/style/box/pen";
|
||||
|
||||
protected static final String PATTERN_BOX_TOP_PEN = "jasperTemplate/style/box/topPen";
|
||||
|
||||
protected static final String PATTERN_BOX_LEFT_PEN = "jasperTemplate/style/box/leftPen";
|
||||
|
||||
protected static final String PATTERN_BOX_BOTTOM_PEN = "jasperTemplate/style/box/bottomPen";
|
||||
|
||||
protected static final String PATTERN_BOX_RIGHT_PEN = "jasperTemplate/style/box/rightPen";
|
||||
|
||||
private static final JRXmlTemplateDigesterFactory instance = new JRXmlTemplateDigesterFactory();
|
||||
|
||||
private final RuleSet rules = readRuleSet();
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$JRSimpleTemplate;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRTemplateStyleFactory;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$JRStyle;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Style;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRBoxFactory;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Box;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Top;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Left;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Bottom;
|
||||
|
||||
static Class class$net$sf$jasperreports$engine$xml$JRPenFactory$Right;
|
||||
|
||||
public static JRXmlTemplateDigesterFactory instance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
protected RuleSet readRuleSet() {
|
||||
return (RuleSet)new RuleSetBase() {
|
||||
private final JRXmlTemplateDigesterFactory this$0;
|
||||
|
||||
public void addRuleInstances(Digester digester) {
|
||||
digester.addObjectCreate("jasperTemplate", (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRSimpleTemplate == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRSimpleTemplate = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.JRSimpleTemplate")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRSimpleTemplate);
|
||||
digester.addCallMethod("jasperTemplate/template", "addIncludedTemplate", 0);
|
||||
digester.addFactoryCreate("jasperTemplate/style", (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRTemplateStyleFactory == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRTemplateStyleFactory = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRTemplateStyleFactory")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRTemplateStyleFactory);
|
||||
digester.addSetNext("jasperTemplate/style", "addStyle", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRStyle == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRStyle = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.JRStyle")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$JRStyle).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/pen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Style == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Style = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Style")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Style).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRBoxFactory == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRBoxFactory = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRBoxFactory")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRBoxFactory).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box/pen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Box == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Box = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Box")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Box).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box/topPen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Top == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Top = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Top")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Top).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box/leftPen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Left == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Left = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Left")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Left).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box/bottomPen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Bottom == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Bottom = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Bottom")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Bottom).getName());
|
||||
digester.addFactoryCreate("jasperTemplate/style/box/rightPen", ((JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Right == null) ? (JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Right = JRXmlTemplateDigesterFactory.class$("net.sf.jasperreports.engine.xml.JRPenFactory$Right")) : JRXmlTemplateDigesterFactory.class$net$sf$jasperreports$engine$xml$JRPenFactory$Right).getName());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
static Class class$(String x0) {
|
||||
try {
|
||||
return Class.forName(x0);
|
||||
} catch (ClassNotFoundException x1) {
|
||||
throw (new NoClassDefFoundError()).initCause(x1);
|
||||
}
|
||||
}
|
||||
|
||||
public JRXmlDigester createDigester() {
|
||||
JRXmlDigester digester = new JRXmlDigester();
|
||||
try {
|
||||
configureDigester(digester);
|
||||
} catch (SAXException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
return digester;
|
||||
}
|
||||
|
||||
protected void configureDigester(Digester digester) throws SAXException, ParserConfigurationException {
|
||||
boolean validating = JRProperties.getBooleanProperty("net.sf.jasperreports.compiler.xml.validation");
|
||||
digester.setErrorHandler(this);
|
||||
digester.setValidating(validating);
|
||||
digester.setFeature("http://xml.org/sax/features/validation", validating);
|
||||
digester.addRuleSet(this.rules);
|
||||
}
|
||||
|
||||
public void error(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
public void fatalError(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
public void warning(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
}
|
@@ -0,0 +1,79 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import net.sf.jasperreports.engine.JRException;
|
||||
import net.sf.jasperreports.engine.JRRuntimeException;
|
||||
import net.sf.jasperreports.engine.JRTemplate;
|
||||
import net.sf.jasperreports.engine.util.JRLoader;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
public class JRXmlTemplateLoader {
|
||||
private static final Log log = LogFactory.getLog(JRXmlTemplateLoader.class);
|
||||
|
||||
public static JRTemplate load(String location) throws JRException {
|
||||
byte[] data = JRLoader.loadBytesFromLocation(location);
|
||||
return load(new ByteArrayInputStream(data));
|
||||
}
|
||||
|
||||
public static JRTemplate load(File file) {
|
||||
BufferedInputStream fileIn;
|
||||
try {
|
||||
fileIn = new BufferedInputStream(new FileInputStream(file));
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new JRRuntimeException("Template XML file not found", e);
|
||||
}
|
||||
try {
|
||||
return load(fileIn);
|
||||
} finally {
|
||||
try {
|
||||
fileIn.close();
|
||||
} catch (IOException e) {
|
||||
log.warn("Error closing XML file", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static JRTemplate load(URL url) {
|
||||
InputStream input;
|
||||
try {
|
||||
input = url.openStream();
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException("Error opening connection to template URL " + url, e);
|
||||
}
|
||||
try {
|
||||
return load(input);
|
||||
} finally {
|
||||
try {
|
||||
input.close();
|
||||
} catch (IOException e) {
|
||||
log.warn("Error closing connection to template URL " + url, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static JRTemplate load(InputStream data) {
|
||||
JRXmlTemplateLoader loader = new JRXmlTemplateLoader();
|
||||
return loader.loadTemplate(data);
|
||||
}
|
||||
|
||||
protected JRTemplate loadTemplate(InputStream data) {
|
||||
JRXmlDigester digester = JRXmlTemplateDigesterFactory.instance().createDigester();
|
||||
try {
|
||||
JRTemplate template = (JRTemplate)digester.parse(data);
|
||||
return template;
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException("Error reading template XML", e);
|
||||
} catch (SAXException e) {
|
||||
throw new JRRuntimeException("Error parsing template XML", e);
|
||||
}
|
||||
}
|
||||
}
|
1537
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlWriter.java
Normal file
1537
hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlWriter.java
Normal file
File diff suppressed because it is too large
Load Diff
121
hrmsEjb/net/sf/jasperreports/engine/xml/XmlWriterVisitor.java
Normal file
121
hrmsEjb/net/sf/jasperreports/engine/xml/XmlWriterVisitor.java
Normal file
@@ -0,0 +1,121 @@
|
||||
package net.sf.jasperreports.engine.xml;
|
||||
|
||||
import java.io.IOException;
|
||||
import net.sf.jasperreports.crosstabs.JRCrosstab;
|
||||
import net.sf.jasperreports.engine.JRBreak;
|
||||
import net.sf.jasperreports.engine.JRChart;
|
||||
import net.sf.jasperreports.engine.JRElementGroup;
|
||||
import net.sf.jasperreports.engine.JREllipse;
|
||||
import net.sf.jasperreports.engine.JRFrame;
|
||||
import net.sf.jasperreports.engine.JRImage;
|
||||
import net.sf.jasperreports.engine.JRLine;
|
||||
import net.sf.jasperreports.engine.JRRectangle;
|
||||
import net.sf.jasperreports.engine.JRRuntimeException;
|
||||
import net.sf.jasperreports.engine.JRStaticText;
|
||||
import net.sf.jasperreports.engine.JRSubreport;
|
||||
import net.sf.jasperreports.engine.JRTextField;
|
||||
import net.sf.jasperreports.engine.JRVisitor;
|
||||
|
||||
public class XmlWriterVisitor implements JRVisitor {
|
||||
private JRXmlWriter xmlWriter = null;
|
||||
|
||||
public XmlWriterVisitor(JRXmlWriter xmlWriter) {
|
||||
this.xmlWriter = xmlWriter;
|
||||
}
|
||||
|
||||
public void visitBreak(JRBreak breakElement) {
|
||||
try {
|
||||
this.xmlWriter.writeBreak(breakElement);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitChart(JRChart chart) {
|
||||
try {
|
||||
this.xmlWriter.writeChartTag(chart);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitCrosstab(JRCrosstab crosstab) {
|
||||
try {
|
||||
this.xmlWriter.writeCrosstab(crosstab);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitElementGroup(JRElementGroup elementGroup) {
|
||||
try {
|
||||
this.xmlWriter.writeElementGroup(elementGroup);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitEllipse(JREllipse ellipse) {
|
||||
try {
|
||||
this.xmlWriter.writeEllipse(ellipse);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitFrame(JRFrame frame) {
|
||||
try {
|
||||
this.xmlWriter.writeFrame(frame);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitImage(JRImage image) {
|
||||
try {
|
||||
this.xmlWriter.writeImage(image);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitLine(JRLine line) {
|
||||
try {
|
||||
this.xmlWriter.writeLine(line);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitRectangle(JRRectangle rectangle) {
|
||||
try {
|
||||
this.xmlWriter.writeRectangle(rectangle);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitStaticText(JRStaticText staticText) {
|
||||
try {
|
||||
this.xmlWriter.writeStaticText(staticText);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitSubreport(JRSubreport subreport) {
|
||||
try {
|
||||
this.xmlWriter.writeSubreport(subreport);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void visitTextField(JRTextField textField) {
|
||||
try {
|
||||
this.xmlWriter.writeTextField(textField);
|
||||
} catch (IOException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user