Package org.springframework.cglib.proxy

# Interface Factory

public interface Factory
All enhanced instances returned by the `Enhancer` class implement this interface. Using this interface for new instances is faster than going through the `Enhancer` interface or using reflection. In addition, to intercept methods called during object construction you must use these methods instead of reflection.

Author:
  Juozas Baliuka baliuka@mwm.lt

## Method Summary

Modifier and Type
Method
Description
`Callback`
`getCallback(int index)`
Return the `Callback` implementation at the specified index.
`Callback[]`
`getCallbacks()`
Get the current set of callbacks for ths object.
`Object`
`newInstance(Class[] types, Object[] args, Callback[] callbacks)`
Creates a new instance of the same type, using the constructor matching the given signature.
`Object`
`newInstance(Callback callback)`
Creates new instance of the same type, using the no-arg constructor.
`Object`
`newInstance(Callback[] callbacks)`
Creates new instance of the same type, using the no-arg constructor.
`void`
`setCallback(int index, Callback callback)`
Set the callback for this object for the given type.
`void`
`setCallbacks(Callback[] callbacks)`
Replace all of the callbacks for this object at once.

## Method Details

### newInstance

Object newInstance(Callback callback)
Creates new instance of the same type, using the no-arg constructor. The class of this object must have been created using a single Callback type. If multiple callbacks are required an exception will be thrown.

Parameters:
  `callback` - the new interceptor to use
Returns:
  new instance of the same type

### newInstance

Object newInstance(Callback[] callbacks)
Creates new instance of the same type, using the no-arg constructor.

Parameters:
  `callbacks` - the new callbacks(s) to use
Returns:
  new instance of the same type

### newInstance

Object newInstance(Class[] types, Object[] args, Callback[] callbacks)
Creates a new instance of the same type, using the constructor matching the given signature.

Parameters:
  `types` - the constructor argument types
  `args` - the constructor arguments
  `callbacks` - the new interceptor(s) to use
Returns:
  new instance of the same type

### getCallback

Callback getCallback(int index)
Return the `Callback` implementation at the specified index.

Parameters:
  `index` - the callback index
Returns:
  the callback implementation

### setCallback

void setCallback(int index, Callback callback)
Set the callback for this object for the given type.

Parameters:
  `index` - the callback index to replace
  `callback` - the new callback

### setCallbacks

void setCallbacks(Callback[] callbacks)
Replace all of the callbacks for this object at once.

Parameters:
  `callbacks` - the new callbacks(s) to use

### getCallbacks

Callback[] getCallbacks()
Get the current set of callbacks for ths object.

Returns:
  a new array instance