private static <E> ListIterator<E> constrainedListIterator(
      ListIterator<E> listIterator, Constraint<? super E> constraint) {
    return new ConstrainedListIterator<E>(listIterator, constraint);
  }
private static < E > ListIterator < E > constrainedListIterator ( ListIterator < E > listIterator , Constraint < ? super E > constraint ) { return new ConstrainedListIterator < E > ( listIterator , constraint ) ; }
Returns a constrained view of the specified list iterator, using the
specified constraint. Any operations that would add new elements to the
underlying list will be verified by the constraint.

@param listIterator the iterator for which to return a constrained view
@param constraint the constraint for elements in the list
@return a constrained view of the specified iterator