|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjodd.petite.PetiteContainer
public class PetiteContainer
Petite Container.
Field Summary | |
---|---|
protected java.util.Map<java.lang.Class,java.lang.Object[]> |
beanCtors
Cache for constructors per type. |
protected java.util.Map<java.lang.String,jodd.petite.BeanDef> |
beanNames
Map of all beans definitions. |
protected java.util.Map<java.lang.Class,java.lang.reflect.Field[]> |
beanReferences
Cache of reference (i.e. annotated) fields for one type. |
protected java.lang.Class<? extends Scope> |
defaultScope
|
protected java.util.Map<java.lang.Class<? extends Scope>,Scope> |
scopes
Map of all bean scopes. |
protected boolean |
trackBeanWiring
|
Constructor Summary | |
---|---|
PetiteContainer()
|
Method Summary | ||
---|---|---|
|
acquireBean(java.lang.Class<E> type)
Returns Petite bean instance. |
|
java.util.Iterator<java.lang.Class> |
classIterator()
Returns iterator over all registered classes. |
|
java.lang.Object |
getBean(java.lang.String name)
Returns Petite bean instance. |
|
protected java.lang.Object |
getBean(java.lang.String name,
java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
Returns petite bean instance. |
|
java.lang.Class<? extends Scope> |
getDefaultScope()
Returns default scope type. |
|
int |
getTotalBeans()
Returns total number of registered beans. |
|
int |
getTotalScopes()
Return total number of used scopes. |
|
boolean |
isTrackBeanWiring()
|
|
protected java.lang.Object |
newBeanInstance(java.lang.String name,
java.lang.Class type,
java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
Creates new petite bean or type instance and performs constructor injection. |
|
void |
register(java.lang.Class type)
Registers petite bean class. |
|
void |
register(java.lang.Class type,
java.lang.Class<? extends Scope> scopeType)
Registers petite bean class within specified scope. |
|
void |
register(java.lang.String name,
java.lang.Class type)
Registers any class as petite bean class with default scope. |
|
void |
register(java.lang.String name,
java.lang.Class type,
java.lang.Class<? extends Scope> scopeType)
Registers any class as petite bean class. |
|
protected void |
registerBean(java.lang.String name,
java.lang.Class type,
java.lang.Class<? extends Scope> scopeType)
Single point of Petite bean registration. |
|
boolean |
remove(java.lang.Class type)
Removes petite bean from the container. |
|
boolean |
remove(java.lang.String name)
Removes bean definition from the container. |
|
void |
replace(java.lang.Class newType)
Replaces a class in the container. |
|
protected java.lang.String |
resolveBeanName(java.lang.Class type)
Resolves bean name from bean annotation or class name. |
|
void |
setDefaultScope(java.lang.Class<? extends Scope> defaultScope)
Sets default scope type. |
|
void |
setTrackBeanWiring(boolean trackBeanWiring)
Stores additional information about targets where bean was wired in. |
|
void |
wire(java.lang.Object bean)
Wires beans by injecting instances in properties marked with PetiteInject annotation. |
|
protected void |
wire(java.lang.Object bean,
java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
Wires beans by injecting instances in properties marked with PetiteInject annotation. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.util.Map<java.lang.Class,java.lang.Object[]> beanCtors
protected boolean trackBeanWiring
protected java.util.Map<java.lang.Class,java.lang.reflect.Field[]> beanReferences
protected java.lang.Class<? extends Scope> defaultScope
protected java.util.Map<java.lang.String,jodd.petite.BeanDef> beanNames
protected java.util.Map<java.lang.Class<? extends Scope>,Scope> scopes
Constructor Detail |
---|
public PetiteContainer()
Method Detail |
---|
public java.lang.Object getBean(java.lang.String name)
register(String, Class, Class)
or by named generated from its class register(Class, Class)
(from optional annotation or simple type name).
Petite container will find the bean in corresponding scope and all its dependencies, either by constructor or property injection. When using constructor injection, cyclic dependencies can not be prevented, but they are at least detected.
acquireBean(Class)
protected java.lang.Object getBean(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
acquireBean(Class)
public <E> E acquireBean(java.lang.Class<E> type)
Otherwise, when type is annotated, getBean(String)
will be invoked.
protected java.lang.Object newBeanInstance(java.lang.String name, java.lang.Class type, java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
acquireBean(Class)
and getBean(String)
, therefore
the first argument (bean name) also indicates if the bean is inside the container (when is not null).
After creating a bean, it will be added to acquired beans (if it is from the container).
name
- optional bean name, if set then it is a name under which petite bean was registeredtype
- petite bean typeacquiredBeans
- acquired beans until this momentpublic boolean isTrackBeanWiring()
public void setTrackBeanWiring(boolean trackBeanWiring)
public void wire(java.lang.Object bean)
PetiteInject
annotation.
wire(Object, java.util.Map)
protected void wire(java.lang.Object bean, java.util.Map<java.lang.String,java.lang.Object> acquiredBeans)
PetiteInject
annotation.
public java.lang.Class<? extends Scope> getDefaultScope()
public void setDefaultScope(java.lang.Class<? extends Scope> defaultScope)
public void register(java.lang.Class type)
register(Class, Class)
,
register(String, Class, Class)
public void register(java.lang.Class type, java.lang.Class<? extends Scope> scopeType)
register(String, Class, Class)
public void register(java.lang.String name, java.lang.Class type)
register(String, Class, Class)
public void register(java.lang.String name, java.lang.Class type, java.lang.Class<? extends Scope> scopeType)
PetiteBean
annotation is not required
and is ignored during this registration. Bean names must be unique.
protected void registerBean(java.lang.String name, java.lang.Class type, java.lang.Class<? extends Scope> scopeType)
public boolean remove(java.lang.String name)
true
if bean specified by provided name
was removed from the container, otherwise it returns false
.
remove(Class)
public boolean remove(java.lang.Class type)
true
if bean specified by provided name
was removed from the container, otherwise it returns false
.
remove(String)
protected java.lang.String resolveBeanName(java.lang.Class type)
public void replace(java.lang.Class newType)
public int getTotalBeans()
public int getTotalScopes()
public java.util.Iterator<java.lang.Class> classIterator()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |