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.FormBuilder;
28
29 /***
30 * <p>
31 * This rule has an implied mapping meaning that all html form nodes will map to
32 * the {@link FormBuilder} regardless if the html form attribute has a
33 * <code>jsfid</code>.
34 * </p>
35 */
36 public class FormBuilderRule implements Command {
37
38 /***
39 * <p>
40 * Instance of the {@link FormBuilder}.
41 * </p>
42 */
43 private static final Builder BUILDER = new FormBuilder();
44
45 /***
46 * <p>
47 * Uses the {@link BuilderRuleContext} to find the current html {@link Node}.
48 * If the node is a form, return an instance if the builder and stop the
49 * chain.
50 * </p>
51 *
52 * @param context commons chains
53 * @return <code>true</code> if the command ends the chain
54 * @exception Exception pushes an exception back to the invoking Command
55 */
56 public boolean execute(Context context) throws Exception {
57 boolean isFinal = false;
58
59 BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
60 Node node = builderRuleContext.getNode();
61 if (!node.isComment() && node.getName() != null
62 && node.getName().equalsIgnoreCase("form")) {
63
64 builderRuleContext.setBuilder(BUILDER);
65 isFinal = true;
66 }
67
68 return isFinal;
69 }
70
71 }