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