Package org.apache.velocity.util.introspection

# Class AbstractChainableUberspector

java.lang.Object
org.apache.velocity.util.introspection.UberspectImpl
org.apache.velocity.util.introspection.AbstractChainableUberspector

All Implemented Interfaces:
  `ChainableUberspector`, `Uberspect`, `RuntimeServicesAware`

Direct Known Subclasses:
  `DeprecatedCheckUberspector`, `LinkingUberspector`

public abstract class AbstractChainableUberspector extends UberspectImpl implements ChainableUberspector
Default implementation of a `chainable uberspector` that forwards all calls to the wrapped uberspector (when that is possible). It should be used as the base class for all chainable uberspectors.

Since:
  1.6
Version:
  $Id: $
See Also:
  - `ChainableUberspector`

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.velocity.util.introspection.UberspectImpl

`UberspectImpl.VelGetterImpl, UberspectImpl.VelMethodImpl, UberspectImpl.VelSetterImpl`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Uberspect`
`inner`
The wrapped (decorated) uberspector.

### Fields inherited from class org.apache.velocity.util.introspection.UberspectImpl

`conversionHandler, introspector, log, rsvc`

## Constructor Summary

Constructors
Constructor
Description
`AbstractChainableUberspector()`

## Method Summary

Modifier and Type
Method
Description
`Iterator`
`getIterator(Object obj, Info i)`
To support iterative objects used in a `#foreach()` loop.
`VelMethod`
`getMethod(Object obj, String methodName, Object[] args, Info i)`
Method
`VelPropertyGet`
`getPropertyGet(Object obj, String identifier, Info i)`
Property getter
`VelPropertySet`
`getPropertySet(Object obj, String identifier, Object arg, Info i)`
Property setter
`void`
`init()`
init - the chainable uberspector is responsible for the initialization of the wrapped uberspector
`void`
`wrap(Uberspect inner)`
Specify the decorated Uberspector

### Methods inherited from class org.apache.velocity.util.introspection.UberspectImpl

`getConversionHandler, setLog, setRuntimeServices`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### inner

protected Uberspect inner
The wrapped (decorated) uberspector.

## Constructor Details

### AbstractChainableUberspector

public AbstractChainableUberspector()

## Method Details

### wrap

public void wrap(Uberspect inner)
Specify the decorated Uberspector

Specified by:
  `wrap` in interface `ChainableUberspector`
Parameters:
  `inner` - The decorated uberspector.
See Also:
  - `ChainableUberspector.wrap(org.apache.velocity.util.introspection.Uberspect)`
  - `inner`

### init

public void init()
init - the chainable uberspector is responsible for the initialization of the wrapped uberspector

Specified by:
  `init` in interface `Uberspect`
Overrides:
  `init` in class `UberspectImpl`
See Also:
  - `Uberspect.init()`

### getIterator

public Iterator getIterator(Object obj, Info i)
To support iterative objects used in a `#foreach()` loop.

Specified by:
  `getIterator` in interface `Uberspect`
Overrides:
  `getIterator` in class `UberspectImpl`
Parameters:
  `obj` - The iterative object.
  `i` - Info about the object's location.
Returns:
  An `Iterator` object.
See Also:
  - `Uberspect.getIterator(java.lang.Object, org.apache.velocity.util.introspection.Info)`

### getMethod

public VelMethod getMethod(Object obj, String methodName, Object[] args, Info i)
Method

Specified by:
  `getMethod` in interface `Uberspect`
Overrides:
  `getMethod` in class `UberspectImpl`
Parameters:
  `obj` -
  `methodName` -
  `args` -
  `i` -
Returns:
  A Velocity Method.
See Also:
  - `Uberspect.getMethod(java.lang.Object, java.lang.String, java.lang.Object[], org.apache.velocity.util.introspection.Info)`

### getPropertyGet

public VelPropertyGet getPropertyGet(Object obj, String identifier, Info i)
Property getter

Specified by:
  `getPropertyGet` in interface `Uberspect`
Overrides:
  `getPropertyGet` in class `UberspectImpl`
Parameters:
  `obj` -
  `identifier` -
  `i` -
Returns:
  A Velocity Getter Method.
See Also:
  - `Uberspect.getPropertyGet(java.lang.Object, java.lang.String, org.apache.velocity.util.introspection.Info)`

### getPropertySet

public VelPropertySet getPropertySet(Object obj, String identifier, Object arg, Info i)
Property setter

Specified by:
  `getPropertySet` in interface `Uberspect`
Overrides:
  `getPropertySet` in class `UberspectImpl`
Parameters:
  `obj` -
  `identifier` -
  `arg` -
  `i` -
Returns:
  A Velocity Setter method.
See Also:
  - `Uberspect.getPropertySet(java.lang.Object, java.lang.String, java.lang.Object, org.apache.velocity.util.introspection.Info)`