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 }