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 java.lang.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 $
Author:
  Geir Magnusson Jr.

### Nested Class Summary

Nested Classes
`class` `UberspectImpl.VelGetterImpl`
`class` `UberspectImpl.VelMethodImpl` An implementation of `VelMethod`.
`class` `UberspectImpl.VelSetterImpl`

### Constructor Summary

Constructors
Constructor and Description
`UberspectImpl()`

### Method Summary

Methods
`java.util.Iterator` `getIterator(java.lang.Object obj, Info i)` To support iteratives - #foreach()
`VelMethod` `getMethod(java.lang.Object obj, java.lang.String methodName, java.lang.Object[] args, Info i)` Returns a general method, corresponding to $foo.bar( $woogie )
`VelPropertyGet` `getPropertyGet(java.lang.Object obj, java.lang.String identifier, Info i)` Property getter - returns VelPropertyGet appropos for #set($foo = $bar.woogie)
`VelPropertySet` `getPropertySet(java.lang.Object obj, java.lang.String identifier, java.lang.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(org.apache.commons.logging.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 java.lang.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:
  `java.lang.Exception` - on any error.

#### setRuntimeLogger

    public void setRuntimeLogger(org.apache.commons.logging.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 java.util.Iterator getIterator(java.lang.Object obj,
                                 Info i)
                                   throws java.lang.Exception

To support iteratives - #foreach()

Specified by:
  `getIterator` in interface `Uberspect`
Returns:
  An Iterator.
Throws:
  `java.lang.Exception`

#### getMethod

    public VelMethod getMethod(java.lang.Object obj,
                      java.lang.String methodName,
                      java.lang.Object[] args,
                      Info i)
                        throws java.lang.Exception

Returns a general method, corresponding to $foo.bar( $woogie )

Specified by:
  `getMethod` in interface `Uberspect`
Returns:
  A Velocity Method.
Throws:
  `java.lang.Exception`

#### getPropertyGet

    public VelPropertyGet getPropertyGet(java.lang.Object obj,
                                java.lang.String identifier,
                                Info i)
                                  throws java.lang.Exception

Property getter - returns VelPropertyGet appropos for #set($foo = $bar.woogie)

Specified by:
  `getPropertyGet` in interface `Uberspect`
Returns:
  A Velocity Getter.
Throws:
  `java.lang.Exception`

#### getPropertySet

    public VelPropertySet getPropertySet(java.lang.Object obj,
                                java.lang.String identifier,
                                java.lang.Object arg,
                                Info i)
                                  throws java.lang.Exception

Property setter - returns VelPropertySet appropos for #set($foo.bar = "geir")

Specified by:
  `getPropertySet` in interface `Uberspect`
Returns:
  A Velocity Setter.
Throws:
  `java.lang.Exception`