org.osgi.framework

## Class ServiceEvent

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

All Implemented Interfaces:
  Serializable

    public class ServiceEvent
    extends 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.

Author:
  $Id: b27a941cb68e6416825b1b717090a2eb098733f3 $
See Also:
  `ServiceListener`, `AllServiceListener`, Serialized Form

### Field Summary

Fields
`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

All Methods Instance Methods Concrete Methods
`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.