|
|||||||||||||||||||
Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
ComponentAdapterFactory.java | - | - | - | - |
|
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 | * Original code by * | |
9 | *****************************************************************************/ | |
10 | package org.picocontainer.defaults; | |
11 | ||
12 | import org.picocontainer.ComponentAdapter; | |
13 | import org.picocontainer.Parameter; | |
14 | import org.picocontainer.PicoIntrospectionException; | |
15 | ||
16 | /** | |
17 | * A component adapter factory is responsible for creating | |
18 | * {@link ComponentAdapter component adapters}. The main use of the component adapter factory is | |
19 | * inside {@link DefaultPicoContainer#DefaultPicoContainer(ComponentAdapterFactory)}, where it can | |
20 | * be used to customize the default component adapter that is used when none is specified | |
21 | * explicitly. | |
22 | * | |
23 | * @author Jon Tirsén | |
24 | * @version $Revision: 1279 $ | |
25 | */ | |
26 | public interface ComponentAdapterFactory { | |
27 | /** | |
28 | * Create a new component adapter based on the specified arguments. | |
29 | * | |
30 | * @param componentKey the key to be associated with this adapter. This value should be returned | |
31 | * from a call to {@link ComponentAdapter#getComponentKey()} on the created adapter. | |
32 | * @param componentImplementation the implementation class to be associated with this adapter. | |
33 | * This value should be returned from a call to | |
34 | * {@link ComponentAdapter#getComponentImplementation()} on the created adapter. Should not | |
35 | * be null. | |
36 | * @param parameters additional parameters to use by the component adapter in constructing | |
37 | * component instances. These may be used, for example, to make decisions about the | |
38 | * arguments passed into the component constructor. These should be considered hints; they | |
39 | * may be ignored by some implementations. May be null, and may be of zero length. | |
40 | * @return a new component adapter based on the specified arguments. Should not return null. | |
41 | * @throws PicoIntrospectionException if the creation of the component adapter results in a | |
42 | * {@link PicoIntrospectionException}. | |
43 | * @throws AssignabilityRegistrationException | |
44 | * if the creation of the component adapter results in a | |
45 | * {@link AssignabilityRegistrationException}. | |
46 | * @throws NotConcreteRegistrationException | |
47 | * if the creation of the component adapter results in a | |
48 | * {@link NotConcreteRegistrationException}. | |
49 | */ | |
50 | ComponentAdapter createComponentAdapter(Object componentKey, | |
51 | Class componentImplementation, | |
52 | Parameter[] parameters) throws PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException; | |
53 | } |
|