org.apache.commons.jexl.util.introspection
Class UberspectImpl

java.lang.Object
  |
  +--org.apache.commons.jexl.util.introspection.UberspectImpl
All Implemented Interfaces:
Uberspect, UberspectLoggable

public class UberspectImpl
extends Object
implements Uberspect, UberspectLoggable

Implementation of Uberspect to provide the default introspective functionality of Velocity.

Since:
1.0
Version:
$Id: UberspectImpl.java 398509 2006-05-01 03:34:35Z dion $

Nested Class Summary
 class UberspectImpl.VelGetterImpl
          {@inheritDoc}
 class UberspectImpl.VelMethodImpl
          An implementation of VelMethod.
 class UberspectImpl.VelSetterImpl
          {@inheritDoc}
 
Constructor Summary
UberspectImpl()
           
 
Method Summary
 Iterator getIterator(Object obj, Info i)
          To support iteratives - #foreach().
 VelMethod getMethod(Object obj, String methodName, Object[] args, Info i)
          Returns a general method, corresponding to $foo.bar( $woogie ).
 VelPropertyGet getPropertyGet(Object obj, String identifier, Info i)
          Property getter - returns VelPropertyGet appropos for #set($foo = $bar.woogie).
 VelPropertySet getPropertySet(Object obj, String identifier, Object arg, Info i)
          Property setter - returns VelPropertySet appropos for #set($foo.bar = "geir").
 void init()
          init - does nothing - we need to have setRuntimeLogger called before getting our introspector, as the default vel introspector depends upon it.
 void setRuntimeLogger(Log runtimeLogger)
          Sets the runtime logger - this must be called before anything else besides init() as to get the logger.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UberspectImpl

public UberspectImpl()
Method Detail

init

public void init()
          throws Exception
init - does nothing - we need to have setRuntimeLogger called before getting our introspector, as the default vel introspector depends upon it.

Specified by:
init in interface Uberspect
Throws:
Exception - on any error.

setRuntimeLogger

public void setRuntimeLogger(Log runtimeLogger)
Sets the runtime logger - this must be called before anything else besides init() as to get the logger. Makes the pull model appealing...

Specified by:
setRuntimeLogger in interface UberspectLoggable
Parameters:
runtimeLogger - service to use for logging.

getIterator

public Iterator getIterator(Object obj,
                            Info i)
                     throws Exception
To support iteratives - #foreach().

Specified by:
getIterator in interface Uberspect
Parameters:
i - template info.
obj - to get the iterator for.
Returns:
an iterator over obj.
Throws:
Exception - on any error.

getMethod

public VelMethod getMethod(Object obj,
                           String methodName,
                           Object[] args,
                           Info i)
                    throws Exception
Returns a general method, corresponding to $foo.bar( $woogie ).

Specified by:
getMethod in interface Uberspect
Parameters:
obj - the object
methodName - the method name
args - method arguments
i - template info
Returns:
a VelMethod.
Throws:
Exception - on any error.

getPropertyGet

public VelPropertyGet getPropertyGet(Object obj,
                                     String identifier,
                                     Info i)
                              throws Exception
Property getter - returns VelPropertyGet appropos for #set($foo = $bar.woogie).

Specified by:
getPropertyGet in interface Uberspect
Parameters:
obj - the object to get the property from.
identifier - property name
i - template info
Returns:
a VelPropertyGet.
Throws:
Exception - on any error.

getPropertySet

public VelPropertySet getPropertySet(Object obj,
                                     String identifier,
                                     Object arg,
                                     Info i)
                              throws Exception
Property setter - returns VelPropertySet appropos for #set($foo.bar = "geir").

Specified by:
getPropertySet in interface Uberspect
Parameters:
obj - the object to get the property from.
identifier - property name
arg - value to set.
i - template info
Returns:
a VelPropertySet.
Throws:
Exception - on any error.


Copyright © 2003-2006 The Apache Software Foundation. All Rights Reserved.