DriverLocator
Date: 2016-06-25

org.osgi.service.device

## Interface DriverLocator

-     public interface DriverLocator

  A Driver Locator service can find and load device driver bundles given a property set. Each driver is represented by a unique `DRIVER_ID`.

  Driver Locator services provide the mechanism for dynamically downloading new device driver bundles into an OSGi environment. They are supplied by providers and encapsulate all provider-specific details related to the location and acquisition of driver bundles.

  See Also:
    `Driver`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String[]` | `findDrivers(java.util.Dictionary props)` Returns an array of `DRIVER_ID` strings of drivers capable of attaching to a device with the given properties.
    `java.io.InputStream` | `loadDriver(java.lang.String id)` Get an `InputStream` from which the driver bundle providing a driver with the giving `DRIVER_ID` can be installed.

- - ### Method Detail

    - #### findDrivers

          java.lang.String[] findDrivers(java.util.Dictionary props)

      Returns an array of `DRIVER_ID` strings of drivers capable of attaching to a device with the given properties.

      The property keys in the specified `Dictionary` objects are case-insensitive.

      Parameters:
        `props` - the properties of the device for which a driver is sought
      Returns:
        array of driver `DRIVER_ID` strings of drivers capable of attaching to a Device service with the given properties, or `null` if this Driver Locator service does not know of any such drivers

    - #### loadDriver

          java.io.InputStream loadDriver(java.lang.String id)
                                         throws java.io.IOException

      Get an `InputStream` from which the driver bundle providing a driver with the giving `DRIVER_ID` can be installed.
      Parameters:
        `id` - the `DRIVER_ID` of the driver that needs to be installed.
      Returns:
        An `InputStream` object from which the driver bundle can be installed or `null` if the driver with the given ID cannot be located
      Throws:
        `java.io.IOException` - the input stream for the bundle cannot be created