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 info.magnolia.link.LinkTransformerManager;
37 import info.magnolia.link.LinkUtil;
38 import info.magnolia.link.LinkException;
39
40 import org.slf4j.Logger;
41 import org.slf4j.LoggerFactory;
42
43
44
45
46
47
48
49 public class LinkResolverImpl implements LinkResolver {
50
51 private static Logger log = LoggerFactory.getLogger(LinkResolverImpl.class);
52
53 private boolean makeBrowserLinksRelative = false;
54
55 private boolean addContextPathToBrowserLinks = false;
56
57 public String parseLinks(String str) {
58 return LinkUtil.convertAbsoluteLinksToUUIDs(str);
59 }
60
61 public String convertToEditorLinks(String str) {
62 try {
63 return LinkUtil.convertLinksFromUUIDPattern(str, LinkTransformerManager.getInstance().getEditorLink());
64 } catch (LinkException e) {
65 return null;
66 }
67 }
68
69 public String convertToBrowserLinks(String str, String currentPath) {
70 if(isMakeBrowserLinksRelative()){
71 return convertToRelativeLinks(str, currentPath);
72 }
73 else{
74 return convertToAbsoluteLinks(str, isAddContextPathToBrowserLinks());
75 }
76 }
77
78 public String convertToAbsoluteLinks(String str, boolean addContextPath) {
79 try {
80 return LinkUtil.convertLinksFromUUIDPattern(str, LinkTransformerManager.getInstance().getAbsolute(addContextPath));
81 } catch (LinkException e) {
82 return null;
83 }
84 }
85
86 public String convertToRelativeLinks(String str, String currentPath) {
87 try {
88 return LinkUtil.convertLinksFromUUIDPattern(str, LinkTransformerManager.getInstance().getRelative(currentPath));
89 } catch (LinkException e) {
90 return null;
91 }
92 }
93
94 public String convertToExternalLinks(String str) {
95 try {
96 return LinkUtil.convertLinksFromUUIDPattern(str, LinkTransformerManager.getInstance().getCompleteUrl());
97 } catch (LinkException e) {
98 return null;
99 }
100 }
101
102 public boolean isAddContextPathToBrowserLinks() {
103 return this.addContextPathToBrowserLinks;
104 }
105
106 public void setAddContextPathToBrowserLinks(boolean addContextPathToBrowserLinks) {
107 this.addContextPathToBrowserLinks = addContextPathToBrowserLinks;
108 }
109
110 public boolean isMakeBrowserLinksRelative() {
111 return this.makeBrowserLinksRelative;
112 }
113
114 public void setMakeBrowserLinksRelative(boolean makeBrowserLinksRelative) {
115 this.makeBrowserLinksRelative = makeBrowserLinksRelative;
116 }
117
118 }