Class FieldTool
java.lang.Object
org.apache.velocity.tools.generic.SafeConfig
org.apache.velocity.tools.generic.FieldTool
This is a simple tools class to allow easy access to static fields in a class, such as string constants from within a template. Velocity will not introspect for class fields (and won't in the future :), but writing setter/getter methods to do this is a pain, so use this if you really have to access fields.
Example uses in a template: ## here we access a constant in a class include in the configuration $field.COUNTER_NAME ## here we dynamically lookup a class' fields to find another constant $field.in("org.com.SomeClass").ANOTHER_CONSTANT ## here we pass an object instance in (an Integer in this case) and ## retrieve a static constant from that instance's class $field.in(0).MIN_VALUE ## by default, once we've searched a class' fields, those fields stay ## available in the tool (change this by storeDynamicLookups="false") ## so here we get another constant from the Integer class $field.MAX_VALUE Example tools.xml config: <tools> <toolbox scope="application"> <tool class="org.apache.velocity.tools.generic.FieldTool" include="org.apache.velocity.runtime.RuntimeConstants,com.org.MyConstants"/> </toolbox> </tools>
Right now, this tool only gives access to public static
fields.
It seems that anything else is too dangerous. This is for convenient access
to 'constants'. If you have fields that aren't static
,
handle them by explicitly placing them into the context or writing a getter
method.
- Since:
- VelocityTools 2.0
- Version:
- $Id: FieldTool.java 463298 2006-10-12 16:10:32Z henning $
- Author:
- Geir Magnusson Jr., Nathan Bubna
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Holds aMap
of results for a particular class.static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The key used for specifying which classes should be inspected for public static methods to be made available.protected org.apache.velocity.runtime.log.Log
protected HashMap
static final String
The key used for specifying whether or not the tool should store fields in classes dynamically looked up from within a template.protected boolean
Fields inherited from class org.apache.velocity.tools.generic.SafeConfig
LOCK_CONFIG_KEY, OLD_LOCK_CONFIG_KEY, SAFE_MODE_KEY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
configure
(ValueParser values) Does the actual configuration.Returns the value for the specified field name as found in the storedMap
of field names to values (or placeholders).Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for the specifiedClass
.Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for theClass
of the specified Object.Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for the specified class(name).Looks for all public, static fields in the specified class and stores their value (if final) or else aFieldTool.MutableField
for in aMap
under the fields' names.protected static Object
Methods inherited from class org.apache.velocity.tools.generic.SafeConfig
configure, isConfigLocked, isSafeMode, setLockConfig, setSafeMode
-
Field Details
-
INCLUDE_KEY
The key used for specifying which classes should be inspected for public static methods to be made available.- See Also:
-
STORE_DYNAMIC_KEY
The key used for specifying whether or not the tool should store fields in classes dynamically looked up from within a template. The default value is true.- See Also:
-
log
protected org.apache.velocity.runtime.log.Log log -
storage
-
storeDynamicLookups
protected boolean storeDynamicLookups
-
-
Constructor Details
-
FieldTool
public FieldTool()
-
-
Method Details
-
configure
Description copied from class:SafeConfig
Does the actual configuration. This is protected, so subclasses may share the same ValueParser and call configure at any time, while preventing templates from doing so when configure(Map) is locked.- Overrides:
configure
in classSafeConfig
-
get
Returns the value for the specified field name as found in the storedMap
of field names to values (or placeholders). Returnsnull
if there is no matching field. -
in
Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for the specified class(name). If theClass
with the specified name cannot be loaded, this will returnnull
, rather than throw an exception.- See Also:
-
in
Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for theClass
of the specified Object.- See Also:
-
in
Returns aFieldTool.FieldToolSub
holding aMap
of all the public static field names to values (or a placeholder if the value is not final) for the specifiedClass
. -
inspect
Looks for all public, static fields in the specified class and stores their value (if final) or else aFieldTool.MutableField
for in aMap
under the fields' names. This will never return null, only an empty Map if there are no public static fields. -
retrieve
-