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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

      • 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.