##### Coverage Report - org.apache.turbine.util.template.TemplateInfo

Classes in this File | Line Coverage | Branch Coverage | Complexity
TemplateInfo |
66% | 30/45
33% | 2/6
| 1.3333333333333333;1,333

1 |  |
     package org.apache.turbine.util.template;
2 |  |
3 |  |
4 |  |
     /*
5 |  |
      * Licensed to the Apache Software Foundation (ASF) under one
6 |  |
      * or more contributor license agreements.  See the NOTICE file
7 |  |
      * distributed with this work for additional information
8 |  |
      * regarding copyright ownership.  The ASF licenses this file
9 |  |
      * to you under the Apache License, Version 2.0 (the
10 |  |
      * "License"); you may not use this file except in compliance
11 |  |
      * with the License.  You may obtain a copy of the License at
12 |  |
      *
13 |  |
      *   http://www.apache.org/licenses/LICENSE-2.0
14 |  |
      *
15 |  |
      * Unless required by applicable law or agreed to in writing,
16 |  |
      * software distributed under the License is distributed on an
17 |  |
      * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 |  |
      * KIND, either express or implied.  See the License for the
19 |  |
      * specific language governing permissions and limitations
20 |  |
      * under the License.
21 |  |
      */
22 |  |
23 |  |
24 |  |
     import java.util.HashMap;
25 |  |
     import java.util.Map;
26 |  |
27 |  |
     import org.apache.turbine.services.TurbineServices;
28 |  |
     import org.apache.turbine.services.template.TemplateService;
29 |  |
     import org.apache.turbine.util.RunData;
30 |  |
     import org.apache.turbine.util.uri.URIConstants;
31 |  |
32 |  |
33 |  |
     /**
34 |  |
      * This is a wrapper for Template specific information.  It's part of
35 |  |
      * the RunData object and can extract the information it needs to do
36 |  |
      * the job directly from the data.getParameters().
37 |  |
      *
38 |  |
      * @author <a href="mailto:mbryson@mindspring.com">Dave Bryson</a>
39 |  |
      * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
40 |  |
      * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
41 |  |
      * @version $Id: TemplateInfo.java 1723699 2016-01-08 11:29:21Z tv $
42 |  |
      */
43 |  |
     public class TemplateInfo
44 |  |
     {
45 |  |
46 |  |
         /** Constants for tempStorage hash map. */
47 |  |
         public static final String NAVIGATION_TEMPLATE = "00navigation_template00";
48 |  |
         /** Constants for tempStorage hash map. */
49 |  |
         public static final String LAYOUT_TEMPLATE = "00layout_template00";
50 |  |
         /** Constants for tempStorage hash map. */
51 |  |
         public static final String SERVICE_NAME = "template_service";
52 |  |
53 |  |
         /* Handle to the RunData object. */
54 | 13 |
         private RunData data = null;
55 |  |
56 |  |
         /* Place to store information about templates. */
57 | 13 |
         private Map<String, Object> tempStorage = null;
58 |  |
59 |  |
         /**
60 |  |
          * Constructor
61 |  |
          *
62 |  |
          * @param data A Turbine RunData object.
63 |  |
          */
64 |  |
         public TemplateInfo(RunData data)
65 | 13 |
         {
66 | 13 |
             this.data = data;
67 | 13 |
             tempStorage = new HashMap<String, Object>(10);
68 | 13 |
         }
69 |  |
70 |  |
         /**
71 |  |
          * Get the value of navigationTemplate.
72 |  |
          *
73 |  |
          * @return A String with the value of navigationTemplate.
74 |  |
          */
75 |  |
         public String getNavigationTemplate()
76 |  |
         {
77 | 0 |
             return getString(TemplateInfo.NAVIGATION_TEMPLATE);
78 |  |
         }
79 |  |
80 |  |
         /**
81 |  |
          * Set the value of navigationTemplate.
82 |  |
          *
83 |  |
          * @param v Value to assign to navigationTemplate.
84 |  |
          */
85 |  |
         public void setNavigationTemplate(String v)
86 |  |
         {
87 | 0 |
             setTemp(TemplateInfo.NAVIGATION_TEMPLATE, v);
88 | 0 |
         }
89 |  |
90 |  |
         /**
91 |  |
          * Get the value of screen for the RunData parameters.  This
92 |  |
          * information comes from PathInfo or a QueryString.
93 |  |
          *
94 |  |
          * @return A String with the value of screen.
95 |  |
          */
96 |  |
         public String getScreenTemplate()
97 |  |
         {
98 | 14 |
             return data.getParameters().getString(URIConstants.CGI_TEMPLATE_PARAM, null);
99 |  |
         }
100 |  |
101 |  |
         /**
102 |  |
          * Set the value of screen.  This is really just a method to hide
103 |  |
          * using the RunData Parameter.
104 |  |
          *
105 |  |
          * @param v Value to assign to screen.
106 |  |
          */
107 |  |
         public void setScreenTemplate(String v)
108 |  |
         {
109 | 7 |
             data.getParameters().setString(URIConstants.CGI_TEMPLATE_PARAM, v);
110 |  |
111 |  |
             // We have changed the screen template so
112 |  |
             // we should now update the layout template
113 |  |
             // as well. We will use the template service
114 |  |
             // to help us out.
115 |  |
             try
116 |  |
             {
117 | 7 |
                 TemplateService templateService = (TemplateService)TurbineServices.getInstance().getService(TemplateService.SERVICE_NAME);
118 | 7 |
                 setLayoutTemplate(templateService.getLayoutTemplateName(v));
119 |  |
             }
120 | 0 |
             catch (Exception e)
121 |  |
             {
122 |  |
                 /*
123 |  |
                  * do nothing.
124 |  |
                  */
125 | 7 |
             }
126 | 7 |
         }
127 |  |
128 |  |
         /**
129 |  |
          * Get the value of layout.
130 |  |
          *
131 |  |
          * @return A String with the value of layout.
132 |  |
          */
133 |  |
         public String getLayoutTemplate()
134 |  |
         {
135 | 2 |
             String value = getString(TemplateInfo.LAYOUT_TEMPLATE);
136 | 2 |
             return value;
137 |  |
         }
138 |  |
139 |  |
         /**
140 |  |
          * Set the value of layout.
141 |  |
          *
142 |  |
          * @param v Value to assign to layout.
143 |  |
          */
144 |  |
         public void setLayoutTemplate(String v)
145 |  |
         {
146 | 11 |
             setTemp(TemplateInfo.LAYOUT_TEMPLATE, v);
147 | 11 |
         }
148 |  |
149 |  |
         /**
150 |  |
          * Get the value of Template context.  This will be cast to the
151 |  |
          * proper Context by its Service.
152 |  |
          *
153 |  |
          * @param name The name of the template context.
154 |  |
          * @return An Object with the Value of context.
155 |  |
          */
156 |  |
         public Object getTemplateContext(String name)
157 |  |
         {
158 | 25 |
             return getTemp(name);
159 |  |
         }
160 |  |
161 |  |
         /**
162 |  |
          * Set the value of context.
163 |  |
          *
164 |  |
          * @param name The name of the template context.
165 |  |
          * @param v Value to assign to context.
166 |  |
          */
167 |  |
         public void setTemplateContext(String name, Object v)
168 |  |
         {
169 | 12 |
             setTemp(name, v);
170 | 12 |
         }
171 |  |
172 |  |
         /**
173 |  |
          * Get the value of service.
174 |  |
          *
175 |  |
          * @return A String with the value of service.
176 |  |
          */
177 |  |
         public String getService()
178 |  |
         {
179 | 0 |
             return getString(TemplateInfo.SERVICE_NAME);
180 |  |
         }
181 |  |
182 |  |
         /**
183 |  |
          * Set the value of service.
184 |  |
          *
185 |  |
          * @param v Value to assign to service.
186 |  |
          */
187 |  |
         public void setService(String v)
188 |  |
         {
189 | 0 |
             setTemp(TemplateInfo.SERVICE_NAME, v);
190 | 0 |
         }
191 |  |
192 |  |
         /**
193 |  |
          * Get an object from temporary storage.
194 |  |
          *
195 |  |
          * @param name A String with the name of the object.
196 |  |
          * @return An Object.
197 |  |
          */
198 |  |
         public Object getTemp(String name)
199 |  |
         {
200 | 25 |
             return tempStorage.get(name);
201 |  |
         }
202 |  |
203 |  |
         /**
204 |  |
          * Get an object from temporary storage, or a default value.
205 |  |
          *
206 |  |
          * @param name A String with the name of the object.
207 |  |
          * @param def An Object, the default value.
208 |  |
          * @return An Object.
209 |  |
          */
210 |  |
         public Object getTemp(String name, Object def)
211 |  |
         {
212 |  |
             try
213 |  |
             {
214 | 2 |
                 Object val = tempStorage.get(name);
215 | 2 |
                 return (val != null) ? val : def;
216 |  |
             }
217 | 0 |
             catch (Exception e)
218 |  |
             {
219 | 0 |
                 return def;
220 |  |
             }
221 |  |
         }
222 |  |
223 |  |
         /**
224 |  |
          * Put an object into temporary storage.
225 |  |
          *
226 |  |
          * @param name A String with the name of the object.
227 |  |
          * @param value An Object, the value.
228 |  |
          */
229 |  |
         public void setTemp(String name, Object value)
230 |  |
         {
231 | 23 |
             tempStorage.put(name, value);
232 | 23 |
         }
233 |  |
234 |  |
         /**
235 |  |
          * Return a String[] from the temp hash map.
236 |  |
          *
237 |  |
          * @param name A String with the name of the object.
238 |  |
          * @return A String[].
239 |  |
          */
240 |  |
         public String[] getStringArray(String name)
241 |  |
         {
242 | 0 |
             String[] value = null;
243 | 0 |
             Object object = getTemp(name, null);
244 | 0 |
             if (object != null)
245 |  |
             {
246 | 0 |
                 value = (String[]) object;
247 |  |
             }
248 | 0 |
             return value;
249 |  |
         }
250 |  |
251 |  |
         /**
252 |  |
          * Return a String from the temp hash map.
253 |  |
          *
254 |  |
          * @param name A String with the name of the object.
255 |  |
          * @return A String.
256 |  |
          */
257 |  |
         public String getString(String name)
258 |  |
         {
259 | 2 |
             String value = null;
260 | 2 |
             Object object = getTemp(name, null);
261 | 2 |
             if (object != null)
262 |  |
             {
263 | 2 |
                 value = (String) object;
264 |  |
             }
265 | 2 |
             return value;
266 |  |
         }
267 |  |
268 |  |
         /**
269 |  |
          * Remove an object from the  temporary storage.
270 |  |
          *
271 |  |
          * @param name A String with the name of the object.
272 |  |
          * @return The object that was removed or <code>null</code>
273 |  |
          *         if the name was not a key.
274 |  |
          */
275 |  |
         public Object removeTemp(String name)
276 |  |
         {
277 | 2 |
             return tempStorage.remove(name);
278 |  |
         }
279 |  |
280 |  |
         /**
281 |  |
          * Returns all the available names in the temporary storage.
282 |  |
          *
283 |  |
          * @return A object array with the keys.
284 |  |
          */
285 |  |
         public Object[] getTempKeys()
286 |  |
         {
287 | 0 |
             return tempStorage.keySet().toArray();
288 |  |
         }
289 |  |
     }