*/
public FilteredEventIterator(
SessionImpl session, Iterator<EventState> eventStates,
long timestamp, String userData,
final EventFilter filter, final Set<?> denied, boolean includePersistEvent) {
super(new FilteredRangeIterator(wrapAndAddPersist(eventStates, includePersistEvent), new Predicate() {
public boolean evaluate(Object object) {
try {
EventState state = (EventState) object;
return !denied.contains(state.getTargetId())
&& !filter.blocks(state);