MountPoint
Date: 2016-06-25

org.osgi.service.dmt.spi

## Interface MountPoint

-     public interface MountPoint

  This interface can be implemented to represent a single mount point.

  It provides function to get the absolute mounted uri and a shortcut method to post events via the DmtAdmin.

  Since:
    2.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object other)` This object must provide a suitable hash function such that a Mount Point given in `MountPlugin.mountPointAdded(MountPoint)` is equal to the corresponding Mount Point in `MountPlugin.mountPointRemoved(MountPoint)`.
    `java.lang.String[]` | `getMountPath()` Provides the absolute mount path of this `MountPoint`
    `int` | `hashCode()` This object must provide a suitable hash function such that a Mount Point given in `MountPlugin.mountPointAdded(MountPoint)` has the same hashCode as the corresponding Mount Point in `MountPlugin.mountPointRemoved(MountPoint)`.
    `void` | `postEvent(java.lang.String topic, java.lang.String[] relativeURIs, java.util.Dictionary properties)` Posts an event via the DmtAdmin about changes in the current plugins subtree.
    `void` | `postEvent(java.lang.String topic, java.lang.String[] relativeURIs, java.lang.String[] newRelativeURIs, java.util.Dictionary properties)` Posts an event via the DmtAdmin about changes in the current plugins subtree.

- - ### Method Detail

    - #### getMountPath

          java.lang.String[] getMountPath()

      Provides the absolute mount path of this `MountPoint`
      Returns:
        the absolute mount path of this `MountPoint`

    - #### postEvent

          void postEvent(java.lang.String topic,
                       java.lang.String[] relativeURIs,
                       java.util.Dictionary properties)

      Posts an event via the DmtAdmin about changes in the current plugins subtree.

      This method distributes Events asynchronously to the EventAdmin as well as to matching local DmtEventListeners.

      Parameters:
        `topic` - the topic of the event to send. Valid values are:
        - `org/osgi/service/dmt/DmtEvent/ADDED` if the change was caused by an add action
        - `org/osgi/service/dmt/DmtEvent/DELETED` if the change was caused by a delete action
        - `org/osgi/service/dmt/DmtEvent/REPLACED` if the change was caused by a replace action
        Must not be `null`.
        `relativeURIs` - an array of affected node `URI`'s. All `URI`'s specified here are relative to the current `MountPoint`'s mountPath. The value of this parameter determines the value of the event property `EVENT_PROPERTY_NODES`. An empty array or `null` is permitted. In both cases the value of the events `EVENT_PROPERTY_NODES` property will be set to an empty array.
        `properties` - an optional parameter that can be provided to add properties to the Event that is going to be send by the DMTAdmin. If the properties contain a key `EVENT_PROPERTY_NODES`, then the value of this property is ignored and will be overwritten by `relativeURIs`.
      Throws:
        `java.lang.IllegalArgumentException` - if the topic has not one of the defined values

    - #### postEvent

          void postEvent(java.lang.String topic,
                       java.lang.String[] relativeURIs,
                       java.lang.String[] newRelativeURIs,
                       java.util.Dictionary properties)

      Posts an event via the DmtAdmin about changes in the current plugins subtree.

      This method distributes Events asynchronously to the EventAdmin as well as to matching local DmtEventListeners.

      Parameters:
        `topic` - the topic of the event to send. Valid values are:
        - `org/osgi/service/dmt/DmtEvent/RENAMED` if the change was caused by a rename action
        - `org/osgi/service/dmt/DmtEvent/COPIED` if the change was caused by a copy action
        Must not be `null`.
        `relativeURIs` - an array of affected node `URI`'s.

        All `URI`'s specified here are relative to the current `MountPoint`'s mountPath. The value of this parameter determines the value of the event property `EVENT_PROPERTY_NODES`. An empty array or `null` is permitted. In both cases the value of the events `EVENT_PROPERTY_NODES` property will be set to an empty array.

        `newRelativeURIs` - an array of affected node `URI`'s. The value of this parameter determines the value of the event property `EVENT_PROPERTY_NEW_NODES`. An empty array or `null` is permitted. In both cases the value of the events `EVENT_PROPERTY_NEW_NODES` property will be set to an empty array.
        `properties` - an optional parameter that can be provided to add properties to the Event that is going to be send by the DMTAdmin. If the properties contain the keys `EVENT_PROPERTY_NODES` or `EVENT_PROPERTY_NEW_NODES`, then the values of these properties are ignored and will be overwritten by `relativeURIs` and `newRelativeURIs`.
      Throws:
        `java.lang.IllegalArgumentException` - if the topic has not one of the defined values

    - #### hashCode

          int hashCode()

      This object must provide a suitable hash function such that a Mount Point given in `MountPlugin.mountPointAdded(MountPoint)` has the same hashCode as the corresponding Mount Point in `MountPlugin.mountPointRemoved(MountPoint)`. `Object.hashCode()`
      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          boolean equals(java.lang.Object other)

      This object must provide a suitable hash function such that a Mount Point given in `MountPlugin.mountPointAdded(MountPoint)` is equal to the corresponding Mount Point in `MountPlugin.mountPointRemoved(MountPoint)`. `Object.equals(Object)`
      Overrides:
        `equals` in class `java.lang.Object`