1 package org.apache.turbine.modules; 2 3 /* 4 * Copyright 2001-2004 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 Layout module is. 23 * 24 * @author <a HREF="mailto:mbryson@mont.mindspring.com">Dave Bryson</a> 25 * @version $Id: Layout.java,v 1.4.2.2 2004/05/20 03:03:52 seade Exp $ 26 */ 27 public abstract class Layout 28 extends Assembler 29 { 30 /** 31 * A subclass must override this method to build itself. 32 * Subclasses override this method to store the layout in RunData 33 * or to write the layout to the output stream referenced in 34 * 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 LayoutLoader to build a Layout. 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 } 56