net.sf.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.
  Version:
    $Id: Factory.java,v 1.13 2004/06/24 21:15:20 herbyderby Exp $
  Author:
    Juozas Baliuka baliuka@mwm.lt

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Callback` | `getCallback(int index)` Return the `Callback` implementation at the specified index.
    `Callback[]` | `getCallbacks()` Get the current set of callbacks for ths object.
    `java.lang.Object` | `newInstance(Callback callback)` Creates new instance of the same type, using the no-arg constructor.
    `java.lang.Object` | `newInstance(Callback[] callbacks)` Creates new instance of the same type, using the no-arg constructor.
    `java.lang.Object` | `newInstance(java.lang.Class[] types, java.lang.Object[] args, Callback[] callbacks)` Creates a new instance of the same type, using the constructor matching the given signature.
    `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 Detail

    - #### newInstance

          java.lang.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

          java.lang.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

          java.lang.Object newInstance(java.lang.Class[] types,
                                     java.lang.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

Copyright (c) 2001 - Apache Software Foundation