    001    /*****************************************************************************
    002     * Copyright (C) PicoContainer Organization. All rights reserved.            *
    003     * ------------------------------------------------------------------------- *
    004     * The software in this package is published under the terms of the BSD      *
    005     * style license a copy of which has been included with this distribution in *
    006     * the LICENSE.txt file.                                                     *
    007     *                                                                           *
    008     *****************************************************************************/
    009    package org.picocontainer;
    010
    011    import java.lang.reflect.Type;
    012
    013    /**
    014     * Implementors are responsible for instantiating and injecting dependancies into
    015     * Constructors, Methods and Fields.
    016     */
    017    public interface Injector<T> extends ComponentAdapter<T> {
    018
    019        /**
    020         * A preexiting component instance can be injected into after instantiation
    021         *
    022         *
    023         * @param container the container that can provide injectable dependencies
    024         * @param into
    025         * @param instance the instance to
    026         * @return
    027         */
    028        Object decorateComponentInstance(PicoContainer container, Type into, T instance);
    029
    030    }