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.decoration;
35
36 import java.util.ArrayList;
37 import java.util.Calendar;
38
39 import javax.jcr.Node;
40 import javax.jcr.RepositoryException;
41 import javax.jcr.version.Version;
42 import javax.jcr.version.VersionHistory;
43
44
45
46
47 public class ContentDecoratorVersionWrapper extends ContentDecoratorNodeWrapper implements Version {
48
49 public ContentDecoratorVersionWrapper(Version version, ContentDecorator contentDecorator) {
50 super(version, contentDecorator);
51 }
52
53 public Version getWrappedVersion() {
54 return (Version) this.wrapped;
55 }
56
57 @Override
58 public void setWrappedNode(Node node) {
59 this.wrapped = node;
60 }
61
62 @Override
63 public VersionHistory getContainingHistory() throws RepositoryException {
64 return getWrappedVersion().getContainingHistory();
65 }
66
67 @Override
68 public Calendar getCreated() throws RepositoryException {
69 return getWrappedVersion().getCreated();
70 }
71
72 @Override
73 public Version getLinearSuccessor() throws RepositoryException {
74 Version linearSuccessor = getWrappedVersion().getLinearSuccessor();
75 return linearSuccessor != null ? wrapVersion(linearSuccessor) : null;
76 }
77
78 @Override
79 public Version[] getSuccessors() throws RepositoryException {
80 return wrapVersions(getWrappedVersion().getSuccessors()) ;
81 }
82
83 @Override
84 public Version getLinearPredecessor() throws RepositoryException {
85 Version linearPredecessor = getWrappedVersion().getLinearPredecessor();
86 return linearPredecessor != null ? wrapVersion(linearPredecessor) : null;
87 }
88
89 @Override
90 public Version[] getPredecessors() throws RepositoryException {
91 return wrapVersions(getWrappedVersion().getPredecessors());
92 }
93
94 @Override
95 public Node getFrozenNode() throws RepositoryException {
96 return wrapNode(getWrappedVersion().getFrozenNode());
97 }
98
99 protected Version[] wrapVersions(Version[] versions) throws RepositoryException{
100 ArrayList<Version> wrappedVersions = new ArrayList<Version>();
101 for (Version version: versions) {
102 Version wrappedVersion = wrapVersion(version);
103 wrappedVersions.add(wrappedVersion);
104 }
105 return wrappedVersions.toArray(new Version[wrappedVersions.size()]);
106 }
107 }