/*
* $Id: DefinitionTagSupport.java 471754 2006-11-06 14:55:09Z husted $
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.struts.tiles.taglib;
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;
}
}