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 * Original code by Paul Hammant * 009 *****************************************************************************/ 010 011 package org.picocontainer; 012 013 /** 014 * Behaviors modify the components created by a Injector with additional behaviors 015 * 016 * @author Paul Hammant 017 * @author Jörg Schaible 018 * @author Mauro Talevi 019 * @see LifecycleStrategy 020 */ 021 public interface Behavior<T> extends ComponentAdapter<T> { 022 023 /** 024 * Invoke the "start" method on the component. 025 * @param container the container to "start" the component 026 */ 027 void start(PicoContainer container); 028 029 /** 030 * Invoke the "stop" method on the component. 031 * @param container the container to "stop" the component 032 */ 033 void stop(PicoContainer container); 034 035 /** 036 * Invoke the "dispose" method on the component. 037 * @param container the container to "dispose" the component 038 */ 039 void dispose(PicoContainer container); 040 041 /** 042 * Test if a component honors a lifecycle. 043 * @return <code>true</code> if the component has a lifecycle 044 */ 045 boolean componentHasLifecycle(); 046 047 }