|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface CollectionConstraint
Used by AnnotationType
to represent the constraint on
the collection of values in a property-slot.
CollectionConstraints usually use a PropertyConstraint
to validate the individual elements.
Use one or more of the built-in implementations to build new
AnnotationTypes
.
Nested Class Summary | |
---|---|
static class |
CollectionConstraint.AllValuesIn
CollectionConstraint which validates all members of a Collection. |
static class |
CollectionConstraint.And
A collection constraint that accpepts collections iff they are accepted by both child constraints. |
static class |
CollectionConstraint.Contains
CollectionConstraint which validates a portion of a Collection. |
static class |
CollectionConstraint.Or
A collection constraint that accepts items iff they are accepted by either child constraints. |
Field Summary | |
---|---|
static CollectionConstraint |
ANY
ANY is a constraint which accepts a property for
addition under all conditions. |
static CollectionConstraint |
EMPTY
EMPTY is a constraint which only accepts the empty
set. |
static CollectionConstraint |
NONE
NONE is a constraint which accepts no value for a property
under any condition. |
Method Summary | |
---|---|
boolean |
accept(Object values)
accept returns true if the value fulfills the
constraint. |
boolean |
subConstraintOf(CollectionConstraint subConstraint)
subConstraintOf returns true if the constraint
is a sub-constraint. |
boolean |
validateAddValue(Collection current,
Object newValue)
Return true iff the Collection formed by adding
newValue to current would be accepted
by this constraint. |
boolean |
validateRemoveValue(Collection current,
Object victim)
Return true iff the Collection formed by removing
newValue from current would be accepted
by this constraint. |
Field Detail |
---|
static final CollectionConstraint ANY
ANY
is a constraint which accepts a property for
addition under all conditions.
Whenever a CollectionConstraint is needed and you want to allow
any value there
static final CollectionConstraint EMPTY
EMPTY
is a constraint which only accepts the empty
set.
Use this to indicate that a property must be undefined
static final CollectionConstraint NONE
NONE
is a constraint which accepts no value for a property
under any condition.
This value indicates an impossible condition. It may be
returned by methods such as AnnotationTools.intersection
to indicate that NO
values of a property (include undefined)
are valid.
Method Detail |
---|
boolean accept(Object values)
accept
returns true if the value fulfills the
constraint.
values
- a Collection
to check.
boolean subConstraintOf(CollectionConstraint subConstraint)
subConstraintOf
returns true if the constraint
is a sub-constraint.
A pair of constraints super and sub are in a superConstraint/subConstraint relationship if every object accepted by sub is also accepted by super. To put it another way, if instanceOf was used as a set-membership indicator function over some set of objects, then the set produced by super would be a superset of that produced by sub.
It is not expected that constraints will neccesarily
maintain references to super/sub types. It will be more usual
to infer this relationship by introspecting the constraints
themselves. For example,
CollectionConstraint.ByClass
will infer
subConstraintOf by looking at the possible class of all items
matching subConstraint.
subConstraint
- a CollectionConstraint
to check.
boolean
.
Usefull when attempting to compare two constraints to see
if it is necisary to retain both. You may want to check the more
general or the more specific constraint only.boolean validateAddValue(Collection current, Object newValue)
true
iff the Collection formed by adding
newValue
to current
would be accepted
by this constraint.
Implementations may not assume that current
is valid.
current
- a Collection containing the current valuesnewValue
- the new value to add
boolean validateRemoveValue(Collection current, Object victim)
true
iff the Collection formed by removing
newValue
from current
would be accepted
by this constraint.
Implementations may not assume that current
is valid. However, current
will already have been
checked to ensure that it contains victim
.
current
- a Collection containing the current valuesvictim
- the value to remove
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |