public boolean matchesList(List<?> events) {
Iterator<?> eventIterator = events.iterator();
Iterator<Matcher<?>> matcherIterator = getMatchers().iterator();
while (eventIterator.hasNext() && matcherIterator.hasNext()) {
Matcher matcher = matcherIterator.next();
if (!matcher.matches(eventIterator.next())) {
reportFailed(matcher);
return false;
}
}
return matchRemainder(matcherIterator);