@SuppressWarnings("unchecked")
	@Override 
	public Object run() {
		List<Map<String, Object>> filtered = new ArrayList<Map<String, Object>>();
		if(source().containsKey(occurrenceField)) {
			List<Map<String, Object>> occurrences = (List<Map<String, Object>>)source().get(occurrenceField);
			addParsedOccurrenceFields(occurrences);
			Collections.sort(occurrences, new OccurrenceComparator());
			
			boolean isDone = false;
			Long startDate = null;
			for(Map<String, Object> occurrence : occurrences) {
				startDate = (Long)occurrence.get(OccurrenceComparator.PARSED_FIELD);
				if(startDate != null) {
					for(int i=0; i<intervals.size(); i++) {
						UnixTimeInterval interval = intervals.get(i);
						if(interval.contains(startDate)) {
							occurrence.remove(OccurrenceComparator.PARSED_FIELD);
							filtered.add(occurrence);
							break;
						} else if(i == intervals.size() - 1 && startDate > interval.getStart()) {
							isDone = true;
							break;
						}
					}
				}
				if(isDone) {
					break;
				}
			}
		}
		return filtered;
	}