public class DefaultClassLoadingPicoContainer extends AbstractDelegatingMutablePicoContainer implements ClassLoadingPicoContainer, ComponentMonitorStrategy
| Modifier and Type | Class and Description |
|---|---|
static interface |
DefaultClassLoadingPicoContainer.ClassVisitor |
| Modifier and Type | Field and Description |
|---|---|
protected Map<String,PicoContainer> |
namedChildContainers |
| Constructor and Description |
|---|
DefaultClassLoadingPicoContainer() |
DefaultClassLoadingPicoContainer(ClassLoader classLoader) |
DefaultClassLoadingPicoContainer(ClassLoader classLoader,
ComponentFactory componentFactory,
PicoContainer parent) |
DefaultClassLoadingPicoContainer(ClassLoader classLoader,
MutablePicoContainer delegate) |
DefaultClassLoadingPicoContainer(ClassLoader classLoader,
PicoContainer parent,
ComponentMonitor componentMonitor) |
DefaultClassLoadingPicoContainer(ComponentFactory componentFactory) |
DefaultClassLoadingPicoContainer(ComponentFactory componentFactory,
LifecycleStrategy lifecycleStrategy,
PicoContainer parent,
ClassLoader cl,
ComponentMonitor componentMonitor) |
DefaultClassLoadingPicoContainer(MutablePicoContainer delegate) |
DefaultClassLoadingPicoContainer(PicoContainer parent) |
| Modifier and Type | Method and Description |
|---|---|
MutablePicoContainer |
addAdapter(ComponentAdapter<?> componentAdapter)
Register a component via a ComponentAdapter.
|
MutablePicoContainer |
addChildContainer(PicoContainer child)
Add a child container.
|
ClassLoadingPicoContainer |
addChildContainer(String name,
PicoContainer child)
Addes a child container with a given name
|
ClassPathElement |
addClassLoaderURL(URL url)
Adds a new URL that will be used in classloading
|
MutablePicoContainer |
addComponent(Object implOrInstance)
Register an arbitrary object.
|
MutablePicoContainer |
addComponent(Object key,
Object componentImplementationOrInstance,
Parameter... parameters)
Register a component and creates specific instructions on which constructor to use, along with
which components and/or constants to provide as constructor arguments.
|
MutablePicoContainer |
as(Properties... properties)
You can set for the following operation only the characteristic of registration of a component on the fly.
|
MutablePicoContainer |
change(Properties... properties)
You can change the characteristic of registration of all subsequent components in this container.
|
void |
changeMonitor(ComponentMonitor monitor)
Propagates the monitor change down the delegate chain if a delegate that implements ComponentMonitorStrategy
exists.
|
protected DefaultClassLoadingPicoContainer |
createChildContainer() |
ComponentMonitor |
currentMonitor()
Returns the monitor currently used
|
Object |
getComponent(Object componentKeyOrType)
Retrieve a component instance registered with a specific key or type.
|
ComponentAdapter<?> |
getComponentAdapter(Object componentKey)
Find a component adapter associated with the specified key.
|
ClassLoader |
getComponentClassLoader()
Returns class loader that is the aggregate of the URLs added.
|
protected Map<String,PicoContainer> |
getNamedContainers() |
MutablePicoContainer |
makeChildContainer()
Make a child container, using both the same implementation of MutablePicoContainer as the parent
and identical behaviors as well.
|
ClassLoadingPicoContainer |
makeChildContainer(String name)
Makes a child container with the same basic characteristics of
this object (ComponentFactory, PicoContainer type, Behavior,
etc)
|
boolean |
removeChildContainer(PicoContainer child)
Remove a child container from this container.
|
int |
visit(ClassName thisClassesPackage,
String regex,
boolean recursive,
DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor) |
int |
visit(File pkgDir,
String pkgName,
Pattern pattern,
boolean recursive,
DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor) |
int |
visit(String pkgName,
String codeSourceRoot,
Pattern compiledPattern,
boolean recursive,
DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor) |
addConfig, dispose, getDelegate, getLifecycleState, getName, removeComponent, removeComponentByInstance, setLifecycleState, setName, start, stopaccept, equals, getComponent, getComponent, getComponent, getComponentAdapter, getComponentAdapter, getComponentAdapters, getComponentAdapters, getComponentAdapters, getComponents, getComponents, getConverters, getParent, toStringclone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddConfig, getLifecycleState, getName, removeComponent, removeComponentByInstance, setLifecycleState, setNameaccept, getComponent, getComponent, getComponent, getComponentAdapter, getComponentAdapter, getComponentAdapters, getComponentAdapters, getComponentAdapters, getComponents, getComponents, getParentdisposeprotected final Map<String,PicoContainer> namedChildContainers
public DefaultClassLoadingPicoContainer(ClassLoader classLoader, ComponentFactory componentFactory, PicoContainer parent)
public DefaultClassLoadingPicoContainer(ClassLoader classLoader, MutablePicoContainer delegate)
public DefaultClassLoadingPicoContainer(ClassLoader classLoader, PicoContainer parent, ComponentMonitor componentMonitor)
public DefaultClassLoadingPicoContainer(ComponentFactory componentFactory)
public DefaultClassLoadingPicoContainer(PicoContainer parent)
public DefaultClassLoadingPicoContainer(MutablePicoContainer delegate)
public DefaultClassLoadingPicoContainer(ClassLoader classLoader)
public DefaultClassLoadingPicoContainer()
public DefaultClassLoadingPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ClassLoader cl, ComponentMonitor componentMonitor)
protected DefaultClassLoadingPicoContainer createChildContainer()
public void changeMonitor(ComponentMonitor monitor)
changeMonitor in interface ComponentMonitorStrategymonitor - the monitor to swap.IllegalStateException - if no delegate can be found that implements ComponentMonitorStrategy.public ComponentMonitor currentMonitor()
ComponentMonitorStrategycurrentMonitor in interface ComponentMonitorStrategypublic final Object getComponent(Object componentKeyOrType) throws PicoException
PicoContainergetComponent in interface PicoContainergetComponent in class AbstractDelegatingPicoContainercomponentKeyOrType - the key or Type that the component was registered with.null if no component has been registered for the specified
key.PicoExceptionpublic final MutablePicoContainer makeChildContainer()
MutablePicoContainerNote that for long-lived parent containers, you need to unregister child containers made with this call before disposing or you will leak memory. (Experience speaking here! )
Incorrect Example:
MutablePicoContainer parent = new PicoBuilder().withCaching().withLifecycle().build(); MutablePicoContainer child = parent.makeChildContainer(); child = null; //Child still retains in memory because parent still holds reference.
Correct Example:
MutablePicoContainer parent = new PicoBuilder().withCaching().withLifecycle().build(); MutablePicoContainer child = parent.makeChildContainer(); parent.removeChildContainer(child); //Remove the bi-directional references. child = null;
makeChildContainer in interface MutablePicoContainermakeChildContainer in class AbstractDelegatingMutablePicoContainerpublic ClassLoadingPicoContainer makeChildContainer(String name)
makeChildContainer in interface ClassLoadingPicoContainername - the name of the child containerpublic boolean removeChildContainer(PicoContainer child)
MutablePicoContainerremoveChildContainer in interface MutablePicoContainerremoveChildContainer in class AbstractDelegatingMutablePicoContainerchild - the child containertrue if the child container has been removed.protected final Map<String,PicoContainer> getNamedContainers()
public ClassPathElement addClassLoaderURL(URL url)
ClassLoadingPicoContaineraddClassLoaderURL in interface ClassLoadingPicoContainerurl - url of the jar to find components in.public MutablePicoContainer addComponent(Object implOrInstance)
MutablePicoContaineraddComponent(componentImplementation, componentImplementation).addComponent in interface MutablePicoContaineraddComponent in class AbstractDelegatingMutablePicoContainerimplOrInstance - Component implementation or instancepublic MutablePicoContainer addComponent(Object key, Object componentImplementationOrInstance, Parameter... parameters)
MutablePicoContainernew ComponentParameter(), new ComponentParameter("someService")
The default constructor for the component parameter indicates auto-wiring should take place for
that parameter.
new Parameter[0]
addComponent in interface MutablePicoContaineraddComponent in class AbstractDelegatingMutablePicoContainerkey - 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.componentImplementationOrInstance - the component's implementation class. This must be a concrete class (ie, a
class that can be instantiated). Or an intance of the compoent.parameters - the parameters that gives the container hints about what arguments to pass
to the constructor when it is instantiated. Container implementations may ignore
one or more of these hints.Parameter,
ConstantParameter,
ComponentParameterpublic MutablePicoContainer addAdapter(ComponentAdapter<?> componentAdapter) throws PicoCompositionException
MutablePicoContaineraddAdapter in interface MutablePicoContaineraddAdapter in class AbstractDelegatingMutablePicoContainercomponentAdapter - the adapterPicoCompositionException - if registration fails.public ClassLoader getComponentClassLoader()
ClassLoadingPicoContainergetComponentClassLoader in interface ClassLoadingPicoContainerpublic MutablePicoContainer addChildContainer(PicoContainer child)
MutablePicoContaineraddChildContainer in interface MutablePicoContaineraddChildContainer in class AbstractDelegatingMutablePicoContainerchild - the child containerpublic ClassLoadingPicoContainer addChildContainer(String name, PicoContainer child)
ClassLoadingPicoContaineraddChildContainer in interface ClassLoadingPicoContainername - the container namechild - the child PicoContainerpublic ComponentAdapter<?> getComponentAdapter(Object componentKey)
PicoContainergetComponentAdapter in interface PicoContainergetComponentAdapter in class AbstractDelegatingPicoContainercomponentKey - the key that the component was registered with.null if no component has been
registered for the specified key.public MutablePicoContainer change(Properties... properties)
MutablePicoContainerchange in interface MutablePicoContainerchange in class AbstractDelegatingMutablePicoContainerpublic MutablePicoContainer as(Properties... properties)
MutablePicoContaineras in interface MutablePicoContaineras in class AbstractDelegatingMutablePicoContainerpublic int visit(ClassName thisClassesPackage, String regex, boolean recursive, DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor)
public int visit(String pkgName, String codeSourceRoot, Pattern compiledPattern, boolean recursive, DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor)
public int visit(File pkgDir, String pkgName, Pattern pattern, boolean recursive, DefaultClassLoadingPicoContainer.ClassVisitor classNameVisitor)
Copyright © 2003-2014 Codehaus. All Rights Reserved.