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 }