Package org.picocontainer

# Class DefaultPicoContainer.KnowsContainerAdapter<T>

java.lang.Object
org.picocontainer.DefaultPicoContainer.KnowsContainerAdapter<T>

All Implemented Interfaces:
  `ComponentAdapter<T>`

Enclosing class:
  `DefaultPicoContainer`

public static class DefaultPicoContainer.KnowsContainerAdapter<T> extends Object implements ComponentAdapter<T>

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter

`ComponentAdapter.NOTHING`

## Constructor Summary

Constructors
Constructor
Description
`KnowsContainerAdapter(ComponentAdapter<T> ca, PicoContainer ctr)`

## Method Summary

Modifier and Type
Method
Description
`void`
`accept(PicoVisitor visitor)`
Accepts a visitor for this ComponentAdapter.
`<U extends ComponentAdapter>
U`
`findAdapterOfType(Class<U> adapterType)`
Locates a component adapter of type componentAdapterType in the ComponentAdapter chain.
`Class<? extends T>`
`getComponentImplementation()`
Retrieve the class of the component.
`T`
`getComponentInstance(Type into)`
`T`
`getComponentInstance(PicoContainer container)`
Retrieve the component instance.
`T`
`getComponentInstance(PicoContainer container, Type into)`
Retrieve the component instance.
`Object`
`getComponentKey()`
Retrieve the key associated with the component.
`ComponentAdapter`
`getDelegate()`
Component adapters may be nested in a chain, and this method is used to grab the next ComponentAdapter in the chain.
`String`
`getDescriptor()`
Get a string key descriptor of the component adapter for use in toString()
`void`
`verify(PicoContainer container)`
Verify that all dependencies for this adapter can be satisfied.

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

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

## Constructor Details

### KnowsContainerAdapter

public KnowsContainerAdapter(ComponentAdapter<T> ca, PicoContainer ctr)

## Method Details

### getComponentInstance

public T getComponentInstance(Type into) throws PicoCompositionException

Throws:
  `PicoCompositionException`

### getComponentKey

public Object getComponentKey()
Description copied from interface: `ComponentAdapter`
Retrieve the key associated with the component.

Specified by:
  `getComponentKey` in interface `ComponentAdapter<T>`
Returns:
  the component's key. Should either be a class type (normally an interface) or an identifier that is unique (within the scope of the current PicoContainer).

### getComponentImplementation

public Class<? extends T> getComponentImplementation()
Description copied from interface: `ComponentAdapter`
Retrieve the class of the component.

Specified by:
  `getComponentImplementation` in interface `ComponentAdapter<T>`
Returns:
  the component's implementation class. Should normally be a concrete class (ie, a class that can be instantiated).

### getComponentInstance

public T getComponentInstance(PicoContainer container) 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>`
Parameters:
  `container` - the `PicoContainer`, that is used to resolve any possible dependencies of the instance.
Returns:
  the component instance.
Throws:
  `PicoCompositionException` - if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambigous situation within the container.

### 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>`
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.

### verify

public void verify(PicoContainer container) throws PicoCompositionException
Description copied from interface: `ComponentAdapter`
Verify that all dependencies for this adapter can be satisfied. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependencies.

Specified by:
  `verify` in interface `ComponentAdapter<T>`
Parameters:
  `container` - the `PicoContainer`, that is used to resolve any possible dependencies of the instance.
Throws:
  `PicoCompositionException` - if one or more dependencies cannot be resolved.

### accept

public void accept(PicoVisitor visitor)
Description copied from interface: `ComponentAdapter`
Accepts a visitor for this ComponentAdapter. The method is normally called by visiting a `PicoContainer`, that cascades the visitor also down to all its ComponentAdapter instances.

Specified by:
  `accept` in interface `ComponentAdapter<T>`
Parameters:
  `visitor` - the visitor.

### getDelegate

public ComponentAdapter getDelegate()
Description copied from interface: `ComponentAdapter`
Component adapters may be nested in a chain, and this method is used to grab the next ComponentAdapter in the chain.

Specified by:
  `getDelegate` in interface `ComponentAdapter<T>`
Returns:
  the next component adapter in line or null if there is no delegate ComponentAdapter.

### findAdapterOfType

public <U extends ComponentAdapter> U findAdapterOfType(Class<U> adapterType)
Description copied from interface: `ComponentAdapter`
Locates a component adapter of type componentAdapterType in the ComponentAdapter chain. Will return null if there is no adapter of the given type.

Specified by:
  `findAdapterOfType` in interface `ComponentAdapter<T>`
Type Parameters:
  `U` - the type of ComponentAdapter being located.
Parameters:
  `adapterType` - the class of the adapter type being located. Never null.
Returns:
  the appropriate component adapter of type U. May return null if the component adapter type is not returned.

### getDescriptor

public String getDescriptor()
Description copied from interface: `ComponentAdapter`
Get a string key descriptor of the component adapter for use in toString()

Specified by:
  `getDescriptor` in interface `ComponentAdapter<T>`
Returns:
  the descriptor