org.apache.commons.collections4.iterators.FilterIterator Java Examples
The following examples show how to use
org.apache.commons.collections4.iterators.FilterIterator.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: children.java From commerce-cif-connector with Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") @Override public Iterator<Resource> listChildren() { return new TransformIterator(new FilterIterator(super.listChildren(), predicate), new Transformer() { public Object transform(Object o) { return new PredicatedResourceWrapper((Resource) o, predicate); } }); }
Example #2
Source File: BCELBenchmark.java From commons-bcel with Apache License 2.0 | 5 votes |
private Iterable<JarEntry> getClasses(JarFile jar) { return new IteratorIterable<>(new FilterIterator<>(new EnumerationIterator<>(jar.entries()), new Predicate<JarEntry>() { @Override public boolean evaluate(JarEntry entry) { return entry.getName().endsWith(".class"); } })); }
Example #3
Source File: children.java From commerce-cif-connector with Apache License 2.0 | 4 votes |
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response){ final SlingScriptHelper sling = getScriptHelper(request); final ExpressionHelper ex = new ExpressionHelper(sling.getService(ExpressionResolver.class), request); final Config dsCfg = new Config(request.getResource().getChild(Config.DATASOURCE)); final CommerceBasePathsService cbps = sling.getService(CommerceBasePathsService.class); final String query = ex.getString(dsCfg.get("query", String.class)); final String parentPath; final String searchName; final String rootPath = ex.getString(dsCfg.get("rootPath", cbps.getProductsBasePath())); if (query != null) { final int slashIndex = query.lastIndexOf('/'); if (slashIndex < 0) { parentPath = rootPath; searchName = query.toLowerCase(); } else if (!query.startsWith(rootPath)) { parentPath = rootPath; searchName = null; } else if (slashIndex == query.length() - 1) { parentPath = query; searchName = null; } else { parentPath = query.substring(0, slashIndex + 1); searchName = query.substring(slashIndex + 1).toLowerCase(); } } else { parentPath = ex.getString(dsCfg.get("path", String.class)); searchName = null; } final Resource parent = request.getResourceResolver().getResource(parentPath); final DataSource ds; if (parent == null) { ds = EmptyDataSource.instance(); } else { final Integer offset = ex.get(dsCfg.get("offset", String.class), Integer.class); final Integer limit = ex.get(dsCfg.get("limit", String.class), Integer.class); final String itemRT = dsCfg.get("itemResourceType", String.class); final String filter = ex.getString(dsCfg.get("filter", String.class)); final Collection<Predicate<Resource>> predicates = new ArrayList<>(2); predicates.add(createPredicate(filter)); if (searchName != null) { final Pattern searchNamePattern = Pattern.compile(Pattern.quote(searchName), Pattern.CASE_INSENSITIVE); predicates.add(resource -> searchNamePattern.matcher(resource.getName()).lookingAt()); } final Predicate predicate = PredicateUtils.allPredicate(predicates); final Transformer transformer = createTransformer(itemRT, predicate); final List<Resource> list; if (FILTER_CATEGORY.equals(filter)) { class CategoryFinder extends AbstractResourceVisitor { private CategoryPredicate categoryPredicate = new CategoryPredicate(); private List<Resource> categories = new ArrayList<Resource>(); @Override protected void visit(Resource res) { if (categoryPredicate.evaluate(res)) { categories.add(res); } } }; CategoryFinder categoryFinder = new CategoryFinder(); categoryFinder.accept(parent); list = IteratorUtils.toList(new FilterIterator(categoryFinder.categories.iterator(), predicate)); } else { list =IteratorUtils.toList(new FilterIterator(parent.listChildren(), predicate)); } //force reloading the children of the root node to hit the virtual resource provider if (rootPath.equals(parentPath)) { for (int i = 0; i < list.size(); i++) { list.set(i, request.getResourceResolver().getResource(list.get(i).getPath())); } } @SuppressWarnings("unchecked") DataSource datasource = new AbstractDataSource() { public Iterator<Resource> iterator() { Collections.sort(list, Comparator.comparing(Resource::getName)); return new TransformIterator(new PagingIterator<>(list.iterator(), offset, limit), transformer); } }; ds = datasource; } request.setAttribute(DataSource.class.getName(), ds); }
Example #4
Source File: AbstractConcordanceWalker.java From gatk-protected with BSD 3-Clause "New" or "Revised" License | 4 votes |
private Spliterator<TruthVersusEval> getSpliteratorForDrivingVariants() { final Iterator<VariantContext> truthIterator = new FilterIterator<>(truthVariants.iterator(), makeTruthVariantFilter()); final Iterator<VariantContext> evalIterator = new FilterIterator<>(evalVariants.iterator(), makeEvalVariantFilter()); return new ConcordanceIterator(truthIterator, evalIterator).spliterator(); }
Example #5
Source File: AbstractConcordanceWalker.java From gatk with BSD 3-Clause "New" or "Revised" License | 4 votes |
private Spliterator<TruthVersusEval> getSpliteratorForDrivingVariants() { final Iterator<VariantContext> truthIterator = new FilterIterator<>(truthVariants.iterator(), makeTruthVariantFilter()); final Iterator<VariantContext> evalIterator = new FilterIterator<>(evalVariants.iterator(), makeEvalVariantFilter()); return new ConcordanceIterator(truthIterator, evalIterator).spliterator(); }