org.osgi.framework.hooks.service

## Interface ListenerHook.ListenerInfo

All Known Implementing Classes:
  ListenerInfo

Enclosing interface:
  ListenerHook

    @ProviderType
    public static interface ListenerHook.ListenerInfo

Information about a Service Listener. This interface describes the bundle which added the Service Listener and the filter with which it was added.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `equals(Object obj)` Compares this `ListenerInfo` to another `ListenerInfo`.
`BundleContext` `getBundleContext()` Return the context of the bundle which added the listener.
`String` `getFilter()` Return the filter string with which the listener was added.
`int` `hashCode()` Returns the hash code for this `ListenerInfo`.
`boolean` `isRemoved()` Return the state of the listener for this addition and removal life cycle.

### Method Detail

#### getBundleContext

    BundleContext getBundleContext()

Return the context of the bundle which added the listener.

Returns:
  The context of the bundle which added the listener.

#### getFilter

    String getFilter()

Return the filter string with which the listener was added.

Returns:
  The filter string with which the listener was added. This may be `null` if the listener was added without a filter.

#### isRemoved

    boolean isRemoved()

Return the state of the listener for this addition and removal life cycle. Initially this method will return `false` indicating the listener has been added but has not been removed. After the listener has been removed, this method must always return `true`.

There is an extremely rare case in which removed notification to `ListenerHook`s can be made before added notification if two threads are racing to add and remove the same service listener. Because `ListenerHook`s are called synchronously during service listener addition and removal, the Framework cannot guarantee in-order delivery of added and removed notification for a given service listener. This method can be used to detect this rare occurrence.

Returns:
  `false` if the listener has not been removed, `true` otherwise.

#### equals

    boolean equals(Object obj)

Compares this `ListenerInfo` to another `ListenerInfo`. Two `ListenerInfo`s are equals if they refer to the same listener for a given addition and removal life cycle. If the same listener is added again, it must have a different `ListenerInfo` which is not equal to this `ListenerInfo`.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - The object to compare against this `ListenerInfo`.
Returns:
  `true` if the other object is a `ListenerInfo` object and both objects refer to the same listener for a given addition and removal life cycle.

#### hashCode

    int hashCode()

Returns the hash code for this `ListenerInfo`.

Overrides:
  `hashCode` in class `Object`
Returns:
  The hash code of this `ListenerInfo`.