## org.biojava.bio
Class PropertyConstraint.And

    java.lang.Object
      org.biojava.bio.PropertyConstraint.And

All Implemented Interfaces:
  PropertyConstraint

Enclosing interface:
  PropertyConstraint

    public static class PropertyConstraint.And

extends Object
implements PropertyConstraint

A property constraint that accpepts items iff they are accepted by both child constraints. This effectively matches the intersection of the items matched by the two constraints. Use this to combine multiple constraints. You can make one or both of the children And instances if you need a tighter intersection.

Author:
  Matthew Pocock

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.bio.PropertyConstraint
`PropertyConstraint.And, PropertyConstraint.ByAnnotationType, PropertyConstraint.ByClass, PropertyConstraint.Enumeration, PropertyConstraint.ExactValue, PropertyConstraint.Or`

Field Summary

Fields inherited from interface org.biojava.bio.PropertyConstraint
`ANY, NONE`

Constructor Summary
`PropertyConstraint.And(PropertyConstraint c1, PropertyConstraint c2)` Create a new `And` from two child constraints.

Method Summary
`boolean` `accept(Object object)` `accept` returns true if the value fulfills the constraint.
`PropertyConstraint` `getChild1()` Get the first child PropertyConstraint.
`PropertyConstraint` `getChild2()` Get the seccond child PropertyConstraint.
`boolean` `subConstraintOf(PropertyConstraint pc)` `subConstraintOf` returns true if the constraint is a sub-constraint.
`String` `toString()`

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

Constructor Detail

### PropertyConstraint.And

    public PropertyConstraint.And(PropertyConstraint c1,
                                  PropertyConstraint c2)

  Create a new `And` from two child constraints.

  Parameters:
    `c1` - the first child
    `c2` - the seccond child

Method Detail

### getChild1

    public PropertyConstraint getChild1()

  Get the first child PropertyConstraint.

  Returns:
    the first child PropertyConstraint

### getChild2

    public PropertyConstraint getChild2()

  Get the seccond child PropertyConstraint.

  Returns:
    the seccond child PropertyConstraint

### accept

    public boolean accept(Object object)

  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`
  Parameters:
    `object` - an `Object` to check.
  Returns:
    a `boolean`.

### subConstraintOf

    public boolean subConstraintOf(PropertyConstraint pc)

  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`
  Parameters:
    `pc` - a `PropertyConstraint` to check.
  Returns:
    a `boolean`.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`