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
MyClass.STRING_CONSTANT
and that is the same thing we are trying to allow here.
So to use in your Java code, do something like this :
context.put("runtime", new FieldMethodizer( "org.apache.velocity.runtime.Runtime" ));
and then in your template, you can access any of your static fields in this way :
$runtime.COUNTER_NAME
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.
author: Geir Magnusson Jr. version: $Id: FieldMethodizer.java 463298 2006-10-12 16:10:32Z henning $ |