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.OutputLabelBuilder;
28
29 /***
30 * <p>
31 * This <code>Command</code> rule has an implied mapping of a html label
32 * {@link Node} to a {@link OutputLabelBuilder} regardless of the mapped
33 * <code>jsfid</code.
34 * </p>
35 */
36 public class LabelBuilderRule implements Command {
37
38 /***
39 * <p>
40 * Instance of the target {@link OutputLabelBuilder}.
41 * </p>
42 */
43 private static final Builder BUILDER = new OutputLabelBuilder();
44
45 /***
46 * <p>
47 * If the html {@link Node} is a label, return return the
48 * {@link OutputLabelBuilder} and complete the chain by returning a
49 * <code>true</code> value. The {@link BuilderRuleContext} contains the
50 * current {@link Node} and the target {@link Builder}.
51 * </p>
52 *
53 * @param context chains context
54 * @return <code>true</code> if the chain is done
55 * @exception Exception up the calling chain
56 */
57 public boolean execute(Context context) throws Exception {
58 boolean isFinal = false;
59
60 BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
61 Node node = builderRuleContext.getNode();
62 if (!node.isComment() && node.getName() != null
63 && node.getName().equalsIgnoreCase("label")) {
64
65 builderRuleContext.setBuilder(BUILDER);
66 isFinal = true;
67 }
68
69 return isFinal;
70 }
71
72 }