ListenerHook.ListenerInfo
Date: 2016-06-24

org.osgi.framework.hooks.service

## Interface ListenerHook.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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object obj)` Compares this `ListenerInfo` to another `ListenerInfo`.
    `BundleContext` | `getBundleContext()` Return the context of the bundle which added the listener.
    `java.lang.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

          java.lang.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 been removed, `true` otherwise.

    - #### equals

          boolean equals(java.lang.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 `java.lang.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 `java.lang.Object`
      Returns:
        The hash code of this `ListenerInfo`.