001 package org.apache.turbine.services.template;
002
003
004 /*
005 * Licensed to the Apache Software Foundation (ASF) under one
006 * or more contributor license agreements. See the NOTICE file
007 * distributed with this work for additional information
008 * regarding copyright ownership. The ASF licenses this file
009 * to you under the Apache License, Version 2.0 (the
010 * "License"); you may not use this file except in compliance
011 * with the License. You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing,
016 * software distributed under the License is distributed on an
017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
018 * KIND, either express or implied. See the License for the
019 * specific language governing permissions and limitations
020 * under the License.
021 */
022
023
024 import org.apache.turbine.services.TurbineServices;
025
026 import org.apache.turbine.util.RunData;
027
028 /**
029 * This is a simple static accessor to common TemplateService tasks such as
030 * getting a Screen that is associated with a screen template.
031 *
032 * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a>
033 * @version $Id: TurbineTemplate.java 615328 2008-01-25 20:25:05Z tv $
034 */
035 public abstract class TurbineTemplate
036 {
037 /**
038 * Utility method for accessing the service
039 * implementation
040 *
041 * @return a TemplateService implementation instance
042 */
043 public static TemplateService getService()
044 {
045 return (TemplateService) TurbineServices
046 .getInstance().getService(TemplateService.SERVICE_NAME);
047 }
048
049 /**
050 * Returns true if the Template Service has caching activated
051 *
052 * @return true if Caching is active.
053 */
054 public static final boolean isCaching()
055 {
056 return getService().isCaching();
057 }
058
059 /**
060 * Get the default extension given in the properties file.
061 *
062 * @return A String with the extension.
063 */
064 public static final String getDefaultExtension()
065 {
066 return getService().getDefaultExtension();
067 }
068
069 /**
070 * Return Extension for a supplied template
071 *
072 * @param template The template name
073 *
074 * @return extension The extension for the supplied template
075 */
076 public static final String getExtension(String template)
077 {
078 return getService().getExtension(template);
079 }
080
081 /**
082 * Returns the Default Template Name with the Default Extension.
083 * If the extension is unset, return only the template name
084 *
085 * @return The default template Name
086 */
087 public static final String getDefaultTemplate()
088 {
089 return getService().getDefaultTemplate();
090 }
091
092 /**
093 * Get the default page module name of the template engine
094 * service corresponding to the default template name extension.
095 *
096 * @return The default page module name.
097 */
098 public static final String getDefaultPage()
099 {
100 return getService().getDefaultPage();
101 }
102
103 /**
104 * Get the Screen template given in the properties file.
105 *
106 * @return A String which is the value of the TemplateService
107 * default.screen property.
108 */
109 public static final String getDefaultScreen()
110 {
111 return getService().getDefaultScreen();
112 }
113
114 /**
115 * Get the default layout module name of the template engine
116 * service corresponding to the default template name extension.
117 *
118 * @return The default layout module name.
119 */
120 public static final String getDefaultLayout()
121 {
122 return getService().getDefaultLayout();
123 }
124
125 /**
126 * Get the default Navigation given in the properties file.
127 *
128 * @return A String which is the value of the TemplateService
129 * default.navigation property.
130 */
131 public static final String getDefaultNavigation()
132 {
133 return getService().getDefaultNavigation();
134 }
135
136 /**
137 * Get the default layout template given in the properties file.
138 *
139 * @return A String which is the value of the TemplateService
140 * default.layout.template property.
141 */
142 public static final String getDefaultLayoutTemplate()
143 {
144 return getService().getDefaultLayoutTemplate();
145 }
146
147 /**
148 * Get the default page module name of the template engine
149 * service corresponding to the template name extension of
150 * the named template.
151 *
152 * @param template The template name.
153 * @return The default page module name.
154 */
155 public static final String getDefaultPageName(String template)
156 {
157 return getService().getDefaultPageName(template);
158 }
159
160 /**
161 * Get the default screen module name of the template engine
162 * service corresponding to the template name extension of
163 * the named template.
164 *
165 * @param template The template name.
166 * @return The default screen module name.
167 */
168 public static final String getDefaultScreenName(String template)
169 {
170 return getService().getDefaultScreenName(template);
171 }
172
173 /**
174 * Get the default layout module name of the template engine
175 * service corresponding to the template name extension of
176 * the named template.
177 *
178 * @param template The template name.
179 * @return The default layout module name.
180 */
181 public static final String getDefaultLayoutName(String template)
182 {
183 return getService().getDefaultLayoutName(template);
184 }
185
186 /**
187 * Get the default navigation module name of the template engine
188 * service corresponding to the template name extension of
189 * the named template.
190 *
191 * @param template The template name.
192 * @return The default navigation module name.
193 */
194 public static final String getDefaultNavigationName(String template)
195 {
196 return getService().getDefaultNavigationName(template);
197 }
198
199 /**
200 * Get the default layout template name of the template engine
201 * service corresponding to the template name extension of
202 * the named template.
203 *
204 * @param template The template name.
205 * @return The default layout template name.
206 */
207 public static final String getDefaultLayoutTemplateName(String template)
208 {
209 return getService().getDefaultLayoutTemplateName(template);
210 }
211
212 /**
213 * Find the default page module name for the given request.
214 *
215 * @param data The encapsulation of the request to retrieve the
216 * default page for.
217 * @return The default page module name.
218 */
219 public static final String getDefaultPageName(RunData data)
220 {
221 return getService().getDefaultPageName(data);
222 }
223
224 /**
225 * Find the default layout module name for the given request.
226 *
227 * @param data The encapsulation of the request to retrieve the
228 * default layout for.
229 * @return The default layout module name.
230 */
231 public static final String getDefaultLayoutName(RunData data)
232 {
233 return getService().getDefaultLayoutName(data);
234 }
235
236 /**
237 * Locate and return the name of a Screen module.
238 *
239 * @param name A String with the name of the template.
240 * @return A String with the name of the screen.
241 * @exception Exception, a generic exception.
242 */
243 public static final String getScreenName(String name)
244 throws Exception
245 {
246 return getService().getScreenName(name);
247 }
248
249 /**
250 * Locate and return the name of the layout module to be used
251 * with the named layout template.
252 *
253 * @param template The layout template name.
254 * @return The found layout module name.
255 * @exception Exception, a generic exception.
256 */
257 public static final String getLayoutName(String template)
258 throws Exception
259 {
260 return getService().getLayoutName(template);
261 }
262
263 /**
264 * Locate and return the name of the navigation module to be used
265 * with the named navigation template.
266 *
267 * @param template The navigation template name.
268 * @return The found navigation module name.
269 * @exception Exception, a generic exception.
270 */
271 public static final String getNavigationName(String template)
272 throws Exception
273 {
274 return getService().getNavigationName(template);
275 }
276
277 /**
278 * Locate and return the name of a screen template.
279 *
280 * @param key A String which is the key to the template.
281 * @return A String with the screen template path.
282 * @exception Exception, a generic exception.
283 */
284 public static final String getScreenTemplateName(String key)
285 throws Exception
286 {
287 return getService().getScreenTemplateName(key);
288 }
289
290 /**
291 * Locate and return the name of a layout template.
292 *
293 * @param name A String with the name of the template.
294 * @return A String with the layout template path.
295 * @exception Exception, a generic exception.
296 */
297 public static final String getLayoutTemplateName(String name)
298 throws Exception
299 {
300 return getService().getLayoutTemplateName(name);
301 }
302
303 /**
304 * Locate and return the name of a navigation template.
305 *
306 * @param key A String which is the key to the template.
307 * @return A String with the navigation template path.
308 * @exception Exception, a generic exception.
309 */
310 public static final String getNavigationTemplateName(String key)
311 throws Exception
312 {
313 return getService().getNavigationTemplateName(key);
314 }
315
316 /**
317 * Translates the supplied template paths into their Turbine-canonical
318 * equivalent (probably absolute paths).
319 *
320 * @param templatePaths An array of template paths.
321 * @return An array of translated template paths.
322 * @deprecated Each template engine service should know how to translate
323 * a request onto a file.
324 */
325 public static final String[] translateTemplatePaths(String[] templatePaths)
326 {
327 return getService().translateTemplatePaths(templatePaths);
328 }
329
330 /**
331 * Delegates to the appropriate {@link
332 * org.apache.turbine.services.template.TemplateEngineService} to
333 * check the existance of the specified template.
334 *
335 * @param template The template to check for the existance of.
336 * @param templatePaths The paths to check for the template.
337 * @deprecated Use templateExists from the various Templating Engines
338 */
339 public static final boolean templateExists(String template, String[] templatePaths)
340 {
341 return getService().templateExists(template, templatePaths);
342 }
343
344 /**
345 * Registers the provided template engine for use by the
346 * <code>TemplateService</code>.
347 *
348 * @param service The <code>TemplateEngineService</code> to register.
349 */
350 public static final void registerTemplateEngineService(TemplateEngineService service)
351 {
352 getService().registerTemplateEngineService(service);
353 }
354
355 /**
356 * The {@link org.apache.turbine.services.template.TemplateEngineService}
357 * associated with the specified template's file extension.
358 *
359 * @param template The template name.
360 * @return The template engine service.
361 */
362 public static final TemplateEngineService getTemplateEngineService(String template)
363 {
364 return getService().getTemplateEngineService(template);
365 }
366 }