Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.jini.core.constraint
Class ConstraintAlternatives

    java.lang.Object
      net.jini.core.constraint.ConstraintAlternatives

All Implemented Interfaces:
  InvocationConstraint, RelativeTimeConstraint, Serializable

public final class ConstraintAlternatives
extends Object
implements RelativeTimeConstraint, Serializable

Combines two or more constraint alternatives into a single overall constraint. The semantics of this aggregate constraint are that at least one of the individual constraint alternatives must be satisfied. The alternatives do not have to be instances of the same type, but they cannot themselves be `ConstraintAlternatives` instances.

Note that this class implements `RelativeTimeConstraint` even though the constraint elements might not implement `RelativeTimeConstraint`.

An instance containing an exhaustive list of alternatives (for example, an instance containing both `ClientAuthentication.YES` and `ClientAuthentication.NO`) serves no useful purpose, as a requirement or as a preference. A don't care condition should be expressed by the absence of constraints.

Since:
  2.0
See Also:
  Serialized Form

Constructor Summary
`ConstraintAlternatives(Collection c)` Creates an instance containing the specified alternative constraints, with duplicate constraints removed.
`ConstraintAlternatives(InvocationConstraint[] constraints)` Creates an instance containing the specified alternative constraints, with duplicate constraints removed.

Method Summary
`static InvocationConstraint` | `create(Collection c)` Returns a constraint representing the specified alternative constraints, with duplicate constraints removed.
`static InvocationConstraint` | `create(InvocationConstraint[] constraints)` Returns a constraint representing the specified alternative constraints, with duplicate constraints removed.
`Set` | `elements()` Returns an immutable set of all of the constraints.
`boolean` | `equals(Object obj)` Two instances of this class are equal if they have the same constraints (ignoring order).
`int` | `hashCode()` Returns a hash code value for this object.
`InvocationConstraint` | `makeAbsolute(long baseTime)` Returns a constraint equal to the result of taking the constraints 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 invoking the `create` method of this class with the revised collection of constraints.
`String` | `toString()` Returns a string representation of this object.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ConstraintAlternatives

    public ConstraintAlternatives(InvocationConstraint[] constraints)

  Creates an instance containing the specified alternative constraints, with duplicate constraints removed. The argument passed to this constructor is neither modified nor retained; subsequent changes to that argument have no effect on the instance created.

Parameters:
  `constraints` - the alternative constraints
Throws:
  `NullPointerException` - if the argument is `null` or any element is `null`
  `IllegalArgumentException` - if any of the elements are instances of `ConstraintAlternatives`, or if fewer than two elements remain after duplicate constraints are removed

### ConstraintAlternatives

    public ConstraintAlternatives(Collection c)

  Creates an instance containing the specified alternative constraints, with duplicate constraints removed. The argument passed to this constructor is neither modified nor retained; subsequent changes to that argument have no effect on the instance created.

Parameters:
  `c` - the alternative constraints
Throws:
  `NullPointerException` - if the argument is `null` or any element is `null`
  `IllegalArgumentException` - if any of the elements are instances of `ConstraintAlternatives`, or if the elements are not all instances of `InvocationConstraint`, or if fewer than two elements remain after duplicate constraints are removed

Method Detail

### create

    public static InvocationConstraint create(InvocationConstraint[] constraints)

  Returns a constraint representing the specified alternative constraints, with duplicate constraints removed. If a single constraint remains after duplicates are removed, then that constraint is returned, otherwise an instance of `ConstraintAlternatives` containing the remaining constraints is returned. The argument passed to this method is neither modified nor retained; subsequent changes to that argument have no effect on the instance created.

  Parameters:
    `constraints` - the alternative constraints
  Returns:
    a constraint representing the specified alternative constraints, with duplicate constraints removed
  Throws:
    `NullPointerException` - if the argument is `null` or any element is `null`
    `IllegalArgumentException` - if the argument is empty, or if any of the elements are instances of `ConstraintAlternatives`

### create

    public static InvocationConstraint create(Collection c)

  Returns a constraint representing the specified alternative constraints, with duplicate constraints removed. If a single constraint remains after duplicates are removed, then that constraint is returned, otherwise an instance of `ConstraintAlternatives` containing the remaining constraints is returned. The argument passed to this method is neither modified nor retained; subsequent changes to that argument have no effect on the instance created.

  Parameters:
    `c` - the alternative constraints
  Returns:
    a constraint representing the specified alternative constraints, with duplicate constraints removed
  Throws:
    `NullPointerException` - if the argument is `null` or any element is `null`
    `IllegalArgumentException` - if the argument is empty, or if any of the elements are instances of `ConstraintAlternatives`, or if the elements are not all instances of `InvocationConstraint`

### elements

    public Set elements()

  Returns an immutable set of all of the constraints. Any attempt to modify this set results in an `UnsupportedOperationException` being thrown.

  Returns:
    an immutable set of all of the constraints

### makeAbsolute

    public InvocationConstraint makeAbsolute(long baseTime)

  Returns a constraint equal to the result of taking the constraints 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 invoking the `create` method of this class with the revised collection of constraints.

  Specified by:
    `makeAbsolute` in interface `RelativeTimeConstraint`
  Parameters:
    `baseTime` - an absolute time, specified in milliseconds from midnight, January 1, 1970 UTC
  Returns:
    a constraint that has the relative times converted to absolute times by adding the specified absolute time to each relative time

### hashCode

    public int hashCode()

  Returns a hash code value for this object.

### equals

    public boolean equals(Object obj)

  Two instances of this class are equal if they have the same constraints (ignoring order).

### toString

    public String toString()

  Returns a string representation of this object.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Sun Microsystems, Inc. All rights reserved