Class InvocationConstraints

java.lang.Object
net.jini.core.constraint.InvocationConstraints
All Implemented Interfaces:
Serializable

public final class InvocationConstraints extends Object implements Serializable
An immutable aggregation of constraints into a set of requirements and a set of preferences. A requirement is a mandatory constraint that must be satisfied for the invocation. A preference is a desired constraint, to be satisfied if possible, but it will not be satisfied if it conflicts with a requirement. If two preferences conflict, it is arbitrary as to which one will be satisfied. If a constraint is not understood, due to lack of knowledge of the type of the constraint or the contents of the constraint, then the constraint cannot be satisfied.

Note that it is possible for an instance of this class to contain both requirements that conflict with each other, and preferences that conflict with each other and with requirements.

Since:
2.0
Author:
Sun Microsystems, Inc.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    An empty instance, one that has no requirements and no preferences.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an instance that has all of the constraints from the first collection, reqs, added as requirements if the collection is a non-null value, and has all of the constraints from the second collection, prefs, added as preferences if the collection is a non-null value.
    Creates an instance that has all of the constraints from the first array, reqs, added as requirements if the array is a non-null value, and has all of the constraints from the second array, prefs, added as preferences if the array is a non-null value.
    Creates an instance that has the first constraint, req, added as a requirement if it is a non-null value, and has the second constraint, pref, added as a preference if it is a non-null value and is not a duplicate of the requirement.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns an instance of this class that has all of the requirements from each non-null argument added as requirements and has all of the preferences from each non-null argument added as preferences.
    boolean
    Two instances of this class are equal if they have the same requirements and the same preferences.
    int
    Returns a hash code value for this object.
    boolean
    Returns true if the instance has no requirements and no preferences; returns false otherwise.
    Returns an instance of this class constructed from all of the same requirements and preferences as this instance, but with every constraint that is an instance of RelativeTimeConstraint replaced by the result of invoking the constraint's makeAbsolute method with the current time (as given by System.currentTimeMillis).
    makeAbsolute(long baseTime)
    Returns an instance of this class equal to the result of taking the requirements and preferences in this instance, replacing each constraint that is an instance of RelativeTimeConstraint with the result of invoking that constraint's makeAbsolute method with the specified base time, and creating a new instance of this class with duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements all removed.
    Returns an immutable set of all of the preferences.
    Returns an immutable set of all of the requirements.
    Returns a string representation of this object.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • EMPTY

      public static final InvocationConstraints EMPTY
      An empty instance, one that has no requirements and no preferences.
  • Constructor Details

    • InvocationConstraints

      public InvocationConstraints(InvocationConstraint req, InvocationConstraint pref)
      Creates an instance that has the first constraint, req, added as a requirement if it is a non-null value, and has the second constraint, pref, added as a preference if it is a non-null value and is not a duplicate of the requirement.
      Parameters:
      req - a requirement, or null
      pref - a preference, or null
    • InvocationConstraints

      public InvocationConstraints(InvocationConstraint[] reqs, InvocationConstraint[] prefs)
      Creates an instance that has all of the constraints from the first array, reqs, added as requirements if the array is a non-null value, and has all of the constraints from the second array, prefs, added as preferences if the array is a non-null value. Duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements are all removed. The arguments passed to the constructor are neither modified nor retained; subsequent changes to those arguments have no effect on the instance created.
      Parameters:
      reqs - requirements, or null
      prefs - preferences, or null
      Throws:
      NullPointerException - if any element of an argument is null
    • InvocationConstraints

      public InvocationConstraints(Collection reqs, Collection prefs)
      Creates an instance that has all of the constraints from the first collection, reqs, added as requirements if the collection is a non-null value, and has all of the constraints from the second collection, prefs, added as preferences if the collection is a non-null value. Duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements are all removed. The arguments passed to the constructor are neither modified nor retained; subsequent changes to those arguments have no effect on the instance created.
      Parameters:
      reqs - requirements, or null
      prefs - preferences, or null
      Throws:
      NullPointerException - if any element of an argument is null
      IllegalArgumentException - if any element of an argument is not an instance of InvocationConstraint
  • Method Details

    • combine

      public static InvocationConstraints combine(InvocationConstraints constraints1, InvocationConstraints constraints2)
      Returns an instance of this class that has all of the requirements from each non-null argument added as requirements and has all of the preferences from each non-null argument added as preferences. Duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements are all removed.
      Parameters:
      constraints1 - constraints, or null
      constraints2 - constraints, or null
      Returns:
      an instance of this class that has all of the requirements from each non-null argument added as requirements and has all of the preferences from each non-null argument added as preferences
    • makeAbsolute

      public InvocationConstraints makeAbsolute(long baseTime)
      Returns an instance of this class equal to the result of taking the requirements and preferences in this instance, replacing each constraint that is an instance of RelativeTimeConstraint with the result of invoking that constraint's makeAbsolute method with the specified base time, and creating a new instance of this class with duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements all removed.
      Parameters:
      baseTime - an absolute time, specified in milliseconds from midnight, January 1, 1970 UTC
      Returns:
      an instance of this class equal to the result of taking the requirements and preferences in this instance, replacing each constraint that is an instance of RelativeTimeConstraint with the result of invoking that constraint's makeAbsolute method with the specified base time, and creating a new instance of this class with duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements all removed
    • makeAbsolute

      public InvocationConstraints makeAbsolute()
      Returns an instance of this class constructed from all of the same requirements and preferences as this instance, but with every constraint that is an instance of RelativeTimeConstraint replaced by the result of invoking the constraint's makeAbsolute method with the current time (as given by System.currentTimeMillis). Duplicate requirements, duplicate preferences, and preferences that are duplicates of requirements are all removed.
      Returns:
      an instance of this class constructed from all of the same requirements and preferences as this instance, but with every constraint that is an instance of RelativeTimeConstraint replaced by the result of invoking the constraint's makeAbsolute method with the current time
    • requirements

      public Set requirements()
      Returns an immutable set of all of the requirements. Any attempt to modify this set results in an UnsupportedOperationException being thrown.
      Returns:
      an immutable set of all of the requirements
    • preferences

      public Set preferences()
      Returns an immutable set of all of the preferences. Any attempt to modify this set results in an UnsupportedOperationException being thrown.
      Returns:
      an immutable set of all of the preferences
    • isEmpty

      public boolean isEmpty()
      Returns true if the instance has no requirements and no preferences; returns false otherwise.
      Returns:
      true if the instance has no requirements and no preferences; false otherwise
    • hashCode

      public int hashCode()
      Returns a hash code value for this object.
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Two instances of this class are equal if they have the same requirements and the same preferences. This method is a sufficient substitute for TrustEquivalence.checkTrustEquivalence.
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Returns a string representation of this object.
      Overrides:
      toString in class Object