|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.jini.core.constraint.ConstraintAlternatives
public final class ConstraintAlternatives
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.
Field Summary | |
---|---|
private InvocationConstraint[] |
constraints
The alternative constraints. |
private boolean |
rel
Indicates whether any of the constraints are based on relative time. |
private static ObjectStreamField[] |
serialPersistentFields
|
private static long |
serialVersionUID
|
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. |
private |
ConstraintAlternatives(InvocationConstraint[] constraints,
boolean allAbs)
Creates a constraint containing the specified alternative constraints, and computes the rel field if allAbs is false. |
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). |
(package private) InvocationConstraint[] |
getConstraints()
Returns the elements, without copying. |
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. |
private void |
readObject(ObjectInputStream s)
Verifies that there are at least two constraints, that none are null and none are instances of this class, and that
there are no duplicates. |
private static InvocationConstraint[] |
reduce(InvocationConstraint[] constraints)
Verifies that the array has at least 2 elements, and that the elements are all non-null and not ConstraintAlternatives instances, removes duplicates, modifying the array in place, verifies that there are still at least 2 elements, and returns an array containing the remaining elements. |
private static InvocationConstraint |
reduce(InvocationConstraint[] constraints,
boolean allAbs)
Verifies that the array is non-empty, and that the elements are all non-null and not ConstraintAlternatives instances. |
private static int |
reduce0(InvocationConstraint[] constraints)
Eliminates duplicates, modifying the array in place, and returns the resulting number of elements. |
(package private) boolean |
relative()
Returns true if any of the constraints are relative, false otherwise. |
private void |
setRelative()
Sets the rel field to true if any of the constraints are relative. |
String |
toString()
Returns a string representation of this object. |
private static void |
verify(InvocationConstraint[] constraints,
int min)
Verifies that the array has at least min elements, and that the elements are all non-null and not ConstraintAlternatives instances. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private static final ObjectStreamField[] serialPersistentFields
private final InvocationConstraint[] constraints
private transient boolean rel
Constructor Detail |
---|
public ConstraintAlternatives(InvocationConstraint[] constraints)
constraints
- the alternative constraints
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 removedpublic ConstraintAlternatives(Collection c)
c
- the alternative constraints
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 removedprivate ConstraintAlternatives(InvocationConstraint[] constraints, boolean allAbs)
Method Detail |
---|
public static InvocationConstraint create(InvocationConstraint[] constraints)
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.
constraints
- the alternative constraints
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
public static InvocationConstraint create(Collection c)
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.
c
- the alternative constraints
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
private void setRelative()
boolean relative()
private static InvocationConstraint reduce(InvocationConstraint[] constraints, boolean allAbs)
private static void verify(InvocationConstraint[] constraints, int min)
private static InvocationConstraint[] reduce(InvocationConstraint[] constraints)
private static int reduce0(InvocationConstraint[] constraints)
public Set elements()
UnsupportedOperationException
being thrown.
InvocationConstraint[] getConstraints()
public InvocationConstraint makeAbsolute(long baseTime)
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.
makeAbsolute
in interface RelativeTimeConstraint
baseTime
- an absolute time, specified in milliseconds from
midnight, January 1, 1970 UTC
public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public String toString()
toString
in class Object
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
null
and none are instances of this class, and that
there are no duplicates.
InvalidObjectException
- if there are less than two constraints,
or any constraint is null
or an instance of this class,
or if there are duplicates
IOException
ClassNotFoundException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |