* @return the first node that match the filters, or {@code null} if the
* selection is the empty set.
*/
@SuppressWarnings("hiding")
public nsIDOMNode get() {
nsIDOMNode root = this.getRoot();
List<nsIDOMNode> candidates = this.getAllChildren(root);
List<UnaryPredicate<nsIDOMNode>> filters = this.getFilters();
for (UnaryPredicate<nsIDOMNode> filter : filters) {
Algorithm.removeIf(candidates, Predicates.not1(filter));
}
nsIDOMNode candidate = (0 != candidates.size()) ? candidates.get(0) : null;
return candidate;
}