public boolean accept(E candidate) { for (Filter<E> component : components) if (!component.accept(candidate)) return false; return true; }
public boolean accept(E candidate) { for (Filter<E> component : components) if (component.accept(candidate)) return true; return false; }
@Override public boolean accept(E candidate) { return !realFilter.accept(candidate); }
@Override public <C extends E >void visit(C element) { if (filter.accept(element)) matches.add(element); }
@Override public boolean accept(File file) { return (pathFilter == null || pathFilter.accept(file.getAbsolutePath())); }
public static <T> List<T> find(List<T> candidates, Filter<T> filter) { List<T> result = new ArrayList<T>(); for (T candidate : candidates) if (filter.accept(candidate)) result.add(candidate); return result; }
public static <T> List<List<T>> filter(T[] items, Filter<T> ... filters) { List<List<T>> results = new ArrayList<List<T>>(filters.length); for (int i = 0; i < filters.length; i++) results.add(new ArrayList<T>()); for (T item : items) { for (int i = 0; i < filters.length; i++) { Filter<T> filter = filters[i]; if (filter.accept(item)) results.get(i).add(item); } } return results; }
public static <T> SplitResult<T> split(T[] items, Filter<T> filter) { List<T> matches = new ArrayList<T>(); List<T> mismatches = new ArrayList<T>(); for (T item : items) { if (filter.accept(item)) matches.add(item); else mismatches.add(item); } return new SplitResult<T>(matches, mismatches); }
public static <T> T findSingleMatch(Collection<T> candidates, Filter<T> filter) { T result = null; for (T candidate : candidates) if (filter.accept(candidate)) { if (result == null) result = candidate; else throw new ConfigurationError("Found multiple matches: " + candidates); } return result; }
@Override public int nextToken() throws IOException, ParseException { int token; do { token = source.nextToken(); } while (token != -1 && !filter.accept(source)); return token; }
public static <T> SplitResult<T> split(List<T> list, Filter<T> filter) { List<T> matches = new ArrayList<T>(); List<T> mismatches = new ArrayList<T>(); for (T item : list) { if (filter.accept(item)) matches.add(item); else mismatches.add(item); } return new SplitResult<T>(matches, mismatches); }
public static <T extends Named> List<T> find(List<T> list, Filter<String> filter) { List<T> result = new ArrayList<T>(); for (T object : list) if (filter.accept(object.getName())) result.add(object); return result; }
public int nextToken() throws IOException, ParseException { int token; do { token = source.nextToken(); } while (token != -1 && !filter.accept(source)); return token; }
public static Element findFirstAccepted(Filter<Element> filter, Element element) { if (filter.accept(element)) return element; else for (Element child : XMLUtil.getChildElements(element)) { Element candidate = findFirstAccepted(filter, child); if (candidate != null) return candidate; } return null; }
@Override public DataContainer<E> next(DataContainer<E> wrapper) { DataContainer<E> result; do { result = source.next(wrapper); } while (result != null && !filter.accept(result.getData())); return result; }
@Override public boolean hasNext() { if (next != null) return true; while (super.hasNext()) { E tmp = super.next(); if (filter.accept(tmp)) { this.next = tmp; return true; } } return false; }
@Override public DataContainer<E> next(DataContainer<E> wrapper) { DataContainer<E> result; do { result = source.next(wrapper); } while (result != null && !filter.accept(result.getData())); return result; }
@Override public boolean hasPrevious() { if (previous != null) return true; while (super.hasPrevious()) { E tmp = super.previous(); if (filter.accept(tmp)) { this.previous = tmp; return true; } } return false; }
private <T> void log(T node, boolean hasSiblings, TreeModel<T> model, Filter<T> filter) { if (filter != null && !filter.accept(node)) return; LOGGER.info(indent + node); if (!model.isLeaf(node)) { increaseIndent(hasSiblings); int n = model.getChildCount(node); for (int i = 0; i < n; i++) log(model.getChild(node, i), i < n - 1, model, filter); reduceIndent(); } }