Skip to content

Instantly share code, notes, and snippets.

@barinek
Created January 31, 2010 00:16
Show Gist options
  • Save barinek/290799 to your computer and use it in GitHub Desktop.
Save barinek/290799 to your computer and use it in GitHub Desktop.
public Set<OutboundTask> add(LinkedHashSet<T> itemsToFilter) {
LinkedHashMultimap<Stream<T>, T> filteredItems = Multimaps.newLinkedHashMultimap();
Set<OutboundTask> outboundTasks = Sets.newHashSet();
for (T filterable : itemsToFilter) {
filterAction(filteredItems, filterable);
filterActor(filteredItems, filterable);
filterTag(filteredItems, filterable);
filterTo(filteredItems, filterable);
filterRegarding(filteredItems, filterable);
filterSource(filteredItems, filterable);
filterKeyword(filteredItems, filterable);
//filterGeo(filteredItems, filterable);
}
for (Stream<T> stream : filteredItems.keySet()) {
final LinkedHashSet<T> items = new LinkedHashSet<T>(filteredItems.get(stream));
stream.add(items);
if (stream.hasOutboundTask()) {
final OutboundTask task = stream.createOutboundTask(items);
outboundTasks.add(task);
}
}
return outboundTasks;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment