## org.biojava.bio
Class CollectionConstraint.And

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

All Implemented Interfaces:
  CollectionConstraint

Enclosing interface:
  CollectionConstraint

    public static class CollectionConstraint.And

extends Object
implements CollectionConstraint

A collection constraint that accpepts collections 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, Thomas Down

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.bio.CollectionConstraint
`CollectionConstraint.AllValuesIn, CollectionConstraint.And, CollectionConstraint.Contains, CollectionConstraint.Or`

Field Summary

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

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

Method Summary
`boolean` `accept(Object object)` `accept` returns true if the value fulfills the constraint.
`CollectionConstraint` `getChild1()` Get the first child CollectionConstraint.
`CollectionConstraint` `getChild2()` Get the seccond child CollectionConstraint.
`boolean` `subConstraintOf(CollectionConstraint pc)` `subConstraintOf` returns true if the constraint is a sub-constraint.
`String` `toString()`
`boolean` `validateAddValue(Collection oldcoll, Object newvalue)` Return `true` iff the Collection formed by adding `newValue` to `current` would be accepted by this constraint.
`boolean` `validateRemoveValue(Collection oldcoll, Object victim)` Return `true` iff the Collection formed by removing `newValue` from `current` would be accepted by this constraint.

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

Constructor Detail

### CollectionConstraint.And

    public CollectionConstraint.And(CollectionConstraint c1,
                                    CollectionConstraint c2)

  Create a new `And` from two child constraints.

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

Method Detail

### getChild1

    public CollectionConstraint getChild1()

  Get the first child CollectionConstraint.

  Returns:
    the first child CollectionConstraint

### getChild2

    public CollectionConstraint getChild2()

  Get the seccond child CollectionConstraint.

  Returns:
    the seccond child CollectionConstraint

### accept

    public boolean accept(Object object)

  Description copied from interface: `CollectionConstraint`
  `accept` returns true if the value fulfills the constraint.

  Specified by:
    `accept` in interface `CollectionConstraint`
  Parameters:
    `object` - a `Collection` to check.
  Returns:
    true if the values are acceptable powerUser Manually compare items with the CollectionConstraint. Node: this will ususaly be done for you in an AnnotationType instance

### subConstraintOf

    public boolean subConstraintOf(CollectionConstraint pc)

  Description copied from interface: `CollectionConstraint`

  `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.

  Specified by:
    `subConstraintOf` in interface `CollectionConstraint`
  Parameters:
    `pc` - a `CollectionConstraint` to check.
  Returns:
    a `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.

### validateAddValue

    public boolean validateAddValue(Collection oldcoll,
                                    Object newvalue)

  Description copied from interface: `CollectionConstraint`
  Return `true` iff the Collection formed by adding `newValue` to `current` would be accepted by this constraint. Implementations may not assume that `current` is valid.

  Specified by:
    `validateAddValue` in interface `CollectionConstraint`
  Parameters:
    `oldcoll` - a Collection containing the current values
    `newvalue` - the new value to add
  Returns:
    true if adding the new value will result in an acceptable property

### validateRemoveValue

    public boolean validateRemoveValue(Collection oldcoll,
                                       Object victim)

  Description copied from interface: `CollectionConstraint`
  Return `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`.

  Specified by:
    `validateRemoveValue` in interface `CollectionConstraint`
  Parameters:
    `oldcoll` - a Collection containing the current values
    `victim` - the value to remove
  Returns:
    true if removing the victim will result in an acceptable property value set

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`