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.cms.link;
35
36 import java.util.Collection;
37 import java.util.Iterator;
38
39 import info.magnolia.cms.beans.config.URI2RepositoryManager;
40 import info.magnolia.cms.beans.config.URI2RepositoryMapping;
41 import info.magnolia.cms.i18n.I18nContentSupportFactory;
42 import info.magnolia.context.MgnlContext;
43
44 import org.apache.commons.lang.StringUtils;
45
46
47
48
49
50
51 @Deprecated
52 public class AbsolutePathTransformer{
53
54 boolean addContextPath = true;
55
56 boolean useURI2RepositoryMapping = true;
57
58 boolean useI18N = true;
59
60
61
62
63
64
65
66 public AbsolutePathTransformer(boolean addContextPath, boolean useURI2RepositoryMapping, boolean useI18N) {
67 this.addContextPath = addContextPath;
68 this.useURI2RepositoryMapping = useURI2RepositoryMapping;
69 this.useI18N = useI18N;
70 }
71
72
73
74
75 public String transform(UUIDLink uuidLink) {
76 String linkStr;
77 if(useURI2RepositoryMapping){
78 Collection mappings = getURI2RepositoryManager().getMappings();
79 for (Iterator iter = mappings.iterator(); iter.hasNext();) {
80 URI2RepositoryMapping mapping = (URI2RepositoryMapping) iter.next();
81 if (StringUtils.equals(mapping.getRepository(), uuidLink.getRepository()) && uuidLink.getHandle().startsWith(mapping.getHandlePrefix())) {
82 return mapping.getURI(uuidLink.getHandle());
83 }
84 }
85 return getURI2RepositoryManager().getDefaultMapping().getURI(uuidLink.getHandle());
86 }
87 else{
88 linkStr = getURI2RepositoryManager().getDefaultMapping().getURI(uuidLink.getHandle());
89 }
90 linkStr += getURISuffix(uuidLink);
91 if(useI18N){
92 linkStr = I18nContentSupportFactory.getI18nSupport().toI18NURI(linkStr);
93 }
94 linkStr = prefixLink(linkStr);
95 return linkStr;
96 }
97
98 protected URI2RepositoryManager getURI2RepositoryManager() {
99 return URI2RepositoryManager.getInstance();
100 }
101
102 protected String prefixLink(String linkStr) {
103 if(addContextPath){
104 return MgnlContext.getContextPath() + linkStr;
105 }
106 return linkStr;
107 }
108
109
110
111
112 public String getURISuffix(UUIDLink uuidLink) {
113 String anchor = uuidLink.getAnchor();
114 String parameters = uuidLink.getParameters();
115
116 return "" + (StringUtils.isNotEmpty(anchor)? "#" + anchor : "") +
117 (StringUtils.isNotEmpty(parameters)? "?" + parameters : "");
118
119 }
120
121 public boolean isAddContextPath() {
122 return this.addContextPath;
123 }
124
125
126 public void setAddContextPath(boolean addContextPath) {
127 this.addContextPath = addContextPath;
128 }
129
130
131 public boolean isUseI18N() {
132 return this.useI18N;
133 }
134
135
136 public void setUseI18N(boolean useI18N) {
137 this.useI18N = useI18N;
138 }
139
140
141 public boolean isUseURI2RepositoryMapping() {
142 return this.useURI2RepositoryMapping;
143 }
144
145
146 public void setUseURI2RepositoryMapping(boolean useURI2RepositoryMapping) {
147 this.useURI2RepositoryMapping = useURI2RepositoryMapping;
148 }
149
150 }