Class CapabilityPermission

All Implemented Interfaces:
Serializable, Guard

public final class CapabilityPermission extends BasicPermission
A bundle's authority to provide or require a capability.
  • The provide action allows a bundle to provide a capability matching the specified filter.
  • The require action allows a bundle to require a capability matching the specified filter.
Since:
1.6
See Also:
  • Field Details

  • Constructor Details

    • CapabilityPermission

      public CapabilityPermission(String name, String actions)
      Create a new CapabilityPermission.

      The name is specified as a dot-separated string. Wildcards may be used.

       name ::= <namespace> | <namespace ending in ".*"> | *
       
      Examples:
       com.acme.capability.*
       org.foo.capability
       *
       
      For the require action, the name can also be a filter expression. The filter gives access to the capability attributes as well as the following attributes:
      • signer - A Distinguished Name chain used to sign the bundle providing the capability. Wildcards in a DN are not matched according to the filter string rules, but according to the rules defined for a DN chain.
      • location - The location of the bundle providing the capability.
      • id - The bundle ID of the bundle providing the capability.
      • name - The symbolic name of the bundle providing the capability.
      • capability.namespace - The namespace of the required capability.
      Since the above attribute names may conflict with attribute names of a capability, you can prefix an attribute name with '@' in the filter expression to match against the capability attributes and not one of the above attributes. Filter attribute names are processed in a case sensitive manner.

      There are two possible actions: require and provide. The require permission allows the owner of this permission to require a capability matching the attributes. The provide permission allows the bundle to provide a capability in the specified capability namespace.

      Parameters:
      name - The capability namespace or a filter over the attributes.
      actions - require,provide (canonical order)
      Throws:
      IllegalArgumentException - If the specified name is a filter expression and either the specified action is not require or the filter has an invalid syntax.
    • CapabilityPermission

      public CapabilityPermission(String namespace, Map<String,?> attributes, Bundle providingBundle, String actions)
      Creates a new requested CapabilityPermission object to be used by code that must perform checkPermission for the require action. CapabilityPermission objects created with this constructor cannot be added to a CapabilityPermission permission collection.
      Parameters:
      namespace - The requested capability namespace.
      attributes - The requested capability attributes.
      providingBundle - The bundle providing the requested capability.
      actions - The action require.
      Throws:
      IllegalArgumentException - If the specified action is not require or attributes or providingBundle are null .
  • Method Details

    • implies

      public boolean implies(Permission p)
      Determines if a CapabilityPermission object "implies" the specified permission.
      Overrides:
      implies in class BasicPermission
      Parameters:
      p - The target permission to check.
      Returns:
      true if the specified permission is implied by this object; false otherwise.
    • getActions

      public String getActions()
      Returns the canonical string representation of the actions. Always returns present actions in the following order: require, provide.
      Overrides:
      getActions in class BasicPermission
      Returns:
      The canonical string representation of the actions.
    • newPermissionCollection

      public PermissionCollection newPermissionCollection()
      Returns a new PermissionCollection object for storing CapabilityPermission objects.
      Overrides:
      newPermissionCollection in class BasicPermission
      Returns:
      A new PermissionCollection object suitable for storing CapabilityPermission objects.
    • equals

      public boolean equals(Object obj)
      Determines the equality of two CapabilityPermission objects. Checks that specified object has the same name and action as this CapabilityPermission.
      Overrides:
      equals in class BasicPermission
      Parameters:
      obj - The object to test for equality.
      Returns:
      true if obj is a CapabilityPermission, and has the same name and actions as this CapabilityPermission object; 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.