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    /**
012     * 
013     *
014     */
015    public interface ComponentLifecycle<T> {
016    
017        /**
018         * Invoke the "start" method on the component.
019         *
020         * @param container the container to "start" the component
021         */
022        void start(PicoContainer container);
023    
024        /**
025         * Invoke the "stop" method on the component.
026         *
027         * @param container the container to "stop" the component
028         */
029        void stop(PicoContainer container);
030    
031        /**
032         * Invoke the "dispose" method on the component.
033         *
034         * @param container the container to "dispose" the component
035         */
036        void dispose(PicoContainer container);
037    
038        /**
039         * Test if a component honors a lifecycle.
040         *
041         * @return <code>true</code> if the component has a lifecycle
042         */
043        boolean componentHasLifecycle();
044    
045        boolean isStarted();
046    
047    
048    }