View Javadoc

1   package org.apache.turbine.modules.navigations;
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.ecs.ConcreteElement;
25  
26  import org.apache.turbine.modules.Navigation;
27  import org.apache.turbine.pipeline.PipelineData;
28  
29  import org.apache.turbine.util.RunData;
30  
31  /**
32   * Base Template Navigation.
33   *
34   * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
35   * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
36   * @version $Id: TemplateNavigation.java 1066561 2011-02-02 18:15:37Z ludwig $
37   */
38  public abstract class TemplateNavigation
39          extends Navigation
40  {
41      /**
42       * WebMacro Navigations extending this class should overide this
43       * method to perform any particular business logic and add
44       * information to the context.
45       *
46       * @deprecated Use PipelineData version instead.
47       * @param data Turbine information.
48       * @throws Exception a generic exception.
49       */
50      @Deprecated
51      protected abstract void doBuildTemplate(RunData data)
52              throws Exception;
53  
54      /**
55       * WebMacro Navigations extending this class should overide this
56       * method to perform any particular business logic and add
57       * information to the context.
58       *
59       * @param data Turbine information.
60       * @throws Exception a generic exception.
61       */
62      protected void doBuildTemplate(PipelineData pipelineData)
63              throws Exception
64      {
65  	    RunData data = getRunData(pipelineData);
66  	    doBuildTemplate(data);
67      }
68  
69  
70      /**
71       * This Builds the WebMacro/FreeMarker/etc template.
72       * @deprecated Use PipelineData version
73       * @param data Turbine information.
74       * @return A ConcreteElement.
75       * @throws Exception a generic exception.
76       */
77      @Deprecated
78      public abstract ConcreteElement buildTemplate(RunData data)
79              throws Exception;
80  
81      /**
82       * This Builds the WebMacro/FreeMarker/etc template.
83       * Should revert to abstract when RunData goes.
84       * @param pipelineData Turbine information.
85       * @return A ConcreteElement.
86       * @throws Exception a generic exception.
87       */
88      public ConcreteElement buildTemplate(PipelineData pipelineData)
89      throws Exception
90  	{
91  	    RunData data = getRunData(pipelineData);
92  	    return buildTemplate(data);
93  	}
94  
95      /**
96       * Calls doBuildTemplate() and then buildTemplate().
97       *
98       * @param data Turbine information.
99       * @return A ConcreteElement.
100      * @throws Exception a generic exception.
101      */
102     @Override
103     protected ConcreteElement doBuild(RunData data)
104             throws Exception
105     {
106         doBuildTemplate(data);
107         return buildTemplate(data);
108     }
109 
110     /**
111      * Calls doBuildTemplate() and then buildTemplate().
112      *
113      * @param data Turbine information.
114      * @return A ConcreteElement.
115      * @throws Exception a generic exception.
116      */
117     @Override
118     protected ConcreteElement doBuild(PipelineData pipelineData)
119             throws Exception
120     {
121 	    RunData data = getRunData(pipelineData);
122         return doBuild(data);
123     }
124 
125 }