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 void extractFolderFromJar(String jarPath, String directory, File targetDirectory, Filter<String> filenameFilter) throws IOException { LOGGER.debug("extractFolderFromJar({}, {}, {}, {})", new Object[] { jarPath, directory, targetDirectory, filenameFilter}); JarFile jar = new JarFile(URLDecoder.decode(jarPath, "UTF-8")); Enumeration<JarEntry> entries = jar.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement(); String name = entry.getName(); if (name.startsWith(directory) && !directory.equals(name) && (filenameFilter == null || filenameFilter.accept(name))) { String relativeName = name.substring(directory.length()); if (entry.isDirectory()) { File subDir = new File(targetDirectory, relativeName); LOGGER.debug("creating sub directory {}", subDir); subDir.mkdir(); } else { File targetFile = new File(targetDirectory, relativeName); LOGGER.debug("copying file {} to {}", name, targetFile); InputStream in = jar.getInputStream(entry); OutputStream out = new FileOutputStream(targetFile); transfer(in, out); out.close(); in.close(); } } } }
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; }