1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.services.cms.link;
18
19 import javax.jcr.Node;
20 import javax.jcr.NodeIterator;
21 import javax.jcr.RepositoryException;
22
23 import org.exoplatform.services.log.ExoLogger;
24 import org.exoplatform.services.log.Log;
25
26
27
28
29
30
31
32 public class NodeIteratorLinkAware extends RangeIteratorLinkAware implements NodeIterator {
33
34
35
36
37 private static final Log LOG = ExoLogger.getLogger(NodeIteratorLinkAware.class.getName());
38
39 public NodeIteratorLinkAware(String originalWorkspace, String virtualPath, NodeIterator nodeIterator) {
40 super(originalWorkspace, virtualPath, nodeIterator);
41 }
42
43
44
45
46 public Node nextNode() {
47 Node node = (Node) iterator.next();
48 try {
49 return new NodeLinkAware(originalWorkspace, LinkUtils.createPath(virtualPath, node.getName()
50 + (node.getIndex() > 1 ? "[" + node.getIndex() + "]" : "")), node);
51 } catch (RepositoryException e) {
52 if (LOG.isErrorEnabled()) {
53 LOG.error("Cannot create an instance of NodeLinkAware", e);
54 }
55 }
56 return node;
57 }
58
59
60
61
62 public Object next() {
63 return nextNode();
64 }
65 }