jodd.petite
Class PetiteBeans

java.lang.Object
  extended by jodd.petite.PetiteBeans
Direct Known Subclasses:
PetiteRegistry

public abstract class PetiteBeans
extends Object

Base layer of Petite Container. Holds beans and scopes definitions.


Field Summary
protected  Map<Class,String[]> beanCollections
          Map of all bean collections.
protected  Map<String,BeanDefinition> beans
          Map of all beans definitions.
protected  InjectionPointFactory injectionPointFactory
          Injection point factory.
protected  PetiteConfig petiteConfig
          Petite configuration.
protected  PetiteResolvers petiteResolvers
          Petite resolvers.
protected  Map<Class<? extends Scope>,Scope> scopes
          Map of all bean scopes.
 
Constructor Summary
protected PetiteBeans(PetiteConfig petiteConfig)
           
 
Method Summary
 Iterator<BeanDefinition> beansIterator()
          Returns iterator over all registered beans.
 void defineParameter(String name, Object value)
          Defines new parameter.
protected  void definePetiteBean(String name, Class type, Class<? extends Scope> scopeType, WiringMode wiringMode)
          Single point of bean definition.
 PetiteConfig getConfig()
          Returns Petite configuration.
 Object getParameter(String name)
          Returns defined parameter.
 PetiteResolvers getResolvers()
          Returns Petite resolvers.
 int getTotalBeans()
          Returns total number of registered beans.
 int getTotalScopes()
          Returns total number of used scopes.
 boolean isBeanNameRegistered(String name)
          Returns true if bean name is registered.
protected  BeanDefinition lookupBeanDefinition(String name)
          Lookups for bean definition.
protected  BeanDefinition lookupBeanDefinition(String[] names)
          Lookups for first founded bean definition.
protected  BeanDefinition lookupExistingBeanDefinition(String name)
          Lookups for existing bean.
protected  BeanDefinition registerPetiteBean(String name, Class type, Class<? extends Scope> scopeType, WiringMode wiringMode)
          Single point of bean registration.
protected  void registerPetiteCtorInjectionPoint(String beanName, Class[] paramTypes, String[] references)
          Single point of constructor injection point registration.
protected  void registerPetiteInitMethods(String beanName, String[] beforeMethodNames, String[] afterMethodNames)
          Single point of init method registration.
protected  void registerPetiteMethodInjectionPoint(String beanName, String methodName, Class[] arguments, String[] references)
          Single point of method injection point registration.
protected  void registerPetitePropertyInjectionPoint(String beanName, String property, String reference)
          Single point of property injection point registration.
protected  void registerPetiteSetInjectionPoint(String beanName, String property)
          Single point of property injection point registration.
 void registerScope(Class<? extends Scope> scopeType, Scope scope)
          Registers new scope.
protected  BeanDefinition removeBeanDefinition(String name)
          Removes bean and returns definition of removed bean.
 String resolveBeanName(Class type)
          Resolves bean's name from bean annotation or type name.
protected  String[] resolveBeanNamesForType(Class type)
          Resolve bean names for give type.
protected  String[] resolveBeanParams(String name, boolean resolveReferenceParams)
          Prepares list of all bean parameters and optionally resolves inner references.
protected  SetInjectionPoint[] resolveCollectionInjectionPoint(Class type, boolean autowire)
           
protected  CtorInjectionPoint resolveCtorInjectionPoint(Class type)
           
protected  CtorInjectionPoint resolveDefaultCtorInjectionPoint(Class type)
           
protected  InitMethodPoint[] resolveInitMethods(Object bean)
           
protected  MethodInjectionPoint[] resolveMethodInjectionPoint(Class type)
           
protected  PropertyInjectionPoint[] resolvePropertyInjectionPoint(Class type, boolean autowire)
           
protected  Scope resolveScope(Class<? extends Scope> scopeType)
          Resolves scope from scope type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

beans

protected final Map<String,BeanDefinition> beans
Map of all beans definitions.


scopes

protected final Map<Class<? extends Scope>,Scope> scopes
Map of all bean scopes.


beanCollections

protected final Map<Class,String[]> beanCollections
Map of all bean collections.


petiteConfig

protected final PetiteConfig petiteConfig
Petite configuration.


injectionPointFactory

protected final InjectionPointFactory injectionPointFactory
Injection point factory.


petiteResolvers

protected final PetiteResolvers petiteResolvers
Petite resolvers.

Constructor Detail

PetiteBeans

protected PetiteBeans(PetiteConfig petiteConfig)
Method Detail

getResolvers

public PetiteResolvers getResolvers()
Returns Petite resolvers.


getConfig

public PetiteConfig getConfig()
Returns Petite configuration. All changes on config should be applied before beans registration process starts.


resolveScope

protected Scope resolveScope(Class<? extends Scope> scopeType)
Resolves scope from scope type.


registerScope

public void registerScope(Class<? extends Scope> scopeType,
                          Scope scope)
Registers new scope. It is not necessary to manually register scopes, since they become registered on first scope resolving. However, it is possible to pre-register some scopes, or to replace one scope type with another. This may be important for testing purposes when using container-depended scopes.


lookupBeanDefinition

protected BeanDefinition lookupBeanDefinition(String name)
Lookups for bean definition. Returns null if bean name doesn't exist.


lookupBeanDefinition

protected BeanDefinition lookupBeanDefinition(String[] names)
Lookups for first founded bean definition.


lookupExistingBeanDefinition

protected BeanDefinition lookupExistingBeanDefinition(String name)
Lookups for existing bean. Throws exception if bean is not found.


isBeanNameRegistered

public boolean isBeanNameRegistered(String name)
Returns true if bean name is registered.


resolveBeanName

public String resolveBeanName(Class type)
Resolves bean's name from bean annotation or type name. May be used for resolving bean name of base type during registration of bean subclass.


registerPetiteBean

protected BeanDefinition registerPetiteBean(String name,
                                            Class type,
                                            Class<? extends Scope> scopeType,
                                            WiringMode wiringMode)
Single point of bean registration. The following rules are applied:

definePetiteBean

protected void definePetiteBean(String name,
                                Class type,
                                Class<? extends Scope> scopeType,
                                WiringMode wiringMode)
Single point of bean definition.


removeBeanDefinition

protected BeanDefinition removeBeanDefinition(String name)
Removes bean and returns definition of removed bean. All resolvers references are deleted, too. Returns bean definition of removed bean or null.


resolveBeanNamesForType

protected String[] resolveBeanNamesForType(Class type)
Resolve bean names for give type.


registerPetiteCtorInjectionPoint

protected void registerPetiteCtorInjectionPoint(String beanName,
                                                Class[] paramTypes,
                                                String[] references)
Single point of constructor injection point registration.


registerPetitePropertyInjectionPoint

protected void registerPetitePropertyInjectionPoint(String beanName,
                                                    String property,
                                                    String reference)
Single point of property injection point registration.


registerPetiteSetInjectionPoint

protected void registerPetiteSetInjectionPoint(String beanName,
                                               String property)
Single point of property injection point registration.


registerPetiteMethodInjectionPoint

protected void registerPetiteMethodInjectionPoint(String beanName,
                                                  String methodName,
                                                  Class[] arguments,
                                                  String[] references)
Single point of method injection point registration.


registerPetiteInitMethods

protected void registerPetiteInitMethods(String beanName,
                                         String[] beforeMethodNames,
                                         String[] afterMethodNames)
Single point of init method registration.


getTotalBeans

public int getTotalBeans()
Returns total number of registered beans.


getTotalScopes

public int getTotalScopes()
Returns total number of used scopes.


beansIterator

public Iterator<BeanDefinition> beansIterator()
Returns iterator over all registered beans.


resolveCtorInjectionPoint

protected CtorInjectionPoint resolveCtorInjectionPoint(Class type)

resolveDefaultCtorInjectionPoint

protected CtorInjectionPoint resolveDefaultCtorInjectionPoint(Class type)

resolvePropertyInjectionPoint

protected PropertyInjectionPoint[] resolvePropertyInjectionPoint(Class type,
                                                                 boolean autowire)

resolveCollectionInjectionPoint

protected SetInjectionPoint[] resolveCollectionInjectionPoint(Class type,
                                                              boolean autowire)

resolveMethodInjectionPoint

protected MethodInjectionPoint[] resolveMethodInjectionPoint(Class type)

resolveInitMethods

protected InitMethodPoint[] resolveInitMethods(Object bean)

defineParameter

public void defineParameter(String name,
                            Object value)
Defines new parameter. Parameters with same name will be replaced.


getParameter

public Object getParameter(String name)
Returns defined parameter.


resolveBeanParams

protected String[] resolveBeanParams(String name,
                                     boolean resolveReferenceParams)
Prepares list of all bean parameters and optionally resolves inner references.