01: /*****************************************************************************
02: * Copyright (C) PicoContainer Organization. All rights reserved. *
03: * ------------------------------------------------------------------------- *
04: * The software in this package is published under the terms of the BSD *
05: * style license a copy of which has been included with this distribution in *
06: * the LICENSE.txt file. *
07: *****************************************************************************/package org.picocontainer;
08:
09: /**
10: * An interface which specifies the lifecycle strategy on the component instance.
11: * Lifecycle strategies are used by component adapters to delegate the lifecycle
12: * operations on the component instances.
13: *
14: * @author Paul Hammant
15: * @author Peter Royal
16: * @author Jörg Schaible
17: * @author Mauro Talevi
18: * @see org.picocontainer.Startable
19: * @see org.picocontainer.Disposable
20: */
21: public interface LifecycleStrategy {
22:
23: /**
24: * Invoke the "start" method on the component instance if this is startable.
25: * It is up to the implementation of the strategy what "start" and "startable" means.
26: *
27: * @param component the instance of the component to start
28: */
29: void start(Object component);
30:
31: /**
32: * Invoke the "stop" method on the component instance if this is stoppable.
33: * It is up to the implementation of the strategy what "stop" and "stoppable" means.
34: *
35: * @param component the instance of the component to stop
36: */
37: void stop(Object component);
38:
39: /**
40: * Invoke the "dispose" method on the component instance if this is disposable.
41: * It is up to the implementation of the strategy what "dispose" and "disposable" means.
42: *
43: * @param component the instance of the component to dispose
44: */
45: void dispose(Object component);
46:
47: /**
48: * Test if a component instance has a lifecycle.
49: * @param type the component's type
50: *
51: * @return <code>true</code> if the component has a lifecycle
52: */
53: boolean hasLifecycle(Class<?> type);
54:
55: }
|