+++ /dev/null
-package org.argeo.slc.repo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.ItemVisitor;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-/**
- * Recursively visit a sub tree and apply the list of node indexer on supported
- * nodes.
- */
-public class NodeIndexerVisitor implements ItemVisitor {
- /** order may be important */
- private List<NodeIndexer> nodeIndexers = new ArrayList<NodeIndexer>();
-
- public NodeIndexerVisitor() {
- }
-
- /** Convenience constructor */
- public NodeIndexerVisitor(NodeIndexer nodeIndexer) {
- nodeIndexers.add(nodeIndexer);
- }
-
- public NodeIndexerVisitor(List<NodeIndexer> nodeIndexers) {
- this.nodeIndexers = nodeIndexers;
- }
-
- public void visit(Node node) throws RepositoryException {
- for (NodeIndexer nodeIndexer : nodeIndexers)
- if (nodeIndexer.support(node.getPath()))
- nodeIndexer.index(node);
-
- for (NodeIterator it = node.getNodes(); it.hasNext();)
- visit(it.nextNode());
- }
-
- public void visit(Property property) throws RepositoryException {
- }
-
- public void setNodeIndexers(List<NodeIndexer> nodeIndexers) {
- this.nodeIndexers = nodeIndexers;
- }
-
-}