KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > aop > AspectablePicoContainerFactory


1 /*****************************************************************************
2  * Copyright (c) PicoContainer Organization. All rights reserved. *
3  * ------------------------------------------------------------------------- *
4  * The software in this package is published under the terms of the BSD *
5  * style license a copy of which has been included with this distribution in *
6  * the LICENSE.txt file. *
7  * *
8  * Idea by Rachel Davies, Original code by various *
9  *****************************************************************************/

10 package org.nanocontainer.aop;
11
12 import org.picocontainer.PicoContainer;
13 import org.picocontainer.defaults.ComponentAdapterFactory;
14
15 /**
16  * Produces <code>AspectablePicoContainer</code> objects. Mixes in an
17  * <code>AspectsContainer</code> with a
18  * <code>org.picocontainer.MutablePicoContainer</code> to produce an
19  * <code>AspectablePicoContainer</code>.
20  *
21  * @author Stephen Molitor
22  * @author Mauro Talevi
23  * @version $Revision: 3144 $
24  */

25 public interface AspectablePicoContainerFactory {
26
27     /**
28      * Creates a new <code>AspectablePicoContainer</code>.
29      *
30      * @param containerClass the class of the basic container to delegate to.
31      * @param aspectsManager the aspects manager used to register and apply
32      * aspects.
33      * @param componentAdapterFactory the delegate component adapter factory
34      * used to produce components.
35      * @param parent the parent container.
36      * @return a new <code>AspectablePicoContainer</code>.
37      */

38     public AspectablePicoContainer createContainer(Class JavaDoc containerClass, AspectsManager aspectsManager,
39                                                    ComponentAdapterFactory componentAdapterFactory, PicoContainer parent);
40
41     /**
42      * Creates a new <code>AspectablePicoContainer</code>.
43      *
44      * @param containerClass the class of the basic container to delegate to.
45      * @param componentAdapterFactory the delegate component adapter factory
46      * used to produce components.
47      * @param parent the parent container.
48      * @return a new <code>AspectablePicoContainer</code>.
49      */

50     AspectablePicoContainer createContainer(Class JavaDoc containerClass, ComponentAdapterFactory componentAdapterFactory,
51                                             PicoContainer parent);
52
53     /**
54      * Creates a new <code>AspectablePicoContainer</code>. Uses
55      * <code>org.picocontainer.defaults.DefaultPicoContainer</code> as the
56      * delegate container.
57      *
58      * @param componentAdapterFactory the delegate component adapter factory
59      * used to produce components.
60      * @param parent the parent container.
61      * @return a new <code>AspectablePicoContainer</code>.
62      */

63     AspectablePicoContainer createContainer(ComponentAdapterFactory componentAdapterFactory, PicoContainer parent);
64
65     /**
66      * Creates a new <code>AspectablePicoContainer</code>. Uses
67      * <code>org.picocontainer.defaults.DefaultPicoContainer</code> as the
68      * delegate container.
69      *
70      * @param componentAdapterFactory the delegate component adapter factory
71      * used to produce components.
72      * @return a new <code>AspectablePicoContainer</code>.
73      */

74     AspectablePicoContainer createContainer(ComponentAdapterFactory componentAdapterFactory);
75
76     /**
77      * Creates a new <code>AspectablePicoContainer</code>. Uses
78      * <code>org.picocontainer.defaults.DefaultPicoContainer</code> as the
79      * delegate container. Uses
80      * <code>org.picocontainer.defaults.DefaultComponentAdapterFactory</code>
81      * as the delegate component adapter factory.
82      *
83      * @param parent the parent container.
84      * @return a new <code>AspectablePicoContainer</code>.
85      */

86     AspectablePicoContainer createContainer(PicoContainer parent);
87
88     /**
89      * Creates a new <code>AspectablePicoContainer</code>. Uses
90      * <code>org.picocontainer.defaults.DefaultPicoContainer</code> as the
91      * delegate container. Uses
92      * <code>org.picocontainer.defaults.DefaultComponentAdapterFactory</code>
93      * as the delegate component adapter factory.
94      *
95      * @return a new <code>AspectablePicoContainer</code>.
96      */

97     AspectablePicoContainer createContainer();
98
99     /**
100      * Make a child <code>AspectablePicoContainer</code> of a given <code>AspectablePicoContainer</code>.
101      * The child container will be obtained aspectifying <code>MutablePicoContainer#makeChildContainer()</code>.
102      *
103      * @param aspectsManager the aspects manager used to register and apply aspects.
104      * @param parent the parent AspectablePicoContainer
105      * @return A child AspectablePicoContainer
106      */

107     AspectablePicoContainer makeChildContainer(AspectsManager aspectsManager, AspectablePicoContainer parent);
108
109     /**
110      * Make a child <code>AspectablePicoContainer</code> of a given <code>AspectablePicoContainer</code>
111      * The child container will be obtained aspectifying <code>MutablePicoContainer#makeChildContainer()</code>.
112      *
113      * @param parent the parent AspectablePicoContainer
114      * @return A child AspectablePicoContainer
115      */

116     AspectablePicoContainer makeChildContainer(AspectablePicoContainer parent);
117
118 }
Popular Tags