org.apache.struts.tiles

Class ComponentDefinition

public class ComponentDefinition extends Object implements Serializable

Definition of a template / component attributes. Attributes of a component can be defined with the help of this class. An instance of this class can be used as a bean, and passed to 'insert' tag.
Field Summary
static StringACTION
Controller name type.
protected Mapattributes
Attributes defined for the component.
protected Stringcontroller
Associated Controller URL or classname, if defined
ControllercontrollerInstance
Controller associated to Definition.
protected StringcontrollerType
Associated Controller typename, if controllerName defined.
static StringCONTROLLER
Controller name type.
protected static Loglog
Commons Logging instance.
protected Stringname
Definition name
protected Stringpath
Component / template path (URL).
protected Stringrole
Role associated to definition.
static StringURL
Controller name type.
Constructor Summary
ComponentDefinition()
Constructor.
ComponentDefinition(ComponentDefinition definition)
Copy Constructor.
ComponentDefinition(XmlDefinition definition)
Constructor.
ComponentDefinition(String name, String path, Map attributes)
Constructor.
Method Summary
static ControllercreateController(String name, String controllerType)
Create a new instance of controller named in parameter.
static ControllercreateControllerFromClassname(String classname)
Create a controller from specified classname
ObjectgetAttribute(String key)
Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.
MapgetAttributes()
Access method for the attributes property.
StringgetController()
Get associated controller local URL.
ControllergetControllerInstance()
Get controller instance.
StringgetControllerType()
Get associated controller type.
StringgetName()
Access method for the name property.
ControllergetOrCreateController()
Get or create controller.
StringgetPage()
Access method for the path property.
StringgetPath()
Access method for the path property.
StringgetRole()
Access method for the role property.
StringgetTemplate()
Access method for the template property.
voidput(String name, Object content)
Put an attribute in component / template definition.
voidput(String name, Object content, boolean direct)
Put an attribute in template definition.
voidput(String name, Object content, boolean direct, String role)
Put an attribute in template definition.
voidput(String name, Object content, String type, String role)
Put an attribute in template definition.
voidputAttribute(String key, Object value)
Put a new attribute in this component
voidsetController(String url)
Set associated controller URL.
voidsetControllerClass(String controller)
Set associated controller name as a classtype, and controller type as "classname".
voidsetControllerInstance(Controller controller)
Set controller.
voidsetControllerType(String controllerType)
Set associated controller type.
voidsetControllerUrl(String controller)
Set associated controller name as an url, and controller type as "url".
voidsetName(String aName)
Sets the value of the name property.
voidsetPage(String page)
Sets the value of the path property.
voidsetPath(String aPath)
Sets the value of the path property.
voidsetRole(String role)
Sets the value of the role property.
voidsetTemplate(String template)
Sets the value of the template property.
StringtoString()
Returns a description of the attributes.

Field Detail

ACTION

public static final String ACTION
Controller name type.

attributes

protected Map attributes
Attributes defined for the component.

controller

protected String controller
Associated Controller URL or classname, if defined

controllerInstance

private Controller controllerInstance
Controller associated to Definition. Lazy creation : only on first request

controllerType

protected String controllerType
Associated Controller typename, if controllerName defined. Can be CONTROLLER, ACTION or URL, or null.

CONTROLLER

public static final String CONTROLLER
Controller name type.

log

protected static Log log
Commons Logging instance.

name

protected String name
Definition name

path

protected String path
Component / template path (URL).

role

protected String role
Role associated to definition.

URL

public static final String URL
Controller name type.

Constructor Detail

ComponentDefinition

public ComponentDefinition()
Constructor.

ComponentDefinition

public ComponentDefinition(ComponentDefinition definition)
Copy Constructor. Create a new definition initialized with parent definition. Do a shallow copy : attributes are shared between copies, but not the Map containing attributes.

ComponentDefinition

public ComponentDefinition(XmlDefinition definition)
Constructor. Create a new definition initialized from a RawDefinition. Raw definitions are used to read definition from a data source (xml file, db, ...). A RawDefinition mainly contains properties of type String, while Definition contains more complex type (ex : Controller). Do a shallow copy : attributes are shared between objects, but not the Map containing attributes. OO Design issues : Actually RawDefinition (XmlDefinition) extends ComponentDefinition. This must not be the case. I have do it because I am lazy.

Throws: InstantiationException if an error occur while instanciating Controller : (classname can't be instanciated, Illegal access with instanciated class, Error while instanciating class, classname can't be instanciated.

ComponentDefinition

public ComponentDefinition(String name, String path, Map attributes)
Constructor.

Method Detail

createController

public static Controller createController(String name, String controllerType)
Create a new instance of controller named in parameter. If controllerType is specified, create controller accordingly. Otherwise, if name denote a classname, create an instance of it. If class is subclass of org.apache.struts.action.Action, wrap controller appropriately. Otherwise, consider name as an url.

Parameters: name Controller name (classname, url, ...) controllerType Expected Controller type

Returns: org.apache.struts.tiles.Controller

Throws: InstantiationException if an error occur while instanciating Controller : (classname can't be instanciated, Illegal access with instanciated class, Error while instanciating class, classname can't be instanciated.

createControllerFromClassname

public static Controller createControllerFromClassname(String classname)
Create a controller from specified classname

Parameters: classname Controller classname.

Returns: org.apache.struts.tiles.Controller

Throws: InstantiationException if an error occur while instanciating Controller : (classname can't be instanciated, Illegal access with instanciated class, Error while instanciating class, classname can't be instanciated.

getAttribute

public Object getAttribute(String key)
Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.

Returns: requested attribute or null if not found

getAttributes

public Map getAttributes()
Access method for the attributes property. If there is no attributes, return an empty map.

Returns: the current value of the attributes property

getController

public String getController()
Get associated controller local URL. URL should be local to webcontainer in order to allow request context followup. URL comes as a string.

getControllerInstance

public Controller getControllerInstance()
Get controller instance.

Returns: controller instance.

getControllerType

public String getControllerType()
Get associated controller type. Type denote a fully qualified classname.

getName

public String getName()
Access method for the name property.

Returns: the current value of the name property

getOrCreateController

public Controller getOrCreateController()
Get or create controller. Get controller, create it if necessary.

Returns: controller if controller or controllerType is set, null otherwise.

Throws: InstantiationException if an error occur while instanciating Controller : (classname can't be instanciated, Illegal access with instanciated class, Error while instanciating class, classname can't be instanciated.

getPage

public String getPage()
Access method for the path property.

Returns: The current value of the path property.

getPath

public String getPath()
Access method for the path property.

Returns: the current value of the path property

getRole

public String getRole()
Access method for the role property.

Returns: the current value of the role property

getTemplate

public String getTemplate()
Access method for the template property. Same as getPath()

Returns: the current value of the template property

put

public void put(String name, Object content)
Put an attribute in component / template definition. Attribute can be used as content for tag get.

Parameters: name Attribute name content Attribute value

put

public void put(String name, Object content, boolean direct)
Put an attribute in template definition. Attribute can be used as content for tag get.

Parameters: name Attribute name content Attribute value o?= direct Determines how content is handled by get tag: true means content is printed directly; false, the default, means content is included

put

public void put(String name, Object content, boolean direct, String role)
Put an attribute in template definition. Attribute can be used as content for tag get.

Parameters: name Attribute name content Attribute value direct Determines how content is handled by get tag: true means content is printed directly; false, the default, means content is included role Determine if content is used by get tag. If user is in role, content is used.

put

public void put(String name, Object content, String type, String role)
Put an attribute in template definition. Attribute can be used as content for tag get.

Parameters: name Attribute name content Attribute value type attribute type: template, string, definition role Determine if content is used by get tag. If user is in role, content is used.

putAttribute

public void putAttribute(String key, Object value)
Put a new attribute in this component

Parameters: key String key for attribute value Attibute value.

setController

public void setController(String url)
Set associated controller URL. URL should be local to webcontainer in order to allow request context followup. URL is specified as a string.

Parameters: url Url called locally

setControllerClass

public void setControllerClass(String controller)
Set associated controller name as a classtype, and controller type as "classname". Name denote a fully qualified classname Convenience method.

Parameters: controller Controller classname.

setControllerInstance

public void setControllerInstance(Controller controller)
Set controller.

setControllerType

public void setControllerType(String controllerType)
Set associated controller type. Type denote a fully qualified classname.

Parameters: controllerType Typeof associated controller

setControllerUrl

public void setControllerUrl(String controller)
Set associated controller name as an url, and controller type as "url". Name must be an url (not checked). Convenience method.

Parameters: controller Controller url

setName

public void setName(String aName)
Sets the value of the name property.

Parameters: aName the new value of the name property

setPage

public void setPage(String page)
Sets the value of the path property.

Parameters: page the new value of the path property

setPath

public void setPath(String aPath)
Sets the value of the path property.

Parameters: aPath the new value of the path property

setRole

public void setRole(String role)
Sets the value of the role property.

Parameters: role the new value of the path property

setTemplate

public void setTemplate(String template)
Sets the value of the template property. Same as setPath()

Parameters: template the new value of the path property

toString

public String toString()
Returns a description of the attributes.
Copyright B) 2000-2008 - The Apache Software Foundation