Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.picocontainer.behaviors
Class HiddenImplementation<T>

    java.lang.Object
      org.picocontainer.behaviors.AbstractBehavior<T>
          org.picocontainer.behaviors.HiddenImplementation<T>

All Implemented Interfaces:
  Serializable, Behavior<T>, ComponentAdapter<T>, ComponentLifecycle<T>, ComponentMonitorStrategy, LifecycleStrategy

Direct Known Subclasses:
  Intercepted

    public class HiddenImplementation<T>

extends AbstractBehavior<T>

This component adapter makes it possible to hide the implementation of a real subject (behind a proxy) provided the key is an interface.

This class exists here, because a) it has no deps on external jars, b) dynamic proxy is quite easy. The user is prompted to look at picocontainer-gems for alternate and bigger implementations.

Author:
  Aslak Hellesøy, Paul Hammant
See Also:
  `for a more feature-rich version of this class.`, Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
`ComponentAdapter.NOTHING`

Field Summary

Fields inherited from class org.picocontainer.behaviors.AbstractBehavior
`delegate`

Constructor Summary
`HiddenImplementation(ComponentAdapter<T> delegate)` Creates an ImplementationHidingComponentAdapter with a delegate

Method Summary
`protected T` | `createProxy(Class[] interfaces, PicoContainer container, ClassLoader classLoader)`
`T` | `getComponentInstance(PicoContainer container, Type into)` Retrieve the component instance.
`String` | `getDescriptor()` Get a string key descriptor of the component adapter.
`protected Object` | `invokeMethod(Object componentInstance, Method method, Object[] args, PicoContainer container)`

Methods inherited from class org.picocontainer.behaviors.AbstractBehavior
`accept, changeMonitor, componentHasLifecycle, currentMonitor, dispose, dispose, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate, hasLifecycle, isStarted, start, start, stop, stop, toString, verify`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### HiddenImplementation

    public HiddenImplementation(ComponentAdapter<T> delegate)

  Creates an ImplementationHidingComponentAdapter with a delegate

  Parameters:
    `delegate` - the component adapter to which this adapter delegates

Method Detail

### getComponentInstance

    public T getComponentInstance(PicoContainer container,
                                  Type into)
                           throws PicoCompositionException

  Description copied from interface: `ComponentAdapter`
  Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example, `Cached` will always return the same instance.

  Specified by:
    `getComponentInstance` in interface `ComponentAdapter<T>`
  Overrides:
    `getComponentInstance` in class `AbstractBehavior<T>`
  Parameters:
    `container` - the `PicoContainer`, that is used to resolve any possible dependencies of the instance.
    `into` - the class that is about to be injected into. Use ComponentAdapter.NOTHING.class if this is not important to you.
  Returns:
    the component instance.
  Throws:
    `PicoCompositionException` - if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.

### getDescriptor

    public String getDescriptor()

  Description copied from interface: `ComponentAdapter`
  Get a string key descriptor of the component adapter.

  Returns:

### createProxy

    protected T createProxy(Class[] interfaces,
                            PicoContainer container,
                            ClassLoader classLoader)

### invokeMethod

    protected Object invokeMethod(Object componentInstance,
                                  Method method,
                                  Object[] args,
                                  PicoContainer container)
                           throws Throwable

  Throws:
    `Throwable`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2009 Codehaus. All Rights Reserved.