first commit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user