code: protected boolean isMatchingEvent(SearchCriteria criteria, Event event) {
  		boolean match = false;
  
  		User user = criteria.getUser();
  		DetectionPoint detectionPoint = criteria.getDetectionPoint();
  		Rule rule = criteria.getRule();
  		Collection<String> detectionSystemIds = criteria.getDetectionSystemIds();
  		DateTime earliest = DateUtils.fromString(criteria.getEarliest());
  
  		// check user match if user specified
  		boolean userMatch = (user != null) ? user.equals(event.getUser()) : true;
  
  		// check detection system match if detection systems specified
  		boolean detectionSystemMatch = (detectionSystemIds != null && detectionSystemIds.size() > 0) ?
  				detectionSystemIds.contains(event.getDetectionSystem().getDetectionSystemId()) : true;
  
  		// check detection point match if detection point specified
  		boolean detectionPointMatch = (detectionPoint != null) ?
  				detectionPoint.typeAndThresholdMatches(event.getDetectionPoint()) : true;
  
  		// check rule match if rule specified
  		boolean ruleMatch = (rule != null) ?
  				rule.typeAndThresholdContainsDetectionPoint(event.getDetectionPoint()) : true;
  
  		DateTime eventTimestamp = DateUtils.fromString(event.getTimestamp());
  
  		boolean earliestMatch = (earliest != null) ?
  				(earliest.isBefore(eventTimestamp) || earliest.isEqual(eventTimestamp))
  				: true;
  
  		if (userMatch && detectionSystemMatch && detectionPointMatch && ruleMatch && earliestMatch) {
  			match = true;
  		}
  
  		return match;
  	}
docs: A finder for Event objects in the EventStore
  
  @param criteria the {@link org.owasp.appsensor.core.criteria.SearchCriteria} object to search by
  @param event the {@link Event} object to match on
  @return true or false depending on the matching of the search criteria to the event