]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.repo/src/org/argeo/slc/repo/NodeIndexerVisitor.java
1 package org
.argeo
.slc
.repo
;
3 import java
.util
.ArrayList
;
6 import javax
.jcr
.ItemVisitor
;
8 import javax
.jcr
.NodeIterator
;
9 import javax
.jcr
.Property
;
10 import javax
.jcr
.RepositoryException
;
13 * Recursively visit a sub tree and apply the list of node indexer on supported
16 public class NodeIndexerVisitor
implements ItemVisitor
{
17 /** order may be important */
18 private List
<NodeIndexer
> nodeIndexers
= new ArrayList
<NodeIndexer
>();
20 public NodeIndexerVisitor() {
23 /** Convenience constructor */
24 public NodeIndexerVisitor(NodeIndexer nodeIndexer
) {
25 nodeIndexers
.add(nodeIndexer
);
28 public NodeIndexerVisitor(List
<NodeIndexer
> nodeIndexers
) {
29 this.nodeIndexers
= nodeIndexers
;
32 public void visit(Node node
) throws RepositoryException
{
33 for (NodeIndexer nodeIndexer
: nodeIndexers
)
34 if (nodeIndexer
.support(node
.getPath()))
35 nodeIndexer
.index(node
);
37 for (NodeIterator it
= node
.getNodes(); it
.hasNext();)
41 public void visit(Property property
) throws RepositoryException
{
44 public void setNodeIndexers(List
<NodeIndexer
> nodeIndexers
) {
45 this.nodeIndexers
= nodeIndexers
;