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.decoration.AbstractContentDecorator;
37 import info.magnolia.jcr.decoration.ContentDecorator;
38 import info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper;
39 import info.magnolia.jcr.decoration.ContentDecoratorWorkspaceWrapper;
40
41 import javax.jcr.Node;
42 import javax.jcr.Workspace;
43
44
45
46
47
48
49
50
51
52
53
54 public class MgnlLogicalWorkspaceNameMappingWorkspaceDecorator extends AbstractContentDecorator {
55
56 private final String logicalWorkspaceName;
57 private final String physicalWorkspaceName;
58
59 public MgnlLogicalWorkspaceNameMappingWorkspaceDecorator(String logicalWorkspaceName, String physicalWorkspaceName) {
60 this.logicalWorkspaceName = logicalWorkspaceName;
61 this.physicalWorkspaceName = physicalWorkspaceName;
62 }
63
64 @Override
65 public Node wrapNode(Node node) {
66 return new MgnlLogicalWorkspaceNameNodeWrapper(node, this);
67 }
68
69 @Override
70 public Workspace wrapWorkspace(Workspace workspace) {
71 return new MgnlLogicalWorkspaceNameMappingWorkspaceWrapper(workspace, this, logicalWorkspaceName, physicalWorkspaceName);
72 }
73
74 @Override
75 public boolean isMultipleWrapEnabled() {
76 return false;
77 }
78
79
80
81
82
83 public static class MgnlLogicalWorkspaceNameNodeWrapper extends ContentDecoratorNodeWrapper<MgnlLogicalWorkspaceNameMappingWorkspaceDecorator> {
84
85 public MgnlLogicalWorkspaceNameNodeWrapper(Node node, MgnlLogicalWorkspaceNameMappingWorkspaceDecorator contentDecorator) {
86 super(node, contentDecorator);
87 }
88 }
89
90
91
92
93 public class MgnlLogicalWorkspaceNameMappingWorkspaceWrapper extends ContentDecoratorWorkspaceWrapper {
94
95 private final String logicalWorkspaceName;
96 private final String physicalWorkspaceName;
97
98 public MgnlLogicalWorkspaceNameMappingWorkspaceWrapper(Workspace workspace, ContentDecorator contentDecorator, String logicalWorkspaceName, String physicalWorkspaceName) {
99 super(workspace, contentDecorator);
100 this.logicalWorkspaceName = logicalWorkspaceName;
101 this.physicalWorkspaceName = physicalWorkspaceName;
102 }
103
104
105
106
107 @Override
108 public String getName() {
109 return logicalWorkspaceName;
110 }
111
112 public String getPhysicalWorkspaceName() {
113 return physicalWorkspaceName;
114 }
115 }
116 }