Package net.sf.jguiraffe.di.impl
Klasse SimpleBeanStoreImpl
java.lang.Object
net.sf.jguiraffe.di.impl.SimpleBeanStoreImpl
- Alle implementierten Schnittstellen:
BeanStore
A helper class that simplifies implementations of the BeanStore
interface.
The purpose of this class is to support BeanStore
implementations based on classes that are not aware of BeanProviders,
but provide a map-like interface for accessing their data. This is achieved
in the following ways:
- Static data (in form of arbitrary objects) can directly be added to this
class. Internally
ConstantBeanProviderobjects are created for the data objects to be managed. These providers are directly exposed through theBeanStoremethods. - If dynamic data is involved (i.e. objects that may change over time and
cannot be kept in a map), components can implement the internal
BeanContributorinterface and register themselves at aSimpleBeanStoreImplinstance. TheBeanConstributorinterface is much easier to implement than theBeanStoreinterface. The implementations of theBeanStoremethods provided by this class take the registeredBeanContributors into account. - Methods of the
BeanStoreinterface that do not directly deal with bean providers are already implemented by this class.
Note: The class per se is not thread-safe. When used inside the dependency injection framework, proper synchronization is automatically applied. But during initialization or for other use cases the developer has to ensure that there are no concurrent accesses.
- Version:
- $Id: SimpleBeanStoreImpl.java 213 2012-07-14 19:40:51Z oheger $
- Autor:
- Oliver Heger
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic interfaceDefinition of an interface for objects that can contribute beans for aSimpleBeanStoreImplobject. -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungCreates a new instance ofSimpleBeanStoreImpl.SimpleBeanStoreImpl(String name, BeanStore parent) Creates a new instance ofSimpleBeanStoreImpland sets the name and the reference to the parent. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidAdds the specified bean to this store.voidAdds a newBeanContributorto this object.getBeanProvider(String name) Returns aBeanProviderfor the bean with the given name.Returns theConversionHelperassociated with this instance.getName()Returns the name of this bean store.Returns the parent bean store.protected BeanProviderproviderFor(Object bean) Returns a bean provider for the specified bean.Returns a set with the names of the available bean providers.removeBean(String name) Removes the bean with the given name.voidRemoves the specified bean contributor from this object.voidsetConversionHelper(ConversionHelper conversionHelper) Sets theConversionHelperassociated with this object.voidSets the name of this bean store.voidSets the parent bean store.
-
Konstruktordetails
-
SimpleBeanStoreImpl
public SimpleBeanStoreImpl()Creates a new instance ofSimpleBeanStoreImpl. -
SimpleBeanStoreImpl
Creates a new instance ofSimpleBeanStoreImpland sets the name and the reference to the parent.- Parameter:
name- the name of this bean storeparent- the reference to the parent bean store
-
-
Methodendetails
-
addBeanContributor
Adds a newBeanContributorto this object. This contributor will be triggered when this bean store is accessed.- Parameter:
contr- the contributor to be added (must not be null)- Löst aus:
IllegalArgumentException- if the contributor is null
-
removeBeanContributor
Removes the specified bean contributor from this object.- Parameter:
contr- the contributor to remove
-
addBean
Adds the specified bean to this store. For the passed in bean a constant bean provider is created. It can then be queried through thegetBeanProvider()method.- Parameter:
name- the name of the bean (must not be null)bean- the bean (must not be null)- Löst aus:
IllegalArgumentException- if the name or the bean is null
-
removeBean
Removes the bean with the given name.- Parameter:
name- the name of the bean to be removed- Gibt zurück:
- the removed bean (null if the bean was unknown)
-
getBeanProvider
Returns aBeanProviderfor the bean with the given name. This implementation checks whether such a bean was directly added using theaddBean()method. If not, the registered bean contributors are consulted. If no such bean can be found, null is returned.- Angegeben von:
getBeanProviderin SchnittstelleBeanStore- Parameter:
name- the name of the bean in question- Gibt zurück:
- a
BeanProviderfor this bean
-
getName
Returns the name of this bean store. -
setName
Sets the name of this bean store.- Parameter:
name- the new name
-
getParent
Returns the parent bean store. -
setParent
Sets the parent bean store.- Parameter:
parent- the parent bean store
-
getConversionHelper
Returns theConversionHelperassociated with this instance.- Angegeben von:
getConversionHelperin SchnittstelleBeanStore- Gibt zurück:
- the
ConversionHelper
-
setConversionHelper
Sets theConversionHelperassociated with this object. The object passed to this method will be returned bygetConversionHelper().- Parameter:
conversionHelper- theConversionHelper
-
providerNames
Returns a set with the names of the available bean providers. This implementation will first obtain the names of all directly added beans. Then the registered bean contributors are invoked to add their bean names to the resulting list.- Angegeben von:
providerNamesin SchnittstelleBeanStore- Gibt zurück:
- a set with the names of the known bean providers
-
providerFor
Returns a bean provider for the specified bean. This method is called whenever a bean has to be wrapped by a provider. This default implementation returns aConstantBeanProviderfor the passed in bean.- Parameter:
bean- the bean- Gibt zurück:
- a provider for this bean
-