    001    /*****************************************************************************
    002     * Copyright (C) NanoContainer 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.nanocontainer.integrationkit;
    010
    011    import org.picocontainer.MutablePicoContainer;
    012
    013    /**
    014     * Interface for composing a container.
    015     * See <a href="http://nanocontainer.org/NanoWar">NanoWar</a>
    016     * for sample usage.
    017     *
    018     * @author Joe Walnes <a href="mailto:joe@thoughtworks.net">Joe Walnes</a>
    019     * @author Mauro Talevi
    020     */
    021    public interface ContainerComposer {
    022
    023        /**
    024         * Compose the container. This typically involves assembly (registration)
    025         * and configuration (setting primitive arguments) of components.
    026         *
    027         * @param container        container to compose
    028         * @param compositionScope scope of the container. This variable can be used as a hint to determine
    029         */
    030        void composeContainer(MutablePicoContainer container, Object compositionScope);
    031
    032    }