View Javadoc

    1   package org.apache.turbine.services.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 org.apache.turbine.pipeline.PipelineData;
    25  import org.apache.turbine.services.Service;
    26
    27  /**
    28   * This service provides a method for mapping templates to their
    29   * appropriate Screens or Navigations.  It also allows templates to
    30   * define a layout/navigations/screen modularization within the
    31   * template structure.  It also performs caching if turned on in the
    32   * properties file.
    33   *
    34   * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a>
    35   * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
    36   * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
    37   * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
    38   * @version $Id: TemplateService.java 1773378 2016-12-09 13:19:59Z tv $
    39   */
    40  public interface TemplateService
    41      extends Service
    42  {
    43      /**
    44       * The key under which this service is stored in TurbineServices.
    45       */
    46      static final String SERVICE_NAME = "TemplateService";
    47
    48      /** Default Template Name. */
    49      String DEFAULT_TEMPLATE_KEY = "default.template";
    50
    51      /** Default value for the Template Name */
    52      String DEFAULT_TEMPLATE_VALUE = "Default";
    53
    54      /** Default Extension for the template names. */
    55      String DEFAULT_EXTENSION_KEY = "default.extension";
    56
    57      /** Default value of the Turbine Module Caching */
    58      String DEFAULT_EXTENSION_VALUE = "";
    59
    60      /** Character that separates a Template Name from the Extension */
    61      char EXTENSION_SEPARATOR = '.';
    62
    63      /** Character that separates the various Template Parts */
    64      char TEMPLATE_PARTS_SEPARATOR = ',';
    65
    66      /** "Default" name for Classes and Templates */
    67      String DEFAULT_NAME = "Default";
    68
    69      /**
    70       * Returns true if the Template Service has caching activated
    71       *
    72       * @return true if Caching is active.
    73       */
    74      boolean isCaching();
    75
    76      /**
    77       * Get the default template name extension specified
    78       * in the template service properties.
    79       *
    80       * @return The default the extension.
    81       */
    82      String getDefaultExtension();
    83
    84      /**
    85       * Return Extension for a supplied template
    86       *
    87       * @param template The template name
    88       *
    89       * @return extension The extension for the supplied template
    90       */
    91      String getExtension(String template);
    92
    93      /**
    94       * Returns the Default Template Name with the Default Extension.
    95       * If the extension is unset, return only the template name
    96       *
    97       * @return The default template Name
    98       */
    99      String getDefaultTemplate();
    100
    101     /**
    102      * Get the default page module name of the template engine
    103      * service corresponding to the default template name extension.
    104      *
    105      * @return The default page module name.
    106      */
    107     String getDefaultPage();
    108
    109     /**
    110      * Get the default screen module name of the template engine
    111      * service corresponding to the default template name extension.
    112      *
    113      * @return The default screen module name.
    114      */
    115     String getDefaultScreen();
    116
    117     /**
    118      * Get the default layout module name of the template engine
    119      * service corresponding to the default template name extension.
    120      *
    121      * @return The default layout module name.
    122      */
    123     String getDefaultLayout();
    124
    125     /**
    126      * Get the default navigation module name of the template engine
    127      * service corresponding to the default template name extension.
    128      *
    129      * @return The default navigation module name.
    130      */
    131     String getDefaultNavigation();
    132
    133     /**
    134      * Get the default layout template name of the template engine
    135      * service corresponding to the default template name extension.
    136      *
    137      * @return The default layout template name.
    138      */
    139     String getDefaultLayoutTemplate();
    140
    141     /**
    142      * Get the default page module name of the template engine
    143      * service corresponding to the template name extension of
    144      * the named template.
    145      *
    146      * @param template The template name.
    147      * @return The default page module name.
    148      */
    149     String getDefaultPageName(String template);
    150
    151     /**
    152      * Get the default screen module name of the template engine
    153      * service corresponding to the template name extension of
    154      * the named template.
    155      *
    156      * @param template The template name.
    157      * @return The default screen module name.
    158      */
    159     String getDefaultScreenName(String template);
    160
    161     /**
    162      * Get the default layout module name of the template engine
    163      * service corresponding to the template name extension of
    164      * the named template.
    165      *
    166      * @param template The template name.
    167      * @return The default layout module name.
    168      */
    169     String getDefaultLayoutName(String template);
    170
    171     /**
    172      * Get the default navigation module name of the template engine
    173      * service corresponding to the template name extension of
    174      * the named template.
    175      *
    176      * @param template The template name.
    177      * @return The default navigation module name.
    178      */
    179     String getDefaultNavigationName(String template);
    180
    181     /**
    182      * Get the default layout template name of the template engine
    183      * service corresponding to the template name extension of
    184      * the named template.
    185      *
    186      * @param template The template name.
    187      * @return The default layout template name.
    188      */
    189     String getDefaultLayoutTemplateName(String template);
    190
    191     /**
    192      * Find the default page module name for the given request.
    193      *
    194      * @param pipelineData The encapsulation of the request to retrieve the
    195      *             default page for.
    196      * @return The default page module name.
    197      */
    198     String getDefaultPageName(PipelineData pipelineData);
    199
    200     /**
    201      * Find the default layout module name for the given request.
    202      *
    203      * @param pipelineData The encapsulation of the request to retrieve the
    204      *             default layout for.
    205      * @return The default layout module name.
    206      */
    207     String getDefaultLayoutName(PipelineData pipelineData);
    208
    209     /**
    210      * Locate and return the name of the screen module to be used
    211      * with the named screen template.
    212      *
    213      * @param template The screen template name.
    214      * @return The found screen module name.
    215      * @throws Exception a generic exception.
    216      */
    217     String getScreenName(String template)
    218             throws Exception;
    219
    220     /**
    221      * Locate and return the name of the layout module to be used
    222      * with the named layout template.
    223      *
    224      * @param template The layout template name.
    225      * @return The found layout module name.
    226      * @throws Exception a generic exception.
    227      */
    228     String getLayoutName(String template)
    229             throws Exception;
    230
    231     /**
    232      * Locate and return the name of the navigation module to be used
    233      * with the named navigation template.
    234      *
    235      * @param template The navigation template name.
    236      * @return The found navigation module name.
    237      * @throws Exception a generic exception.
    238      */
    239     String getNavigationName(String template)
    240             throws Exception;
    241
    242     /**
    243      * Locate and return the name of the screen template corresponding
    244      * to the given template name parameter.
    245      *
    246      * @param template The template name parameter.
    247      * @return The found screen template name.
    248      * @throws Exception a generic exception.
    249      */
    250     String getScreenTemplateName(String template)
    251             throws Exception;
    252
    253     /**
    254      * Locate and return the name of the layout template corresponding
    255      * to the given screen template name parameter.
    256      *
    257      * @param template The template name parameter.
    258      * @return The found screen template name.
    259      * @throws Exception a generic exception.
    260      */
    261     String getLayoutTemplateName(String template)
    262             throws Exception;
    263
    264     /**
    265      * Locate and return the name of the navigation template corresponding
    266      * to the given template name parameter.
    267      *
    268      * @param template The template name parameter.
    269      * @return The found navigation template name.
    270      * @throws Exception a generic exception.
    271      */
    272     String getNavigationTemplateName(String template)
    273             throws Exception;
    274
    275     /**
    276      * Translates the supplied template paths into their Turbine-canonical
    277      * equivalent (probably absolute paths).
    278      *
    279      * @param templatePaths An array of template paths.
    280      * @return An array of translated template paths.
    281      * @deprecated Each template engine service should know how to translate
    282      *             a request onto a file.
    283      */
    284     @Deprecated
    285     String[] translateTemplatePaths(String[] templatePaths);
    286
    287     /**
    288      * Delegates to the appropriate {@link
    289      * org.apache.turbine.services.template.TemplateEngineService} to
    290      * check the existence of the specified template.
    291      *
    292      * @param template      The template to check for the existence of.
    293      * @param templatePaths The paths to check for the template.
    294      * @return true if the given template exists
    295      * @deprecated Use templateExists from the various Templating Engines
    296      */
    297     @Deprecated
    298     boolean templateExists(String template,
    299                            String[] templatePaths);
    300
    301
    302     /**
    303      * The {@link org.apache.turbine.services.template.TemplateEngineService}
    304      * associated with the specified template's file extension.
    305      *
    306      * @param template The template name.
    307      * @return The template engine service.
    308      */
    309     TemplateEngineService getTemplateEngineService(String template);
    310
    311     /**
    312      * Registers the provided template engine for use by the
    313      * <code>TemplateService</code>.
    314      *
    315      * @param service The <code>TemplateEngineService</code> to register.
    316      */
    317     void registerTemplateEngineService(TemplateEngineService service);
    318 }