ExecPlugin
Date: 2016-06-25

org.osgi.service.dmt.spi

## Interface ExecPlugin

-     public interface ExecPlugin

  An implementation of this interface takes the responsibility of handling node execute requests in a subtree of the DMT.

  In an OSGi environment such implementations should be registered at the OSGi service registry specifying the list of root node URIs in a `String` array or in case of a single value as `String` in the `execRootURIs` registration parameter.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `EXEC_ROOT_URIS` The string to be used as key for the “execRootURIs” property when an ExecPlugin is registered.
    `static java.lang.String` | `MOUNT_POINTS` The string to be used as key for the mount points property when an Exec Plugin is registered with mount points.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `execute(DmtSession session, java.lang.String[] nodePath, java.lang.String correlator, java.lang.String data)` Execute the given node with the given data.

- - ### Field Detail

    - #### MOUNT_POINTS

          static final java.lang.String MOUNT_POINTS

      The string to be used as key for the mount points property when an Exec Plugin is registered with mount points.
      See Also:
        Constant Field Values

    - #### EXEC_ROOT_URIS

          static final java.lang.String EXEC_ROOT_URIS

      The string to be used as key for the “execRootURIs” property when an ExecPlugin is registered.
      Since:
        2.0
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### execute

          void execute(DmtSession session,
                     java.lang.String[] nodePath,
                     java.lang.String correlator,
                     java.lang.String data)
                       throws DmtException

      Execute the given node with the given data. This operation corresponds to the EXEC command in OMA DM.

      The semantics of an execute operation and the data parameter it takes depends on the definition of the managed object on which the command is issued. Session information is given as it is needed for sending alerts back from the plugin. If a correlation ID is specified, it should be used as the `correlator` parameter for alerts sent in response to this execute operation.

      The `nodePath` parameter contains an array of path segments identifying the node to be executed in the subtree of this plugin. This is an absolute path, so the first segment is always ".". Special characters appear escaped in the segments.

      Parameters:
        `session` - a reference to the session in which the operation was issued, must not be `null`
        `nodePath` - the absolute path of the node to be executed, must not be `null`
        `correlator` - an identifier to associate this operation with any alerts sent in response to it, can be `null`
        `data` - the parameter of the execute operation, can be `null`
      Throws:
        `DmtException` - with the following possible error codes:
        - `NODE_NOT_FOUND` if the node does not exist
        - `METADATA_MISMATCH` if the command failed because of meta-data restrictions
        - `DATA_STORE_FAILURE` if an error occurred while accessing the data store
        - `COMMAND_FAILED` if some unspecified error is encountered while attempting to complete the command
      See Also:
        `DmtSession.execute(String, String)`, `DmtSession.execute(String, String, String)`