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 }