Event
Date: 2016-06-25

org.osgi.service.event

## Class Event

- java.lang.Object
- - org.osgi.service.event.Event

-     public class Event
      extends java.lang.Object

  An event. `Event` objects are delivered to `EventHandler` services which subscribe to the topic of the event.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Event(java.lang.String topic, java.util.Dictionary<java.lang.String,?> properties)` Constructs an event.
    `Event(java.lang.String topic, java.util.Map<java.lang.String,?> properties)` Constructs an event.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsProperty(java.lang.String name)` Indicate the presence of an event property.
    `boolean` | `equals(java.lang.Object object)` Compares this `Event` object to another object.
    `java.lang.Object` | `getProperty(java.lang.String name)` Retrieve the value of an event property.
    `java.lang.String[]` | `getPropertyNames()` Returns a list of this event's property names.
    `java.lang.String` | `getTopic()` Returns the topic of this event.
    `int` | `hashCode()` Returns a hash code value for this object.
    `boolean` | `matches(org.osgi.framework.Filter filter)` Tests this event's properties against the given filter using a case sensitive match.
    `java.lang.String` | `toString()` Returns the string representation of this event.

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

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

- - ### Constructor Detail

    - #### Event

          public Event(java.lang.String topic,
               java.util.Map<java.lang.String,?> properties)

      Constructs an event.
      Parameters:
        `topic` - The topic of the event.
        `properties` - The event's properties (may be `null`). A property whose key is not of type `String` will be ignored. If the specified properties is an `EventProperties` object, then it will be directly used. Otherwise, a copy of the specified properties is made.
      Throws:
        `java.lang.IllegalArgumentException` - If topic is not a valid topic name.
      Since:
        1.2

    - #### Event

          public Event(java.lang.String topic,
               java.util.Dictionary<java.lang.String,?> properties)

      Constructs an event.
      Parameters:
        `topic` - The topic of the event.
        `properties` - The event's properties (may be `null`). A property whose key is not of type `String` will be ignored. A copy of the specified properties is made.
      Throws:
        `java.lang.IllegalArgumentException` - If topic is not a valid topic name.

  - ### Method Detail

    - #### getProperty

          public final java.lang.Object getProperty(java.lang.String name)

      Retrieve the value of an event property. The event topic may be retrieved with the property name "event.topics".
      Parameters:
        `name` - The name of the property to retrieve.
      Returns:
        The value of the property, or `null` if not found.

    - #### containsProperty

          public final boolean containsProperty(java.lang.String name)

      Indicate the presence of an event property. The event topic is present using the property name "event.topics".
      Parameters:
        `name` - The name of the property.
      Returns:
        `true` if a property with the specified name is in the event. This property may have a `null` value. `false` otherwise.
      Since:
        1.3

    - #### getPropertyNames

          public final java.lang.String[] getPropertyNames()

      Returns a list of this event's property names. The list will include the event topic property name "event.topics".
      Returns:
        A non-empty array with one element per property.

    - #### getTopic

          public final java.lang.String getTopic()

      Returns the topic of this event.
      Returns:
        The topic of this event.

    - #### matches

          public final boolean matches(org.osgi.framework.Filter filter)

      Tests this event's properties against the given filter using a case sensitive match.
      Parameters:
        `filter` - The filter to test.
      Returns:
        true If this event's properties match the filter, false otherwise.

    - #### equals

          public boolean equals(java.lang.Object object)

      Compares this `Event` object to another object.

      An event is considered to be equal to another event if the topic is equal and the properties are equal. The properties are compared using the `java.util.Map.equals()` rules which includes identity comparison for array values.

      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `object` - The `Event` object to be compared.
      Returns:
        `true` if `object` is a `Event` and is equal to this object; `false` otherwise.

    - #### hashCode

          public int hashCode()

      Returns a hash code value for this object.
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        An integer which is a hash code value for this object.

    - #### toString

          public java.lang.String toString()

      Returns the string representation of this event.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        The string representation of this event.