org.apache.commons.jelly.tags.core
Class UseBeanTag
java.lang.Object
|
+--org.apache.commons.jelly.TagSupport
|
+--org.apache.commons.jelly.DynaTagSupport
|
+--org.apache.commons.jelly.MapTagSupport
|
+--org.apache.commons.jelly.tags.core.UseBeanTag
- All Implemented Interfaces:
- BeanSource, DynaTag, Tag
- Direct Known Subclasses:
- UseListTag
- public class UseBeanTag
- extends MapTagSupport
- implements BeanSource
A tag which instantiates an instance of the given class
and then sets the properties on the bean.
The class can be specified via a Class
instance or
a String which will be used to load the class using either the current
thread's context class loader or the class loader used to load this
Jelly library.
This tag can be used it as follows,
<j:useBean var="person" class="com.acme.Person" name="James" location="${loc}"/>
<j:useBean var="order" class="${orderClass}" amount="12" price="123.456"/>
- Version:
- $Revision: 1.3 $
- Author:
- James Strachan
Method Summary |
protected void |
addIgnoreProperty(java.lang.String name)
Adds a name to the Set of property names that will be skipped when setting
bean properties. |
protected java.lang.Class |
convertToClass(java.lang.Object classObject)
Attempts to convert the given object to a Class instance. |
void |
doTag(XMLOutput output)
Evaluates this tag after all the tags properties have been initialized. |
java.lang.Object |
getBean()
|
protected java.lang.Class |
getDefaultClass()
Allows derived classes to provide a default bean implementation class |
protected java.util.Set |
getIgnorePropertySet()
|
boolean |
isIgnoreUnknownProperties()
|
protected java.lang.Class |
loadClass(java.lang.String className)
Loads the given class using the default class loading mechanism
which is to try use the current Thread's context class loader first
otherise use the class loader which loaded this class. |
protected java.lang.Object |
newInstance(java.lang.Class theClass,
java.util.Map attributes,
XMLOutput output)
Creates a new instance of the given class, which by default will invoke the
default constructor. |
protected void |
processBean(java.lang.String var,
java.lang.Object bean)
By default this will export the bean using the given variable if it is defined. |
protected void |
setBean(java.lang.Object bean)
Allow derived classes to programatically set the bean |
protected void |
setBeanProperties(java.lang.Object bean,
java.util.Map attributes)
Sets the properties on the bean. |
void |
setIgnoreUnknownProperties(boolean ignoreUnknownProps)
If this tag finds an attribute in the XML that's not
ignored by #ignoreProperties and isn't a
bean property, should it throw an exception? |
protected void |
validateBeanProperties(java.lang.Object bean,
java.util.Map attributes)
If isIgnoreUnknownProperties() returns true, make sure that
every non-ignored ({@see #addIgnoreProperty(String)}) property
matches a writable property on the target bean. |
Methods inherited from class org.apache.commons.jelly.TagSupport |
findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, getBody, getBodyText, getBodyText, getContext, getParent, invokeBody, isEscapeText, isTrim, setBody, setContext, setEscapeText, setParent, setTrim, trimBody |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
UseBeanTag
public UseBeanTag()
UseBeanTag
public UseBeanTag(java.lang.Class defaultClass)
getBean
public java.lang.Object getBean()
- Specified by:
getBean
in interface BeanSource
- Returns:
- the bean that has just been created
doTag
public void doTag(XMLOutput output)
throws JellyTagException
- Description copied from interface:
Tag
- Evaluates this tag after all the tags properties have been initialized.
setBean
protected void setBean(java.lang.Object bean)
- Allow derived classes to programatically set the bean
convertToClass
protected java.lang.Class convertToClass(java.lang.Object classObject)
throws MissingAttributeException,
java.lang.ClassNotFoundException
- Attempts to convert the given object to a Class instance.
If the classObject is already a Class it will be returned
otherwise it will be converted to a String and loaded
using the default class loading mechanism.
loadClass
protected java.lang.Class loadClass(java.lang.String className)
throws java.lang.ClassNotFoundException
- Loads the given class using the default class loading mechanism
which is to try use the current Thread's context class loader first
otherise use the class loader which loaded this class.
newInstance
protected java.lang.Object newInstance(java.lang.Class theClass,
java.util.Map attributes,
XMLOutput output)
throws JellyTagException
- Creates a new instance of the given class, which by default will invoke the
default constructor.
Derived tags could do something different here.
setBeanProperties
protected void setBeanProperties(java.lang.Object bean,
java.util.Map attributes)
throws JellyTagException
- Sets the properties on the bean. Derived tags could implement some custom
type conversion etc.
This method ignores all property names in the Set returned by
getIgnorePropertySet()
.
validateBeanProperties
protected void validateBeanProperties(java.lang.Object bean,
java.util.Map attributes)
throws JellyTagException
- If
isIgnoreUnknownProperties()
returns true, make sure that
every non-ignored ({@see #addIgnoreProperty(String)}) property
matches a writable property on the target bean.
- Parameters:
bean
- the bean to validateattributes
- the list of properties to validate- Throws:
JellyTagException
- when a property is not writeable
processBean
protected void processBean(java.lang.String var,
java.lang.Object bean)
throws JellyTagException
- By default this will export the bean using the given variable if it is defined.
This Strategy method allows derived tags to process the beans in different ways
such as to register this bean with its parent tag etc.
getDefaultClass
protected java.lang.Class getDefaultClass()
- Allows derived classes to provide a default bean implementation class
addIgnoreProperty
protected void addIgnoreProperty(java.lang.String name)
- Adds a name to the Set of property names that will be skipped when setting
bean properties. In other words, names added here won't be set into the bean
if they're present in the attribute Map.
- Parameters:
name
-
getIgnorePropertySet
protected java.util.Set getIgnorePropertySet()
- Returns:
- the Set of property names that should be ignored when setting the
properties of the bean.
isIgnoreUnknownProperties
public boolean isIgnoreUnknownProperties()
- Returns:
-
- See Also:
setIgnoreUnknownProperties
public void setIgnoreUnknownProperties(boolean ignoreUnknownProps)
- If this tag finds an attribute in the XML that's not
ignored by
#ignoreProperties
and isn't a
bean property, should it throw an exception?
- Parameters:
ignoreUnknownProperties
- Sets #ignoreUnknownProperties
.
Copyright © 2002-2004 Apache Software Foundation. All Rights Reserved.