Class DevicePermission

All Implemented Interfaces:
Serializable, Guard

public class DevicePermission extends BasicPermission
A bundle's authority to perform specific privileged administrative operations on the devices. The method Device.remove() is protected with REMOVE permission action.

The name of the permission is a filter based. See OSGi Core Specification, Filter Based Permissions. The filter gives an access to all device service properties. Filter attribute names are processed in a case sensitive manner.

See Also:
  • Field Details

  • Constructor Details

    • DevicePermission

      public DevicePermission(String filter, String action)
      Creates a new DevicePermission with the given filter and actions. The constructor must only be used to create a permission that is going to be checked.

      A filter example: (dal.device.hardware.vendor=acme)

      An action: remove

      Parameters:
      filter - A filter expression that can use any device service property. The filter attribute names are processed in a case insensitive manner. A special value of "*" can be used to match all devices.
      action - REMOVE action.
      Throws:
      IllegalArgumentException - If the filter syntax is not correct or invalid action is specified.
      NullPointerException - If the filter or action is null.
    • DevicePermission

      public DevicePermission(Device device, String action)
      Creates a new DevicePermission with the given device and actions. The permission must be used for the security checks like:

      securityManager.checkPermission(new DevicePermission(this, "remove")) . The permissions constructed by this constructor must not be added to the DevicePermission permission collections.

      Parameters:
      device - The device that needs to be checked for a permission.
      action - REMOVE action.
      Throws:
      IllegalArgumentException - If an invalid action is specified.
      NullPointerException - If the device or action is null.
  • Method Details

    • equals

      public boolean equals(Object obj)
      Two DevicePermission instances are equal if:
      • Represents the same filter and action.
      • Represents the same device (in respect to device unique identifier) and action.
      Overrides:
      equals in class BasicPermission
      Parameters:
      obj - The object being compared for equality with this object.
      Returns:
      true if two permissions are equal, false otherwise.
    • hashCode

      public int hashCode()
      Returns the hash code value for this object.
      Overrides:
      hashCode in class BasicPermission
      Returns:
      Hash code value for this object.
    • getActions

      public String getActions()
      Returns the canonical string representation of REMOVE action.
      Overrides:
      getActions in class BasicPermission
      Returns:
      The canonical string representation of the actions.
    • implies

      public boolean implies(Permission p)
      Determines if the specified permission is implied by this object. The method will return false if the specified permission was not constructed by DevicePermission(Device, String). Returns true if the specified permission is a DevicePermission and this permission filter matches the specified permission device properties.
      Overrides:
      implies in class BasicPermission
      Parameters:
      p - The permission to be implied. It must be constructed by DevicePermission(Device, String).
      Returns:
      true if the specified permission is implied by this permission, false otherwise.
      Throws:
      IllegalArgumentException - If the specified permission is not constructed by DevicePermission(Device, String).
    • newPermissionCollection

      public PermissionCollection newPermissionCollection()
      Returns a new PermissionCollection suitable for storing DevicePermission instances.
      Overrides:
      newPermissionCollection in class BasicPermission
      Returns:
      A new PermissionCollection instance.