Class PropertyConstraint.ByAnnotationType

  • All Implemented Interfaces:
    Enclosing interface:

    public static class PropertyConstraint.ByAnnotationType
    extends Object
    implements PropertyConstraint

    ByAnnotationType accepts a property value if it belongs to type defined by AnnotationType.

    If you had an Embl AnnotationType then you could say that the REF property must contain annotations that fits your reference AnnotationType (with author list, title, optinal medline ID etc.).

    If you wish to build a tree of Annotations so that a property in one is guaranteed to be itself an Annotation of a particular type. Effectively this lets you build your own type system using AnnotationType and PropertyConstraint.
    Matthew Pocock
    • Constructor Detail

      • ByAnnotationType

        public ByAnnotationType​(AnnotationType annType)
        Create a new constraint by type.
        annType - the AnnotationType to constrain to
    • Method Detail

      • accept

        public boolean accept​(Object value)
        Description copied from interface: PropertyConstraint
        accept returns true if the value fulfills the constraint. Manually compare items with the PropertyConstraint. Node: this will ususaly be done for you in an AnnotationType instance Use for implementing accept() on AnnotatoinType
        Specified by:
        accept in interface PropertyConstraint
        value - an Object to check.
        a boolean.
      • subConstraintOf

        public boolean subConstraintOf​(PropertyConstraint subConstraint)
        Description copied from interface: PropertyConstraint

        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, PropertyConstraint.ByClass will infer subConstraintOf by looking at the possible class of all items matching subConstraint.

        Useful 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.
        Specified by:
        subConstraintOf in interface PropertyConstraint
        subConstraint - a PropertyConstraint to check.
        a boolean.