View Javadoc

1   /*
2    * This file was automatically generated by Apache Tiles Autotag.
3    */
4   package org.apache.tiles.velocity.template;
5   
6   import java.io.IOException;
7   import java.io.Writer;
8   
9   import org.apache.tiles.autotag.core.runtime.ModelBody;
10  import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
11  import org.apache.velocity.context.InternalContextAdapter;
12  import org.apache.velocity.runtime.directive.Directive;
13  import org.apache.velocity.runtime.parser.node.Node;
14  
15  /**
16   * <p>
17   * <strong>Inserts the value of an attribute into the page.</strong>
18   * </p>
19   * <p>
20   * This tag can be flexibly used to insert the value of an attribute into a
21   * page. As in other usages in Tiles, every attribute can be determined to have
22   * a "type", either set explicitly when it was defined, or "computed". If the
23   * type is not explicit, then if the attribute value is a valid definition, it
24   * will be inserted as such. Otherwise, if it begins with a "/" character, it
25   * will be treated as a "template". Finally, if it has not otherwise been
26   * assigned a type, it will be treated as a String and included without any
27   * special handling.
28   * </p>
29   * 
30   * <p>
31   * <strong>Example : </strong>
32   * </p>
33   * 
34   * <pre>
35   * &lt;code&gt;
36   *           &lt;tiles:insertAttribute name=&quot;body&quot; /&gt;
37   *         &lt;/code&gt;
38   * </pre>
39   */
40  public class InsertAttributeDirective extends Directive {
41  
42      /**
43       * The template model.
44       */
45      private org.apache.tiles.template.InsertAttributeModel model = new org.apache.tiles.template.InsertAttributeModel();
46  
47      /** {@inheritDoc} */
48      @Override
49      public String getName() {
50          return "tiles_insertAttribute";
51      }
52  
53      /** {@inheritDoc} */
54      @Override
55      public int getType() {
56          return BLOCK;
57      }
58  
59      /** {@inheritDoc} */
60      @Override
61      public boolean render(InternalContextAdapter context, Writer writer, Node node)
62              throws IOException {
63          AutotagRuntime<org.apache.tiles.request.Request> runtime = new org.apache.tiles.request.velocity.autotag.VelocityAutotagRuntime();
64          if (runtime instanceof Directive) {
65              ((Directive) runtime).render(context, writer, node);
66          }
67          org.apache.tiles.request.Request request = runtime.createRequest();
68          ModelBody modelBody = runtime.createModelBody();
69          model.execute(
70              runtime.getParameter("ignore", java.lang.Boolean.class, false),
71              runtime.getParameter("preparer", java.lang.String.class, null),
72              runtime.getParameter("role", java.lang.String.class, null),
73              runtime.getParameter("defaultValue", java.lang.Object.class, null),
74              runtime.getParameter("defaultValueRole", java.lang.String.class, null),
75              runtime.getParameter("defaultValueType", java.lang.String.class, null),
76              runtime.getParameter("name", java.lang.String.class, null),
77              runtime.getParameter("value", org.apache.tiles.Attribute.class, null),
78              runtime.getParameter("flush", java.lang.Boolean.class, false),
79              request, modelBody
80          );
81          return true;
82      }
83  }