Package org.exoplatform.container
Class CachingContainer
java.lang.Object
org.exoplatform.container.AbstractContainer
org.exoplatform.container.AbstractInterceptor
org.exoplatform.container.CachingContainer
- All Implemented Interfaces:
Serializable,Container,Interceptor,Disposable,Startable
- Version:
- $Revision$
- Author:
- Julien Viet
- See Also:
-
Field Summary
Fields inherited from class org.exoplatform.container.AbstractInterceptor
holder, parentFields inherited from class org.exoplatform.container.AbstractContainer
delegate -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> ComponentAdapter<T> getComponentAdapterOfType(Class<T> componentType, boolean autoRegistration) Find a component adapter associated with the specified type.<T> List<ComponentAdapter<T>> getComponentAdaptersOfType(Class<T> componentType) Retrieve all component adapters inside this container that are associated with the specified type.<T> TgetComponentInstance(Object componentKey, Class<T> bindType, boolean autoRegistration) Retrieve a component instance registered with a specific key.<T> TgetComponentInstanceOfType(Class<T> componentType, boolean autoRegistration) Find a component instance matching the specified type.<T> List<T> getComponentInstancesOfType(Class<T> componentType) Returns a List of components of a certain componentType.getId()Gives an identifier to the Container, allowing to inject anInterceptorinto theInterceptorchain.<T> ComponentAdapter<T> registerComponentImplementation(Object componentKey, Class<T> componentImplementation) Register a component.<T> ComponentAdapter<T> registerComponentInstance(Object componentKey, T componentInstance) Register an arbitrary object as a component in the container.unregisterComponent(Object componentKey) Unregister a component by key.Methods inherited from class org.exoplatform.container.AbstractInterceptor
setHolder, setParent, setSuccessorMethods inherited from class org.exoplatform.container.AbstractContainer
accept, createComponent, dispose, getComponentAdapter, getComponentAdapters, getManagementContext, getMBeanServer, getScopingObjectName, getSuccessor, initialize, registerComponentAdapter, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.exoplatform.container.spi.Container
accept, createComponent, getComponentAdapter, getComponentAdapters, getManagementContext, getMBeanServer, getScopingObjectName, getSuccessor, initialize, registerComponentAdapterMethods inherited from interface org.picocontainer.Disposable
dispose
-
Constructor Details
-
CachingContainer
public CachingContainer()
-
-
Method Details
-
getComponentAdapterOfType
public <T> ComponentAdapter<T> getComponentAdapterOfType(Class<T> componentType, boolean autoRegistration) Description copied from class:AbstractContainerFind a component adapter associated with the specified type. If a component adapter cannot be found in this container, the parent container (if one exists) will be searched.- Specified by:
getComponentAdapterOfTypein interfaceContainer- Overrides:
getComponentAdapterOfTypein classAbstractContainer- Parameters:
componentType- the type of the component.autoRegistration- indicates whether the auto registration should be performed or not- Returns:
- the component adapter associated with this class, or
nullif no component has been registered for the specified key.
-
getComponentAdaptersOfType
Description copied from class:AbstractContainerRetrieve all component adapters inside this container that are associated with the specified type. The component adapters from the parent container are not returned.- Specified by:
getComponentAdaptersOfTypein interfaceContainer- Overrides:
getComponentAdaptersOfTypein classAbstractContainer- Parameters:
componentType- the type of the components.- Returns:
- a collection containing all the
ComponentAdapters inside this container that are associated with the specified type. Changes to this collection will not be reflected in the container itself.
-
getComponentInstancesOfType
Description copied from class:AbstractContainerReturns a List of components of a certain componentType. The list is ordered by instantiation order, starting with the components instantiated first at the beginning.- Specified by:
getComponentInstancesOfTypein interfaceContainer- Overrides:
getComponentInstancesOfTypein classAbstractContainer- Parameters:
componentType- the searched type.- Returns:
- a List of components.
- Throws:
ContainerException
-
getComponentInstance
public <T> T getComponentInstance(Object componentKey, Class<T> bindType, boolean autoRegistration) throws ContainerException Description copied from class:AbstractContainerRetrieve a component instance registered with a specific key. If a component cannot be found in this container, the parent container (if one exists) will be searched.- Specified by:
getComponentInstancein interfaceContainer- Overrides:
getComponentInstancein classAbstractContainer- Parameters:
componentKey- the key that the component was registered with.bindType- the expected type of the instance if one can be found.autoRegistration- indicates whether the auto registration should be performed or not- Returns:
- an instantiated component, or
nullif no component has been registered for the specified key. - Throws:
ContainerException
-
getComponentInstanceOfType
Description copied from class:AbstractContainerFind a component instance matching the specified type.- Specified by:
getComponentInstanceOfTypein interfaceContainer- Overrides:
getComponentInstanceOfTypein classAbstractContainer- Parameters:
componentType- the type of the component.autoRegistration- indicates whether the auto registration should be performed or not- Returns:
- the adapter matching the class.
-
unregisterComponent
Description copied from class:AbstractContainerUnregister a component by key.- Specified by:
unregisterComponentin interfaceContainer- Overrides:
unregisterComponentin classAbstractContainer- Parameters:
componentKey- key of the component to unregister.- Returns:
- the ComponentAdapter that was associated with this component.
-
registerComponentInstance
public <T> ComponentAdapter<T> registerComponentInstance(Object componentKey, T componentInstance) throws ContainerException Description copied from class:AbstractContainerRegister an arbitrary object as a component in the container. This is handy when other components in the same container have dependencies on this kind of object, but where letting the container manage and instantiate it is impossible.
Beware that too much use of this method is an antipattern.- Specified by:
registerComponentInstancein interfaceContainer- Overrides:
registerComponentInstancein classAbstractContainer- Parameters:
componentKey- a key that identifies the component. Must be unique within the container. The type of the key object has no semantic significance unless explicitly specified in the implementing container.componentInstance- an arbitrary object.- Returns:
- the ComponentAdapter that has been associated with this component. In the majority of cases, this return
value can be safely ignored, as one of the
getXXX()methods of theContainerinterface can be used to retrieve a reference to the component later on. - Throws:
ContainerException- if registration fails.
-
registerComponentImplementation
public <T> ComponentAdapter<T> registerComponentImplementation(Object componentKey, Class<T> componentImplementation) throws ContainerException Description copied from class:AbstractContainerRegister a component.- Specified by:
registerComponentImplementationin interfaceContainer- Overrides:
registerComponentImplementationin classAbstractContainer- Parameters:
componentKey- a key that identifies the component. Must be unique within the container. The type of the key object has no semantic significance unless explicitly specified in the documentation of the implementing container.componentImplementation- the component's implementation class. This must be a concrete class (ie, a class that can be instantiated).- Returns:
- the ComponentAdapter that has been associated with this component. In the majority of cases, this return
value can be safely ignored, as one of the
getXXX()methods of theContainerinterface can be used to retrieve a reference to the component later on. - Throws:
ContainerException- if registration of the component fails.
-
getId
Gives an identifier to the Container, allowing to inject anInterceptorinto theInterceptorchain.- Specified by:
getIdin interfaceInterceptor- Overrides:
getIdin classAbstractInterceptor
-