1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.rewriter.rules.impl;
18
19 import java.util.ArrayList;
20 import java.util.Collection;
21 import java.util.HashMap;
22 import java.util.Iterator;
23 import java.util.Map;
24
25 import org.apache.jetspeed.rewriter.rules.Attribute;
26 import org.apache.jetspeed.rewriter.rules.Rule;
27 import org.apache.jetspeed.rewriter.rules.Ruleset;
28 import org.apache.jetspeed.rewriter.rules.Tag;
29
30 /***
31 * RulesetImpl
32 *
33 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
34 * @version $Id: RulesetImpl.java 516448 2007-03-09 16:25:47Z ate $
35 */
36 /***
37 * Ruleset
38 *
39 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
40 * @version $Id: RulesetImpl.java 516448 2007-03-09 16:25:47Z ate $
41 */
42 public class RulesetImpl extends IdentifiedImpl implements Ruleset
43 {
44 private Collection rules = new ArrayList();
45 private Collection tags = new ArrayList();
46 private Map ruleMap = new HashMap();
47 private Map tagMap = new HashMap();
48 private boolean removeComments = false;
49
50
51
52
53 public Tag getTag(String tagId)
54 {
55 return (Tag)tagMap.get(tagId);
56 }
57
58
59
60
61 public Rule getRule(String ruleId)
62 {
63 return (Rule)ruleMap.get(ruleId);
64 }
65
66 public String toString()
67 {
68 StringBuffer buffer = new StringBuffer("Ruleset:" + id);
69 if (rules.size() == 0)
70 {
71 buffer.append(", no rules defined, ");
72 }
73 else
74 {
75 buffer.append(", rules: ");
76 Iterator it = rules.iterator();
77 while (it.hasNext())
78 {
79 RuleImpl rule = (RuleImpl)it.next();
80 buffer.append(rule.toString());
81 buffer.append(", ");
82 }
83 }
84 if (tags.size() == 0)
85 {
86 buffer.append(" no tags defined.");
87 }
88 else
89 {
90 buffer.append("tags: ");
91 Iterator it = tags.iterator();
92 while (it.hasNext())
93 {
94 TagImpl tag = (TagImpl)it.next();
95 buffer.append(tag.toString());
96 buffer.append(", ");
97 }
98 }
99 return buffer.toString();
100 }
101
102
103
104
105 public void sync()
106 {
107 ruleMap.clear();
108 Iterator it = rules.iterator();
109 while (it.hasNext())
110 {
111 Rule rule = (Rule)it.next();
112 ruleMap.put(rule.getId(), rule);
113 }
114
115 tagMap.clear();
116 it = tags.iterator();
117 while (it.hasNext())
118 {
119 Tag tag = (Tag)it.next();
120 tagMap.put(tag.getId(), tag);
121 Iterator attributes = tag.getAttributes().iterator();
122 while (attributes.hasNext())
123 {
124 Attribute attribute = (Attribute)attributes.next();
125 if (attribute instanceof AttributeImpl)
126 {
127 String ruleId = ((AttributeImpl)attribute).getRuleId();
128 Rule rule = (Rule)ruleMap.get(ruleId);
129 if (rule != null)
130 {
131 attribute.setRule(rule);
132 }
133 }
134 }
135 }
136 }
137
138 /***
139 * Castor setter
140 *
141 * @param rules
142 */
143 public void setRules(Collection rules)
144 {
145 this.rules = rules;
146 }
147
148
149
150
151 public Collection getRules()
152 {
153 return this.rules;
154 }
155
156 /***
157 * Castor setter
158 *
159 * @param rules
160 */
161 public void setTags(Collection tags)
162 {
163 this.tags = tags;
164 }
165
166
167
168
169 public Collection getTags()
170 {
171 return this.tags;
172 }
173
174
175
176
177 public boolean getRemoveComments()
178 {
179 return removeComments;
180 }
181
182
183
184
185 public void setRemoveComments(boolean b)
186 {
187 removeComments = b;
188 }
189
190 }