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 package org.picocontainer.lifecycle; 009 010 /** 011 * Current lifecycle state of the container. 012 * @author Michael Rimov 013 * @author Paul Hammant 014 */ 015 public interface LifecycleState { 016 017 /** 018 * Lifecycle state for when a component is being removed. 019 */ 020 void removingComponent(); 021 022 /** 023 * Start is normally allowed if the object is constructed or 024 * already stopped. It is not allowed if the system is already 025 * started or disposed. 026 * @return true if start lifecycle methods should be allowed. 027 */ 028 void starting(); 029 030 /** 031 * Lifecycle state for when the container is being stopped. (Ie, right after Picocontainer.stop() 032 * has been called, but before any components are stopped. 033 */ 034 void stopping(); 035 036 /** 037 * Lifecycle state for when stop has been completed. 038 */ 039 void stopped(); 040 041 /** 042 * Checks if current lifecycle is started. 043 * @return true if the current container state is STARTED. 044 */ 045 boolean isStarted(); 046 047 /** 048 * Turns the lifecycle state to indicate that the dispose() process is being 049 * executed on the container. 050 */ 051 void disposing(); 052 053 /** 054 * Turns the lifecycle state to completely disposed. Internally called after PicoContainer.dispose() 055 * is finished. 056 */ 057 void disposed(); 058 059 /** 060 * Checks if the current lifecycle is disposed. 061 * @return true if the current state is DISPOSED. 062 */ 063 boolean isDisposed(); 064 065 /** 066 * Checks if the current lifecyle is stopped. 067 * @return true if the current state is STOPPED; 068 * @return 069 */ 070 boolean isStopped(); 071 }