|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.velocity.app.FieldMethodizer
This is a small utility class allow easy access to static fields in a class, such as string constants. Velocity will not introspect for class fields (and won't in the future :), but writing setter/getter methods to do this really is a pain, so use this if you really have to access fields.
The idea it so enable access to the fields just like you would in Java. For example, in Java, you would access a static field like
and that is the same thing we are trying to allow here.MyClass.STRING_CONSTANT
So to use in your Java code, do something like this :
and then in your template, you can access any of your static fields in this way :context.put("runtime", new FieldMethodizer( "org.apache.velocity.runtime.Runtime" ));
$runtime.RUNTIME_LOG_WARN_STACKTRACE
Right now, this class only methodizes public static
fields. It seems
that anything else is too dangerous. This class is for convenience accessing
'constants'. If you have fields that aren't static
it may be better
to handle them by explicitly placing them into the context.
Field Summary | |
private java.util.HashMap |
classHash
Hold the class objects by field name |
private java.util.HashMap |
fieldHash
Hold the field objects by field name |
Constructor Summary | |
FieldMethodizer()
Allow object to be initialized without any data. |
|
FieldMethodizer(java.lang.Object o)
Constructor that takes as it's arg a living object to methodize. |
|
FieldMethodizer(java.lang.String s)
Constructor that takes as it's arg the name of the class to methodize. |
Method Summary | |
void |
addObject(java.lang.Object o)
Add an Object to methodize |
void |
addObject(java.lang.String s)
Add the Name of the class to methodize |
java.lang.Object |
get(java.lang.String fieldName)
Accessor method to get the fields by name. |
private void |
inspect(java.lang.Class clas)
Method that retrieves all public static fields in the class we are methodizing. |
Methods inherited from class java.lang.Object |
|
Field Detail |
private java.util.HashMap fieldHash
private java.util.HashMap classHash
Constructor Detail |
public FieldMethodizer()
public FieldMethodizer(java.lang.String s)
s
- Name of class to methodize.public FieldMethodizer(java.lang.Object o)
s
- Name of class to methodize.Method Detail |
public void addObject(java.lang.String s) throws java.lang.Exception
public void addObject(java.lang.Object o) throws java.lang.Exception
public java.lang.Object get(java.lang.String fieldName)
fieldName
- Name of static field to retrieveprivate void inspect(java.lang.Class clas)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |