View Javadoc

1   package org.apache.turbine.modules;
2   
3   /*
4    * Copyright 2001-2005 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License")
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import org.apache.turbine.util.RunData;
20  
21  /***
22   * This is the base class that defines what a Page module is.
23   *
24   * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
25   * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
26   * @version $Id: Page.java 264148 2005-08-29 14:21:04Z henning $
27   */
28  public abstract class Page
29      extends Assembler
30  {
31      /***
32       * A subclass must override this method to build itself.
33       * Subclasses override this method to store the page in RunData or
34       * to write the page to the output stream referenced in RunData.
35       *
36       * @param data Turbine information.
37       * @exception Exception a generic exception.
38       */
39      protected abstract void doBuild(RunData data)
40          throws Exception;
41  
42      /***
43       * Subclasses can override this method to add additional
44       * functionality.  This method is protected to force clients to
45       * use PageLoader to build a Page.
46       *
47       * @param data Turbine information.
48       * @exception Exception a generic exception.
49       */
50      protected void build(RunData data)
51          throws Exception
52      {
53          doBuild(data);
54      }
55  }