/**
* Licensed under the Artistic License; you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://displaytag.sourceforge.net/license.html
*
* THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
package org.displaytag.decorator;
import javax.servlet.jsp.PageContext;
import org.displaytag.exception.DecoratorInstantiationException;
import org.displaytag.render.TableTotaler;
/**
* Factory for TableDecorator or ColumnDecorator object.
* @author Fabrizio Giustina
* @version $Id$
*/
public interface DecoratorFactory
{
/**
* <p>
* Given a table decorator name, returns a <code>org.displaytag.decorator.TableDecorator</code> instance. The
* method used to lookup decorator (direct instantiation, load from a pre-istantiated list or from the page context)
* may vary between different implementations.
* </p>
* @param decoratorName String full decorator class name
* @return instance of TableDecorator
* @throws DecoratorInstantiationException if unable to load specified TableDecorator
*/
TableDecorator loadTableDecorator(PageContext pageContext, String decoratorName)
throws DecoratorInstantiationException;
/**
* <p>
* Given a column decorator name, returns a <code>org.displaytag.decorator.DisplaytagColumnDecorator</code>
* instance. The method used to lookup decorator (direct instantiation, load from a pre-istantiated list or from the
* page context) may vary between different implementations.
* </p>
* @param decoratorName String full decorator class name
* @return instance of DisplaytagColumnDecorator
* @throws DecoratorInstantiationException if unable to load ColumnDecorator
*/
DisplaytagColumnDecorator loadColumnDecorator(PageContext pageContext, String decoratorName)
throws DecoratorInstantiationException;
/**
*
* @param pageContext ctxt
* @param decoratorName full class name
* @return
* @throws DecoratorInstantiationException
*/
TableTotaler loadTableTotaler(PageContext pageContext, String decoratorName)
throws DecoratorInstantiationException;
}