blob: 95d40d4e6f4d9113b0d0fba1b24619864fe75246 [file] [log] [blame]
/*
* Copyright 2004-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.taglib.tiles;
import java.io.Serializable;
import javax.servlet.jsp.tagext.TagSupport;
/**
* Common base class for tags dealing with Tiles definitions.
* This class defines properties used in Definition Tags.
* It also extends TagSupport.
*/
public class DefinitionTagSupport extends TagSupport implements Serializable
{
/** Associated Controller type */
protected String controllerType;
/** Associated Controller name (classname or url) */
protected String controllerName;
/**
* Role associated to definition.
*/
protected String role;
/**
* Uri of page assoicated to this definition.
*/
protected String page;
/**
* Release class properties.
*/
public void release() {
super.release();
controllerType = null;
controllerName = null;
role = null;
page = null;
}
/**
* Get controller type.
* Type can be 'classname', 'url'.
* @return Controller type.
*/
public String getControllerType()
{
return controllerType;
}
/**
* Get controller name.
* Name denotes a fully qualified classname, or an url.
* Exact type can be specified with {@link #setControllerType}.
* @return Controller name.
*/
public String getControllerName()
{
return controllerName;
}
/**
* Set associated controller type.
* Type denotes a fully qualified classname.
* @param controllerType Type of associated controller.
*/
public void setControllerType(String controllerType)
{
this.controllerType = controllerType;
}
/**
* Set associated controller name.
* Name denotes a fully qualified classname, or an url.
* Exact type can be specified with {@link #setControllerType}.
* @param controller Controller classname or url.
*/
public void setController(String controller)
{
setControllerName(controller); ;
}
/**
* Set associated controller name.
* Name denote a fully qualified classname, or an url.
* Exact type can be specified with setControllerType.
* @param controller Controller classname or url
*/
public void setControllerName(String controller)
{
this.controllerName = controller;
}
/**
* Set associated controller name as an url, and controller
* type as "url".
* Name must be an url (not checked).
* Convenience method.
* @param controller Controller url
*/
public void setControllerUrl(String controller)
{
setControllerName( controller);
setControllerType( "url" );
}
/**
* Set associated controller name as a classtype and controller
* type as "classname".
* Name denotes a fully qualified classname.
* Convenience method.
* @param controller Controller classname.
*/
public void setControllerClass(String controller)
{
setControllerName( controller);
setControllerType( "classname" );
}
/**
* Get associated role.
* @return Associated role.
*/
public String getRole()
{
return role;
}
/**
* Set associated role.
* @param role Associated role.
*/
public void setRole(String role)
{
this.role = role;
}
/**
* Set the page.
* @param page Page.
*/
public void setPage(String page)
{
this.page = page;
}
/**
* Get the page.
* @return Page.
*/
public String getPage()
{
return page;
}
/**
* Get the template.
* Same as getPage().
* @return Template.
*/
public String getTemplate()
{
return page;
}
/**
* Set the template.
* Same as setPage().
* @param template Template.
*/
public void setTemplate(String template)
{
this.page = template;
}
}