public interface CollectionConstraint
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
.Modifier and Type | Interface and Description |
---|---|
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.
|
Modifier and Type | Field and Description |
---|---|
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. |
Modifier and Type | Method and Description |
---|---|
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. |
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 therestatic final CollectionConstraint EMPTY
EMPTY
is a constraint which only accepts the empty
set.
Use this to indicate that a property must be undefinedstatic 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.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 addboolean 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 removeCopyright © 2014 BioJava. All rights reserved.