package neo4j.batchInserter; import java.util.LinkedList; import java.util.List; import org.neo4j.graphdb.index.IndexHits; /** * Walks all nodes of a given type present in the Neo4J database by querying the * index. * */ public class ImportedNodeWalker { private List<ImportedNodeListener> listeners = new LinkedList<ImportedNodeListener>(); String type = "Function"; public void addListener(ImportedNodeListener listener) { listeners.add(listener); } public void setType(String aType) { type = aType; } public void walk() { IndexHits<Long> nodes = Neo4JBatchInserter.retrieveExactFromIndex( "type", type); for (Long nodeId : nodes) { notifyListenersOfNode(nodeId); } } private void notifyListenersOfNode(Long nodeId) { for (ImportedNodeListener listener : listeners) { listener.visitNode(nodeId); } } }