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 Aslak Hellesoy and Paul Hammant *
9 *****************************************************************************/
10
11 package org.picocontainer;
12
13 import java.util.Collection;
14
15 /***
16 * PicoContainer - guaranteed to resolve the needs of components
17 * as it instantiates them.
18 *
19 */
20 public interface PicoContainer {
21
22 /***
23 * Does the internals have a partilcilar component type?
24 * @param componentKey The component type to look for.
25 * @return true if it does have the component type
26 */
27 boolean hasComponent(Object componentKey);
28
29 /***
30 * Get a component for a component type.
31 * @param componentKey The component type to look for.
32 * @return the component, or null of no such component.
33 */
34 Object getComponent(Object componentKey);
35
36 /***
37 * Get all components (random order).
38 * @return A collection of components.
39 */
40 Collection getComponents();
41
42 /***
43 * Get all component types (random order).
44 * @return A collection of component types.
45 */
46 Collection getComponentKeys();
47
48 /***
49 * Initialize the internals.
50 */
51 void instantiateComponents() throws PicoInitializationException;
52
53 /***
54 * Shorthand for {@link #getComponentMulticaster(boolean, boolean)}(true, true).
55 * @return a proxy.
56 */
57 Object getComponentMulticaster();
58
59 /***
60 * Returns a proxy that implements the union of all the components'
61 * interfaces.
62 * Calling a method on the returned Object will call the
63 * method on all components in the internals that implement
64 * that interface.
65 *
66 * @param callInInstantiationOrder whether to call the methods in the order of instantiation (true) or reverse (false)
67 * @param callUnmanagedComponents whether to exclude components registered via instance rather than class
68 */
69 Object getComponentMulticaster(boolean callInInstantiationOrder, boolean callUnmanagedComponents);
70
71
72 }
This page was automatically generated by Maven