FieldMethodizer (Velocity 1.7 API)
Keywords: org.apache.velocity.app.FieldMethodizer class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.velocity.app
Class FieldMethodizer

    java.lang.Object
      org.apache.velocity.app.FieldMethodizer

public class FieldMethodizer
extends Object

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.

Version:
  $Id: FieldMethodizer.java 652755 2008-05-02 04:00:58Z nbubna $
Author:
  Geir Magnusson Jr.

Constructor Summary
`FieldMethodizer()` Allow object to be initialized without any data.
`FieldMethodizer(Object o)` Constructor that takes as it's arg a living object to methodize.
`FieldMethodizer(String s)` Constructor that takes as it's arg the name of the class to methodize.

Method Summary
`void` | `addObject(Object o)` Add an Object to methodize
`void` | `addObject(String s)` Add the Name of the class to methodize
`Object` | `get(String fieldName)` Accessor method to get the fields by name.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FieldMethodizer

    public FieldMethodizer()

  Allow object to be initialized without any data. You would use addObject() to add data later.

### FieldMethodizer

    public FieldMethodizer(String s)

  Constructor that takes as it's arg the name of the class to methodize.

Parameters:
  `s` - Name of class to methodize.

### FieldMethodizer

    public FieldMethodizer(Object o)

  Constructor that takes as it's arg a living object to methodize. Note that it will still only methodized the public static fields of the class.

Parameters:
  `o` - Name of class to methodize.

Method Detail

### addObject

    public void addObject(String s)
                   throws Exception

  Add the Name of the class to methodize

  Parameters:
    `s` -
  Throws:
    `Exception`

### addObject

    public void addObject(Object o)
                   throws Exception

  Add an Object to methodize

  Parameters:
    `o` -
  Throws:
    `Exception`

### get

    public Object get(String fieldName)

  Accessor method to get the fields by name.

  Parameters:
    `fieldName` - Name of static field to retrieve
  Returns:
    The value of the given field.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.