1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.jcr.wrapper;
35
36 import info.magnolia.jcr.iterator.WrappingNodeIterator;
37
38 import javax.jcr.ItemExistsException;
39 import javax.jcr.Node;
40 import javax.jcr.NodeIterator;
41 import javax.jcr.PathNotFoundException;
42 import javax.jcr.RepositoryException;
43 import javax.jcr.lock.LockException;
44 import javax.jcr.nodetype.ConstraintViolationException;
45 import javax.jcr.nodetype.NoSuchNodeTypeException;
46 import javax.jcr.version.VersionException;
47
48
49
50
51
52
53
54 @Deprecated
55 public abstract class ChildWrappingNodeWrapper extends DelegateNodeWrapper implements NodeWrapperFactory {
56
57 public ChildWrappingNodeWrapper(Node wrapped) {
58 super(wrapped);
59 }
60
61 @Override
62 public Node getNode(String relPath) throws PathNotFoundException, RepositoryException {
63 return wrapNode(super.getNode(relPath));
64 }
65
66 @Override
67 public Node addNode(String relPath) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, RepositoryException {
68 return wrapNode(super.addNode(relPath));
69 }
70
71 @Override
72 public Node addNode(String relPath, String primaryNodeTypeName) throws ItemExistsException, PathNotFoundException, NoSuchNodeTypeException, LockException, VersionException, ConstraintViolationException, RepositoryException {
73 return wrapNode(super.addNode(relPath, primaryNodeTypeName));
74 }
75
76 @Override
77 public NodeIterator getNodes() throws RepositoryException {
78 return wrapNodeIterator(super.getNodes());
79 }
80
81 @Override
82 public NodeIterator getNodes(String namePattern) throws RepositoryException {
83 return wrapNodeIterator(super.getNodes(namePattern));
84 }
85
86 @Override
87 public NodeIterator getNodes(String[] nameGlobs) throws RepositoryException {
88 return wrapNodeIterator(super.getNodes(nameGlobs));
89 }
90
91 @Override
92 public Node wrapNode(Node node) {
93 try {
94 ChildWrappingNodeWrapper clone = (ChildWrappingNodeWrapper) super.clone();
95 clone.wrapped = node;
96 return clone;
97 } catch (CloneNotSupportedException e) {
98 throw new RuntimeException("Unable to clone node wrapper [" + getClass() + "]", e);
99 }
100 }
101
102 protected NodeIterator wrapNodeIterator(NodeIterator nodeIterator) {
103 return new WrappingNodeIterator(nodeIterator, this);
104 }
105 }