com.google.common.collect
Interface Constraint<E>


public interface Constraint<E>

Interface for defining a constraint on the types of elements that are allowed to be added to a Collection. For example, to enforce that a collection contains no null elements, you might say:

  public void checkElement(Object element) {
    if (element == null) {
      throw new NullPointerException();
    }
  }
Then use Constraints.constrainedCollection(java.util.Collection, com.google.common.collect.Constraint) to enforce the constraint. This example is contrived; to check for null use Constraints.NOT_NULL.

In order to be effective, constraints should be deterministic; that is, they should not depend on state that can change (such as external state, random variables, time), and should only depend on the value of the passed-in element. A non-deterministic constraint cannot reliably enforce that all the collection's elements meet the constraint, since the constraint is only enforced when elements are added.

Author:
Mike Bostock
See Also:
Constraints, MapConstraint

Method Summary
 void checkElement(E element)
          Implement this method to throw a suitable RuntimeException if the specified element is illegal.
 String toString()
          Returns a brief human readable description of this constraint, such as "Not null" or "Positive number".
 

Method Detail

checkElement

void checkElement(E element)
Implement this method to throw a suitable RuntimeException if the specified element is illegal. Typically this is either a NullPointerException, an IllegalArgumentException, or a ClassCastException, though a more application-specific exception class may be used as appropriate.


toString

String toString()
Returns a brief human readable description of this constraint, such as "Not null" or "Positive number".

Overrides:
toString in class Object