This project has retired. For details please refer to its Attic page.
GetAsStringVModel xref
View Javadoc

1   /*
2    * $Id: GetAsStringVModel.java 901361 2010-01-20 20:10:27Z apetrelli $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   * http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  package org.apache.tiles.velocity.template;
23  
24  import java.io.IOException;
25  import java.io.Writer;
26  import java.util.Map;
27  
28  import javax.servlet.ServletContext;
29  import javax.servlet.http.HttpServletRequest;
30  import javax.servlet.http.HttpServletResponse;
31  
32  import org.apache.tiles.Attribute;
33  import org.apache.tiles.TilesContainer;
34  import org.apache.tiles.servlet.context.ServletUtil;
35  import org.apache.tiles.template.GetAsStringModel;
36  import org.apache.tiles.velocity.context.VelocityUtil;
37  import org.apache.velocity.context.Context;
38  import org.apache.velocity.context.InternalContextAdapter;
39  import org.apache.velocity.runtime.Renderable;
40  
41  /***
42   * Wraps {@link GetAsStringModel} to be used in Velocity. For the list of
43   * parameters, see
44   * {@link GetAsStringModel#start(java.util.Stack, TilesContainer, boolean,
45   * String, String, Object, String, String, String, Attribute, Object...)}
46   * , {@link GetAsStringModel#end(java.util.Stack, TilesContainer, Writer, boolean, Object...)} and
47   * {@link GetAsStringModel#execute(TilesContainer, Writer, boolean, String,
48   * String, Object, String, String, String, Attribute, Object...)}.
49   *
50   * @version $Rev: 901361 $ $Date: 2010-01-20 21:10:27 +0100 (mer, 20 gen 2010) $
51   * @since 2.2.0
52   * @deprecated Use Velocity directives.
53   */
54  @Deprecated
55  public class GetAsStringVModel implements Executable, BodyExecutable {
56  
57      /***
58       * The template model.
59       */
60      private GetAsStringModel model;
61  
62      /***
63       * The Servlet context.
64       */
65      private ServletContext servletContext;
66  
67      /***
68       * Constructor.
69       *
70       * @param model The template model.
71       * @param servletContext The servlet context.
72       * @since 2.2.0
73       */
74      public GetAsStringVModel(GetAsStringModel model,
75              ServletContext servletContext) {
76          this.model = model;
77          this.servletContext = servletContext;
78      }
79  
80      /*** {@inheritDoc} */
81      public Renderable execute(HttpServletRequest request,
82              HttpServletResponse response, Context velocityContext,
83              Map<String, Object> params) {
84          return new AbstractDefaultToStringRenderable(velocityContext, params,
85                  response, request) {
86  
87              public boolean render(InternalContextAdapter context, Writer writer)
88                      throws IOException {
89                  TilesContainer container = ServletUtil.getCurrentContainer(
90                          request, servletContext);
91                  model.execute(container, writer,
92                          VelocityUtil.toSimpleBoolean((Boolean) params
93                                  .get("ignore"), false), (String) params
94                                  .get("preparer"), (String) params.get("role"),
95                          params.get("defaultValue"), (String) params
96                                  .get("defaultValueRole"), (String) params
97                                  .get("defaultValueType"), (String) params
98                                  .get("name"), (Attribute) params.get("value"),
99                          velocityContext, request, response, writer);
100                 return true;
101             }
102         };
103     }
104 
105     /*** {@inheritDoc} */
106     public void start(HttpServletRequest request, HttpServletResponse response,
107             Context velocityContext, Map<String, Object> params) {
108         VelocityUtil.getParameterStack(velocityContext).push(params);
109         model.start(ServletUtil.getComposeStack(request), ServletUtil
110                 .getCurrentContainer(request, servletContext), VelocityUtil
111                 .toSimpleBoolean((Boolean) params.get("ignore"), false),
112                 (String) params.get("preparer"), (String) params.get("role"),
113                 params.get("defaultValue"), (String) params
114                         .get("defaultValueRole"), (String) params
115                         .get("defaultValueType"), (String) params.get("name"),
116                 (Attribute) params.get("value"), velocityContext, request,
117                 response);
118     }
119 
120     /*** {@inheritDoc} */
121     public Renderable end(HttpServletRequest request, HttpServletResponse response,
122             Context velocityContext) {
123         Map<String, Object> params = VelocityUtil.getParameterStack(
124                 velocityContext).pop();
125         return new AbstractDefaultToStringRenderable(velocityContext, params, response, request) {
126 
127             public boolean render(InternalContextAdapter context, Writer writer)
128                     throws IOException {
129                 model.end(ServletUtil.getComposeStack(request), ServletUtil
130                         .getCurrentContainer(request, servletContext), writer,
131                         VelocityUtil.toSimpleBoolean((Boolean) params
132                                 .get("ignore"), false), velocityContext,
133                         request, response, writer);
134                 return true;
135             }
136         };
137     }
138 }