01: package org.apache.turbine.modules;
02:
03: /*
04: * Copyright 2001-2005 The Apache Software Foundation.
05: *
06: * Licensed under the Apache License, Version 2.0 (the "License")
07: * you may not use this file except in compliance with the License.
08: * You may obtain a copy of the License at
09: *
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 Layout module is.
23: *
24: * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
25: * @version $Id: Layout.java 264148 2005-08-29 14:21:04Z henning $
26: */
27: public abstract class Layout extends Assembler {
28: /**
29: * A subclass must override this method to build itself.
30: * Subclasses override this method to store the layout in RunData
31: * or to write the layout to the output stream referenced in
32: * RunData.
33: *
34: * @param data Turbine information.
35: * @exception Exception a generic exception.
36: */
37: protected abstract void doBuild(RunData data) throws Exception;
38:
39: /**
40: * Subclasses can override this method to add additional
41: * functionality. This method is protected to force clients to
42: * use LayoutLoader to build a Layout.
43: *
44: * @param data Turbine information.
45: * @exception Exception a generic exception.
46: */
47: protected void build(RunData data) throws Exception {
48: doBuild(data);
49: }
50: }
|