01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package de.schlund.pfixxml.config.impl;
20:
21: import java.util.HashMap;
22: import java.util.Map;
23:
24: import org.xml.sax.Attributes;
25: import org.xml.sax.SAXException;
26:
27: import de.schlund.pfixxml.config.ContextXMLServletConfig;
28: import de.schlund.pfixxml.config.PageRequestConfig;
29:
30: public class PagerequestInputRule extends CheckedRule {
31: public PagerequestInputRule(ContextXMLServletConfig config) {
32: }
33:
34: public void begin(String namespace, String name,
35: Attributes attributes) throws Exception {
36: check(namespace, name, attributes);
37: PageRequestConfigImpl pageConfig = (PageRequestConfigImpl) this
38: .getDigester().peek();
39: String policy = attributes.getValue("policy");
40: if (policy != null) {
41: if (policy.equals("ALL")) {
42: pageConfig
43: .setIWrapperPolicy(PageRequestConfig.Policy.ALL);
44: } else if (policy.equals("ANY")) {
45: pageConfig
46: .setIWrapperPolicy(PageRequestConfig.Policy.ANY);
47: } else if (policy.equals("NONE")) {
48: pageConfig
49: .setIWrapperPolicy(PageRequestConfig.Policy.NONE);
50: } else {
51: throw new SAXException("Value \"" + policy
52: + "\" is no valid input policy!");
53: }
54: } else {
55: pageConfig.setIWrapperPolicy(PageRequestConfig.Policy.ANY);
56: }
57: String val = attributes.getValue("requirestoken");
58: if (val != null) {
59: if (val.equalsIgnoreCase("true")) {
60: pageConfig.setRequiresToken(true);
61: }
62: }
63: }
64:
65: protected Map<String, Boolean> wantsAttributes() {
66: HashMap<String, Boolean> atts = new HashMap<String, Boolean>();
67: atts.put("policy", false);
68: atts.put("requirestoken", false);
69: return atts;
70: }
71:
72: }
|