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 }