org.nanocontainer.aop..svn.text-base.AspectablePicoContainerFactory.svn-base Maven / Gradle / Ivy
/*****************************************************************************
* Copyright (c) PicoContainer Organization. All rights reserved. *
* ------------------------------------------------------------------------- *
* The software in this package is published under the terms of the BSD *
* style license a copy of which has been included with this distribution in *
* the LICENSE.txt file. *
* *
* Idea by Rachel Davies, Original code by various *
*****************************************************************************/
package org.nanocontainer.aop;
import org.picocontainer.PicoContainer;
import org.picocontainer.defaults.ComponentAdapterFactory;
/**
* Produces AspectablePicoContainer
objects. Mixes in an
* AspectsContainer
with a
* org.picocontainer.MutablePicoContainer
to produce an
* AspectablePicoContainer
.
*
* @author Stephen Molitor
* @author Mauro Talevi
* @version $Revision$
*/
public interface AspectablePicoContainerFactory {
/**
* Creates a new AspectablePicoContainer
.
*
* @param containerClass the class of the basic container to delegate to.
* @param aspectsManager the aspects manager used to register and apply
* aspects.
* @param componentAdapterFactory the delegate component adapter factory
* used to produce components.
* @param parent the parent container.
* @return a new AspectablePicoContainer
.
*/
public AspectablePicoContainer createContainer(Class containerClass, AspectsManager aspectsManager,
ComponentAdapterFactory componentAdapterFactory, PicoContainer parent);
/**
* Creates a new AspectablePicoContainer
.
*
* @param containerClass the class of the basic container to delegate to.
* @param componentAdapterFactory the delegate component adapter factory
* used to produce components.
* @param parent the parent container.
* @return a new AspectablePicoContainer
.
*/
AspectablePicoContainer createContainer(Class containerClass, ComponentAdapterFactory componentAdapterFactory,
PicoContainer parent);
/**
* Creates a new AspectablePicoContainer
. Uses
* org.picocontainer.defaults.DefaultPicoContainer
as the
* delegate container.
*
* @param componentAdapterFactory the delegate component adapter factory
* used to produce components.
* @param parent the parent container.
* @return a new AspectablePicoContainer
.
*/
AspectablePicoContainer createContainer(ComponentAdapterFactory componentAdapterFactory, PicoContainer parent);
/**
* Creates a new AspectablePicoContainer
. Uses
* org.picocontainer.defaults.DefaultPicoContainer
as the
* delegate container.
*
* @param componentAdapterFactory the delegate component adapter factory
* used to produce components.
* @return a new AspectablePicoContainer
.
*/
AspectablePicoContainer createContainer(ComponentAdapterFactory componentAdapterFactory);
/**
* Creates a new AspectablePicoContainer
. Uses
* org.picocontainer.defaults.DefaultPicoContainer
as the
* delegate container. Uses
* org.picocontainer.defaults.DefaultComponentAdapterFactory
* as the delegate component adapter factory.
*
* @param parent the parent container.
* @return a new AspectablePicoContainer
.
*/
AspectablePicoContainer createContainer(PicoContainer parent);
/**
* Creates a new AspectablePicoContainer
. Uses
* org.picocontainer.defaults.DefaultPicoContainer
as the
* delegate container. Uses
* org.picocontainer.defaults.DefaultComponentAdapterFactory
* as the delegate component adapter factory.
*
* @return a new AspectablePicoContainer
.
*/
AspectablePicoContainer createContainer();
/**
* Make a child AspectablePicoContainer
of a given AspectablePicoContainer
.
* The child container will be obtained aspectifying MutablePicoContainer#makeChildContainer()
.
*
* @param aspectsManager the aspects manager used to register and apply aspects.
* @param parent the parent AspectablePicoContainer
* @return A child AspectablePicoContainer
*/
AspectablePicoContainer makeChildContainer(AspectsManager aspectsManager, AspectablePicoContainer parent);
/**
* Make a child AspectablePicoContainer
of a given AspectablePicoContainer
* The child container will be obtained aspectifying MutablePicoContainer#makeChildContainer()
.
*
* @param parent the parent AspectablePicoContainer
* @return A child AspectablePicoContainer
*/
AspectablePicoContainer makeChildContainer(AspectablePicoContainer parent);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy