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.html file. *
7 * *
8 * Idea by Rachel Davies, Original code by Aslak Hellesoy and Paul Hammant *
9 *****************************************************************************/
10
11 package org.picocontainer.internals;
12
13 import org.picocontainer.internals.ComponentSpecification;
14 import org.picocontainer.PicoInitializationException;
15 import org.picocontainer.PicoIntrospectionException;
16
17 public interface ComponentFactory {
18
19 /***
20 * Create a component. Used by the internals of applicable PicoContainers
21 * to instantiate a component.
22 * @param componentSpec
23 * @param instanceDependencies The component instances the created component will depend on.
24 * @throws org.picocontainer.PicoInitializationException
25 * @throws org.picocontainer.PicoIntrospectionException
26 */
27 Object createComponent(ComponentSpecification componentSpec, Object[] instanceDependencies) throws PicoInitializationException, PicoIntrospectionException;
28
29 /***
30 * Return the types the componentImplementation component depends on.
31 * @param componentImplementation concrete component class.
32 * @throws PicoIntrospectionException
33 */
34 Class[] getDependencies(Class componentImplementation) throws PicoIntrospectionException;
35 }
This page was automatically generated by Maven