2009/05/20 - Apache Shale has been retired.
For more information, please explore the Attic.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.shale.clay.parser.builder.chain;
22
23 import org.apache.commons.chain.Command;
24 import org.apache.commons.chain.Context;
25 import org.apache.shale.clay.parser.Node;
26 import org.apache.shale.clay.parser.builder.Builder;
27 import org.apache.shale.clay.parser.builder.ElementBuilder;
28
29 /***
30 * <p>This class defines the rules that bind HTML
31 * {@link org.apache.shale.clay.parser.Node}'s resembling
32 * the {@link org.apache.shale.clay.component.Clay} DTD into
33 * corresponding {@link Builder}'s. The html nodes will be
34 * defined in their own namespace.</p>
35 */
36 public class ClayNamespaceBuilderRule implements Command {
37
38 /***
39 * <p>A list of {@link Builder}'s used to handle converting
40 * the xhtml clay namespace into {@link org.apache.shale.clay.config.beans.ElementBean}'s
41 * used by the {@link org.apache.shale.clay.component.Clay} component.</p>
42 */
43 private static final Builder[] BUILDERS = {new ElementBuilder()};
44
45 /***
46 * <p>Maps matching html {@link org.apache.shale.clay.parser.Node}'s to
47 * corresponding builders.</p>
48 *
49 * @param context commons chains
50 * @return <code>true</code> if the chain is done
51 * @exception Exception propagated up to the top of the chain
52 */
53 public boolean execute(Context context) throws Exception {
54
55 boolean isFinal = false;
56
57 BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
58 Node node = builderRuleContext.getNode();
59
60 if (node.isWellFormed() && node.getName().equals("element")) {
61 builderRuleContext.setBuilder(BUILDERS[0]);
62 isFinal = true;
63 }
64
65 return isFinal;
66 }
67
68 }
69