MCPcopy Create free account
hub / github.com/apache/tomcat / TldRuleSet

Class TldRuleSet

java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java:33–500  ·  view source on GitHub ↗

Digester rule set for parsing Tag Library Descriptor files.

Source from the content-addressed store, hash-verified

31 * Digester rule set for parsing Tag Library Descriptor files.
32 */
33public class TldRuleSet implements RuleSet {
34
35 /**
36 * Constructs a new TldRuleSet.
37 */
38 public TldRuleSet() {
39 }
40 private static final String PREFIX = "taglib";
41 private static final String VALIDATOR_PREFIX = PREFIX + "/validator";
42 private static final String TAG_PREFIX = PREFIX + "/tag";
43 private static final String TAGFILE_PREFIX = PREFIX + "/tag-file";
44 private static final String FUNCTION_PREFIX = PREFIX + "/function";
45
46 @Override
47 public void addRuleInstances(Digester digester) {
48
49 digester.addCallMethod(PREFIX + "/tlibversion", "setTlibVersion", 0);
50 digester.addCallMethod(PREFIX + "/tlib-version", "setTlibVersion", 0);
51 digester.addCallMethod(PREFIX + "/jspversion", "setJspVersion", 0);
52 digester.addCallMethod(PREFIX + "/jsp-version", "setJspVersion", 0);
53 digester.addRule(PREFIX, new Rule() {
54 // for TLD 2.0 and later, jsp-version is set by version attribute
55 @Override
56 public void begin(String namespace, String name, Attributes attributes) {
57 TaglibXml taglibXml = (TaglibXml) digester.peek();
58 taglibXml.setJspVersion(attributes.getValue("version"));
59
60 StringBuilder code = digester.getGeneratedCode();
61 if (code != null) {
62 code.append(digester.toVariableName(taglibXml)).append(".setJspVersion(\"");
63 code.append(attributes.getValue("version")).append("\");");
64 code.append(System.lineSeparator());
65 }
66 }
67 });
68 digester.addCallMethod(PREFIX + "/shortname", "setShortName", 0);
69 digester.addCallMethod(PREFIX + "/short-name", "setShortName", 0);
70
71 // common rules
72 digester.addCallMethod(PREFIX + "/uri", "setUri", 0);
73 digester.addCallMethod(PREFIX + "/info", "setInfo", 0);
74 digester.addCallMethod(PREFIX + "/description", "setInfo", 0);
75 digester.addCallMethod(PREFIX + "/listener/listener-class", "addListener", 0);
76
77 // validator
78 digester.addObjectCreate(VALIDATOR_PREFIX, ValidatorXml.class.getName());
79 digester.addCallMethod(VALIDATOR_PREFIX + "/validator-class", "setValidatorClass", 0);
80 digester.addCallMethod(VALIDATOR_PREFIX + "/init-param", "addInitParam", 2);
81 digester.addCallParam(VALIDATOR_PREFIX + "/init-param/param-name", 0);
82 digester.addCallParam(VALIDATOR_PREFIX + "/init-param/param-value", 1);
83 digester.addSetNext(VALIDATOR_PREFIX, "setValidator", ValidatorXml.class.getName());
84
85
86 // tag
87 digester.addObjectCreate(TAG_PREFIX, TagXml.class.getName());
88 addDescriptionGroup(digester, TAG_PREFIX);
89 digester.addCallMethod(TAG_PREFIX + "/name", "setName", 0);
90 digester.addCallMethod(TAG_PREFIX + "/tagclass", "setTagClass", 0);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected