View Javadoc

    1   package org.apache.turbine.modules;
    2
    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  import org.apache.ecs.ConcreteElement;
    23
    24  import org.apache.turbine.pipeline.PipelineData;
    25  import org.apache.turbine.util.InputFilterUtils;
    26  import org.apache.turbine.util.RunData;
    27
    28  /**
    29   * This is the base class that defines what a Navigation module is.
    30   *
    31   * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
    32   * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
    33   * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
    34   * @version $Id: Navigation.java 717934 2008-11-15 21:48:47Z tv $
    35   */
    36  public abstract class Navigation
    37      extends Assembler
    38  {
    39      /** Prefix for navigation related classes and templates */
    40      public static final String PREFIX = "navigations";
    41
    42      /** Property for the size of the navigation cache if caching is on */
    43      public static final String CACHE_SIZE_KEY = "navigation.cache.size";
    44
    45      /** The default size for the navigation cache */
    46      public static final int CACHE_SIZE_DEFAULT = 10;
    47
    48      /** Represents Navigation Objects */
    49      public static final String NAME = "navigation";
    50
    51      /**
    52       * @see org.apache.turbine.modules.Assembler#getPrefix()
    53       */
    54      public String getPrefix()
    55      {
    56          return PREFIX;
    57      }
    58
    59      /**
    60       * A subclass must override this method to build itself.
    61       * Subclasses override this method to store the navigation in
    62       * RunData or to write the navigation to the output stream
    63       * referenced in RunData.
    64       * @deprecated Use PipelineData version instead
    65       *
    66       * @param data Turbine information.
    67       * @exception Exception a generic exception.
    68       */
    69      protected abstract ConcreteElement doBuild(RunData data)
    70          throws Exception;
    71
    72      /**
    73       * Subclasses can override this method to add additional
    74       * functionality.  This method is protected to force clients to
    75       * use NavigationLoader to build a Navigation.
    76       * @deprecated Use PipelineData version instead
    77       * @param data Turbine information.
    78       * @exception Exception a generic exception.
    79       */
    80      protected ConcreteElement build(RunData data)
    81          throws Exception
    82      {
    83          return doBuild(data);
    84      }
    85
    86      /**
    87       * A subclass must override this method to build itself.
    88       * Subclasses override this method to store the navigation in
    89       * RunData or to write the navigation to the output stream
    90       * referenced in RunData.
    91       *
    92       * @param data Turbine information.
    93       * @exception Exception a generic exception.
    94       */
    95      protected ConcreteElement doBuild(PipelineData pipelineData)
    96          throws Exception
    97      {
    98          RunData data = getRunData(pipelineData);
    99          return doBuild(data);
    100     }
    101
    102     /**
    103      * Subclasses can override this method to add additional
    104      * functionality.  This method is protected to force clients to
    105      * use NavigationLoader to build a Navigation.
    106      *
    107      * @param data Turbine information.
    108      * @exception Exception a generic exception.
    109      */
    110     protected ConcreteElement build(PipelineData pipelineData)
    111         throws Exception
    112     {
    113         return doBuild(pipelineData);
    114     }
    115
    116
    117     /**
    118      * This function can/should be used in any screen that will output
    119      * User entered text.  This will help prevent users from entering
    120      * html (<SCRIPT>) tags that will get executed by the browser.
    121      *
    122      * @param s The string to prepare.
    123      * @return A string with the input already prepared.
    124      * @deprecated Use InputFilterUtils.prepareText(String s)
    125      */
    126     public static String prepareText(String s)
    127     {
    128         return InputFilterUtils.prepareText(s);
    129     }
    130 }