KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > picocontainer > defaults > ComponentAdapterFactory


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 JavaDoc componentKey,
51                                             Class JavaDoc componentImplementation,
52                                             Parameter[] parameters) throws PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException;
53 }
54
Popular Tags