ServiceEvent
Date: 2016-06-24

org.osgi.framework

## Class ServiceEvent

- java.lang.Object
- - java.util.EventObject
  - - org.osgi.framework.ServiceEvent

- All Implemented Interfaces:
    java.io.Serializable

      public class ServiceEvent
      extends java.util.EventObject

  An event from the Framework describing a service lifecycle change.

  `ServiceEvent` objects are delivered to `ServiceListener`s and `AllServiceListener`s when a change occurs in this service's lifecycle. A type code is used to identify the event type for future extendability.

  OSGi Alliance reserves the right to extend the set of types.

  See Also:
    `ServiceListener`, `AllServiceListener`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MODIFIED` The properties of a registered service have been modified.
    `static int` | `MODIFIED_ENDMATCH` The properties of a registered service have been modified and the new properties no longer match the listener's filter.
    `static int` | `REGISTERED` This service has been registered.
    `static int` | `UNREGISTERING` This service is in the process of being unregistered.

    - ### Fields inherited from class java.util.EventObject

      `source`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ServiceEvent(int type, ServiceReference<?> reference)` Creates a new service event object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ServiceReference<?>` | `getServiceReference()` Returns a reference to the service that had a change occur in its lifecycle.
    `int` | `getType()` Returns the type of event.

    - ### Methods inherited from class java.util.EventObject

      `getSource, toString`

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

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

- - ### Field Detail

    - #### REGISTERED

          public static final int REGISTERED

      This service has been registered.

      This event is synchronously delivered after the service has been registered with the Framework.

      See Also:
        `BundleContext.registerService(String[],Object,Dictionary)`, Constant Field Values

    - #### MODIFIED

          public static final int MODIFIED

      The properties of a registered service have been modified.

      This event is synchronously delivered after the service properties have been modified.

      See Also:
        `ServiceRegistration.setProperties(Dictionary)`, Constant Field Values

    - #### UNREGISTERING

          public static final int UNREGISTERING

      This service is in the process of being unregistered.

      This event is synchronously delivered before the service has completed unregistering.

      If a bundle is using a service that is `UNREGISTERING`, the bundle should release its use of the service when it receives this event. If the bundle does not release its use of the service when it receives this event, the Framework will automatically release the bundle's use of the service while completing the service unregistration operation.

      See Also:
        `ServiceRegistration.unregister()`, `BundleContext.ungetService(ServiceReference)`, Constant Field Values

    - #### MODIFIED_ENDMATCH

          public static final int MODIFIED_ENDMATCH

      The properties of a registered service have been modified and the new properties no longer match the listener's filter.

      This event is synchronously delivered after the service properties have been modified. This event is only delivered to listeners which were added with a non-`null` filter where the filter matched the service properties prior to the modification but the filter does not match the modified service properties.

      Since:
        1.5
      See Also:
        `ServiceRegistration.setProperties(Dictionary)`, Constant Field Values

  - ### Constructor Detail

    - #### ServiceEvent

          public ServiceEvent(int type,
                      ServiceReference<?> reference)

      Creates a new service event object.
      Parameters:
        `type` - The event type.
        `reference` - A `ServiceReference` object to the service that had a lifecycle change.

  - ### Method Detail

    - #### getServiceReference

          public ServiceReference<?> getServiceReference()

      Returns a reference to the service that had a change occur in its lifecycle.

      This reference is the source of the event.

      Returns:
        Reference to the service that had a lifecycle change.

    - #### getType

          public int getType()

      Returns the type of event. The event type values are:
      - `REGISTERED`
      - `MODIFIED`
      - `MODIFIED_ENDMATCH`
      - `UNREGISTERING`
      Returns:
        Type of service lifecycle change.