Example usage for org.apache.commons.collections4 IteratorUtils EMPTY_ITERATOR

List of usage examples for org.apache.commons.collections4 IteratorUtils EMPTY_ITERATOR

Introduction

In this page you can find the example usage for org.apache.commons.collections4 IteratorUtils EMPTY_ITERATOR.

Prototype

ResettableIterator EMPTY_ITERATOR

To view the source code for org.apache.commons.collections4 IteratorUtils EMPTY_ITERATOR.

Click Source Link

Document

An iterator over no elements.

Usage

From source file:com.link_intersystems.util.graph.GraphFacade.java

/**
 * Creates a predicated {@link Node} iterator that iterates the {@link Node}
 * s per Predicate that is specified using the {@link NodeIterateStrategy}.
 * <p>// ww  w  . ja  va  2 s . c om
 * Take the following node structure for example
 *
 * <pre>
 *                   A
 *      +------------+------------+
 *      B            C            D
 * +----+----+       |        +---+------------+
 * E    F    G       H        I   J            K
 *                                      +------+------+
 *                                      L      M      N
 * </pre>
 *
 * If we assume that we have 3 {@link Predicate}s
 * <ul>
 * <li>The 1. {@link Predicate} matches {@link Node}s A,C,H,D,K</li>
 * <li>The 2. {@link Predicate} matches {@link Node}s A,B,E,F</li>
 * <li>The 3. {@link Predicate} matches {@link Node}s D,J,M,N</li>
 * </ul>
 * and we construct a per predicated node iterator using
 *
 * <pre>
 * {@link GraphFacade#perPredicateNodeIterator(NodeIterateStrategy, Node, Predicate...) GraphFacade.perPredicatedNodeIterator(BREADTH_FIRST, startNodeA, pred1, pred2, pred3)};
 * </pre>
 *
 * The resulting iterator will iterate the node structure using a breadth
 * first strategy for every {@link Predicate} starting at startNodeA. <br/>
 * The result will be:
 *
 * <pre>
 * breadth first  breadth first   breadth first
 *   matching       matching       matching
 *    pred1          pred2           pred3
 * +-----------+   +-------+       +-------+
 *   A C D H K      A B E F         D J M N
 *
 * iterate order -->
 * </pre>
 *
 * </p>
 *
 * @param nodeIterateStrategy
 * @param startNode
 * @param nodeIterateOrderPredicates
 * @return
 */
@SuppressWarnings("unchecked")
public static Iterator<Node> perPredicateNodeIterator(NodeIterateStrategy nodeIterateStrategy, Node startNode,
        Predicate... nodeIterateOrderPredicates) {
    Iterator<Node> iterator = IteratorUtils.EMPTY_ITERATOR;
    for (int i = 0; i < nodeIterateOrderPredicates.length; i++) {
        Predicate predicate = nodeIterateOrderPredicates[i];
        Iterator<Node> nodeStrategyIterator = null;
        switch (nodeIterateStrategy) {
        case BREADTH_FIRST:
            nodeStrategyIterator = new BreadthFirstNodeIterator(startNode);
            break;
        case DEPTH_FIRST:
            nodeStrategyIterator = new DepthFirstNodeIterator(startNode);
            break;
        }
        Iterator<Node> predicateFilterIterator = IteratorUtils.filteredIterator(nodeStrategyIterator,
                predicate);
        iterator = IteratorUtils.chainedIterator(iterator, predicateFilterIterator);
    }
    return iterator;
}

From source file:de.micromata.genome.gwiki.page.gspt.ServletStandalonePageContext.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override/*from  w  w w . java  2 s  . c o  m*/
public Enumeration getAttributeNamesInScope(int scope) {
    switch (scope) {
    case PageContext.REQUEST_SCOPE:
        return request.getAttributeNames();
    case PageContext.SESSION_SCOPE:
        if (session != null) {
            return session.getAttributeNames();
        }
        return IteratorUtils.asEnumeration(IteratorUtils.EMPTY_ITERATOR);
    case PageContext.APPLICATION_SCOPE:
        return servletCtx.getAttributeNames();
    default:
        return IteratorUtils.asEnumeration(pageAttributes.keySet().iterator());
    }

}