Package org.picocontainer.lifecycle

# Class StartableLifecycleStrategy

java.lang.Object
org.picocontainer.lifecycle.AbstractMonitoringLifecycleStrategy
org.picocontainer.lifecycle.StartableLifecycleStrategy

All Implemented Interfaces:
  `Serializable`, `ComponentMonitorStrategy`, `LifecycleStrategy`

public class StartableLifecycleStrategy extends AbstractMonitoringLifecycleStrategy
Startable lifecycle strategy. Starts and stops component if Startable, and disposes it if Disposable. A subclass of this class can define other intrfaces for Startable/Disposable as well as other method names for start/stop/dispose

Author:
  Mauro Talevi, Jörg Schaible
See Also:
  - `Startable`
  - `Disposable`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`StartableLifecycleStrategy(ComponentMonitor monitor)`

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose(Object component)`
Invoke the "dispose" method on the component instance if this is disposable.
`protected void`
`disposeComponent(Object component)`
`protected Class`
`getDisposableInterface()`
`protected String`
`getDisposeMethodName()`
Retrieve the lifecycle method name that represents the dispose method.
`protected Class`
`getStartableInterface()`
`protected String`
`getStartMethodName()`
Retrieve the lifecycle method name that represents the start method.
`protected String`
`getStopMethodName()`
Retrieve the lifecycle method name that represents the stop method.
`boolean`
`hasLifecycle(Class<?> type)`
Test if a component instance has a lifecycle.
`void`
`start(Object component)`
Invoke the "start" method on the component instance if this is startable.
`protected void`
`startComponent(Object component)`
`void`
`stop(Object component)`
Invoke the "stop" method on the component instance if this is stoppable.
`protected void`
`stopComponent(Object component)`

### Methods inherited from class org.picocontainer.lifecycle.AbstractMonitoringLifecycleStrategy

`changeMonitor, currentMonitor, isLazy`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### StartableLifecycleStrategy

public StartableLifecycleStrategy(ComponentMonitor monitor)

## Method Details

### getDisposeMethodName

protected String getDisposeMethodName()
Retrieve the lifecycle method name that represents the dispose method.

Returns:
  the dispose method name. ('dispose')

### getStopMethodName

protected String getStopMethodName()
Retrieve the lifecycle method name that represents the stop method.

Returns:
  the stop method name ('stop')

### getStartMethodName

protected String getStartMethodName()
Retrieve the lifecycle method name that represents the start method.

Returns:
  the stop method name ('start')

### start

public void start(Object component)
Invoke the "start" method on the component instance if this is startable. It is up to the implementation of the strategy what "start" and "startable" means.

Parameters:
  `component` - the instance of the component to start

### startComponent

protected void startComponent(Object component)

### stopComponent

protected void stopComponent(Object component)

### disposeComponent

protected void disposeComponent(Object component)

### stop

public void stop(Object component)
Invoke the "stop" method on the component instance if this is stoppable. It is up to the implementation of the strategy what "stop" and "stoppable" means.

Parameters:
  `component` - the instance of the component to stop

### dispose

public void dispose(Object component)
Invoke the "dispose" method on the component instance if this is disposable. It is up to the implementation of the strategy what "dispose" and "disposable" means.

Parameters:
  `component` - the instance of the component to dispose

### hasLifecycle

public boolean hasLifecycle(Class<?> type)
Test if a component instance has a lifecycle.

Parameters:
  `type` - the component's type
Returns:
  `true` if the component has a lifecycle

### getDisposableInterface

protected Class getDisposableInterface()

### getStartableInterface

protected Class getStartableInterface()