Class WirePermission

All Implemented Interfaces:
Serializable, Guard

public final class WirePermission extends BasicPermission
Permission for the scope of a Wire object. When a Envelope object is used for communication with the poll or update method, and the scope is set, then the Wire object must verify that the Consumer service has WirePermission[name,CONSUME] and the Producer service has WirePermission[name,PRODUCE] for all names in the scope.

The names are compared with the normal rules for permission names. This means that they may end with a "*" to indicate wildcards. E.g. Door.* indicates all scope names starting with the string "Door". The last period is required due to the implementations of the BasicPermission class.

See Also:
  • Field Details

  • Constructor Details

    • WirePermission

      public WirePermission(String name, String actions)
      Create a new WirePermission with the given name (may be wildcard) and actions.
      Parameters:
      name - Wire name.
      actions - produce, consume (canonical order).
    • WirePermission

      WirePermission(String name, int mask)
      Package private constructor used by WirePermissionCollection.
      Parameters:
      name - class name
      mask - action mask
  • Method Details

    • setTransients

      private void setTransients(int mask)
      Called by constructors and when deserialized.
      Parameters:
      mask - action mask
    • getActionsMask

      int getActionsMask()
      Returns the current action mask. Used by the WirePermissionCollection object.
      Returns:
      The actions mask.
    • parseActions

      private static int parseActions(String actions)
      Parse action string into action mask.
      Parameters:
      actions - Action string.
      Returns:
      action mask.
    • implies

      public boolean implies(Permission p)
      Checks if this WirePermission object implies the specified permission.

      More specifically, this method returns true if:

      • p is an instanceof the WirePermission class,
      • p's actions are a proper subset of this object's actions, and
      • p's name is implied by this object's name. For example, java.* implies java.home.
      Overrides:
      implies in class BasicPermission
      Parameters:
      p - The permission to check against.
      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: produce, consume.
      Overrides:
      getActions in class BasicPermission
      Returns:
      The canonical string representation of the actions.
    • newPermissionCollection

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

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

      public String toString()
      Returns a string describing this WirePermission. The convention is to specify the class name, the permission name, and the actions in the following format: '(org.osgi.service.wireadmin.WirePermission "name" "actions")'.
      Overrides:
      toString in class Permission
      Returns:
      information about this Permission object.
    • writeObject

      private void writeObject(ObjectOutputStream s) throws IOException
      WriteObject is called to save the state of the ServicePermission to a stream. The actions are serialized, and the superclass takes care of the name.
      Throws:
      IOException
    • readObject

      private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
      readObject is called to restore the state of the ServicePermission from a stream.
      Throws:
      IOException
      ClassNotFoundException