# Package org.eclipse.net4j.util.lifecycle

A framework for components with a simple lifecycle.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  IDeactivateable |
  ILifecycle | An entity that has a well-defined `lifecycle` and can be `activated` or `deactivated`.
  ILifecycle.DeferrableActivation | A mix-in interface for `lifecycles` with deferrable activation.
  ILifecycleEvent | An `event` fired from an entity with a `lifecycle` when its lifecycle `state` has changed.

- Class Summary
  Class | Description
  --- | ---
  Lifecycle | A default implementation of an entity with a `lifecycle`.
  LifecycleEvent | A default implementation of a lifecycle `event`.
  LifecycleEventAdapter | A `listener` that dispatches lifecycle `events` to methods that can be overridden by extenders.
  LifecycleHook<T extends ILifecycle> |
  LifecycleUtil | Various static helper methods for dealing with `lifecycles`.
  LifecycleUtil.Delegator<T> | The `invocation handler` of the `dynamic proxy` created in `LifecycleUtil.delegateLifecycle()`.
  ShareableLifecycle | A `lifecycle` entity with a reference count that can be `activated` multiple times.

- Enum Summary
  Enum | Description
  --- | ---
  ILifecycleEvent.Kind | Enumerates the possible `lifecycle state` changes of an entity.
  LifecycleState | Enumerates the possible lifecycle states of an entity with a `lifecycle`.

- Exception Summary
  Exception | Description
  --- | ---
  LifecycleException | An unchecked wrapper exception for checked exceptions being thrown from `Lifecycle.doActivate()`.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  LifecycleUtil.Activator | Annotates a method of a POJO class that's supposed to be called to activate a POJO object during `LifecycleUtil.activate(Object)`.
  LifecycleUtil.Deactivator | Annotates a method of a POJO class that's supposed to be called to deactivate a POJO object during `LifecycleUtil.deactivate(Object)`.

## Package org.eclipse.net4j.util.lifecycle Description

A framework for components with a simple lifecycle. Interfaces that describe the behavior of objects with respect to their lifecycle. A utility class to interact with such objects and an abstract class that can be used to implement such objects are provided as well.

Copyright (c) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html