1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package io.wcm.handler.mediasource.ngdm.impl.metadata;
21
22 import static io.wcm.handler.mediasource.ngdm.impl.NextGenDynamicMediaConfigService.PLACEHOLDER_ASSET_ID;
23
24 import org.apache.commons.lang3.StringUtils;
25 import org.jetbrains.annotations.NotNull;
26 import org.jetbrains.annotations.Nullable;
27
28 import io.wcm.handler.mediasource.ngdm.impl.NextGenDynamicMediaConfigService;
29 import io.wcm.handler.mediasource.ngdm.impl.NextGenDynamicMediaReference;
30
31
32
33
34
35
36
37
38 final class NextGenDynamicMediaMetadataUrlBuilder {
39
40 private final NextGenDynamicMediaConfigService config;
41
42
43
44
45 NextGenDynamicMediaMetadataUrlBuilder(@NotNull NextGenDynamicMediaConfigService config) {
46 this.config = config;
47 }
48
49
50
51
52
53 public @Nullable String build(@NotNull NextGenDynamicMediaReference reference) {
54
55
56 String repositoryId = config.getRepositoryId();
57 String metadataPath = config.getAssetMetadataPath();
58 if (StringUtils.isAnyEmpty(repositoryId, metadataPath)) {
59 return null;
60 }
61
62
63 metadataPath = StringUtils.replace(metadataPath, PLACEHOLDER_ASSET_ID, reference.getAssetId());
64
65
66 StringBuilder url = new StringBuilder();
67 if (StringUtils.startsWith(repositoryId, "localhost:")) {
68
69 url.append("http");
70 }
71 else {
72 url.append("https");
73 }
74 url.append("://")
75 .append(repositoryId)
76 .append(metadataPath);
77 return url.toString();
78 }
79
80 }