SiteDefinitionDomainMapper.class
|
1 //
2 // Source code recreated from a .class file by IntelliJ IDEA
3 // (powered by Fernflower decompiler)
4 //
5
6 package info.magnolia.connector.siteimprove.mapper;
7
8 import info.magnolia.module.site.Domain;
9 import info.magnolia.module.site.Site;
10 import info.magnolia.module.site.SiteManager;
11 import java.util.Optional;
12 import javax.inject.Inject;
13 import javax.jcr.Node;
14 import javax.jcr.RepositoryException;
15 import org.apache.commons.collections4.CollectionUtils;
16 import org.apache.commons.lang3.StringUtils;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19
20 public class SiteDefinitionDomainMapper implements SiteImproveMapper {
21 private static final Logger LOG = LoggerFactory.getLogger(SiteDefinitionDomainMapper.class);
22 private final SiteManager siteManager;
23
24 @Inject
25 public SiteDefinitionDomainMapper(SiteManager siteManager) {
26 this.siteManager = siteManager;
27 }
28
29 public Optional<String> getUrl(Node currentPage) throws RepositoryException {
30 String url = null;
31 Site currentSite = this.siteManager.getAssignedSite(currentPage);
32 if (currentSite != null && CollectionUtils.isNotEmpty(currentSite.getDomains())) {
33 StringBuilder urlBuffer = new StringBuilder();
34 urlBuffer.append(this.buildDomainUrl((Domain)currentSite.getDomains().iterator().next()));
35 if (!"/".equals(currentPage.getParent().getPath())) {
36 urlBuffer.append(currentPage.getPath());
37 }
38
39 url = urlBuffer.toString();
40 LOG.debug("SiteImprove: request data for {}", url);
41 } else {
42 LOG.warn("SiteImprove: request data for {}", url);
43 }
44
45 return Optional.ofNullable(url);
46 }
47
48 protected String buildDomainUrl(Domain domain) {
49 StringBuilder url = new StringBuilder();
50 if (StringUtils.isNotEmpty(domain.getProtocol())) {
51 url.append(domain.getProtocol());
52 } else {
53 url.append("http");
54 }
55
56 url.append("://");
57 url.append(domain.getName());
58 if (domain.getPort() != 80) {
59 url.append(":").append(domain.getPort());
60 }
61
62 if (StringUtils.isNotEmpty(domain.getContext())) {
63 if (!domain.getContext().startsWith("/")) {
64 url.append("/");
65 }
66
67 url.append(domain.getContext());
68 }
69
70 return url.toString();
71 }
72
73 protected String getRelativePath(Node node) throws RepositoryException {
74 String path = "";
75 if (!"/".equals(node.getParent().getPath())) {
76 String nodePath = node.getPath();
77 int secondSlash = nodePath.indexOf(47, 1);
78 path = nodePath.substring(secondSlash);
79 }
80
81 return path;
82 }
83 }
84