122 lines
8.0 KiB
Java
122 lines
8.0 KiB
Java
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;
|
|
}
|
|
}
|