1 package com.atlassian.plugin.webresource;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4 import com.atlassian.plugin.PluginInformation;
5
6
7
8
9
10
11 public class WebResourceUrlProviderImpl implements WebResourceUrlProvider
12 {
13 static final String STATIC_RESOURCE_PREFIX = "s";
14 static final String STATIC_RESOURCE_SUFFIX = "_";
15
16 private final WebResourceIntegration webResourceIntegration;
17
18 public WebResourceUrlProviderImpl(WebResourceIntegration webResourceIntegration)
19 {
20 this.webResourceIntegration = webResourceIntegration;
21 }
22
23 public String getStaticResourcePrefix(UrlMode urlMode)
24 {
25
26
27 String lang = webResourceIntegration.getStaticResourceLocale();
28 return webResourceIntegration.getBaseUrl(urlMode) + "/" + STATIC_RESOURCE_PREFIX + "/" +
29 (lang != null ? lang + "/" : "") +
30 webResourceIntegration.getSystemBuildNumber() + "/" + webResourceIntegration.getSystemCounter() + "/" + STATIC_RESOURCE_SUFFIX;
31 }
32
33 public String getStaticResourcePrefix(String resourceCounter, UrlMode urlMode)
34 {
35
36
37 String lang = webResourceIntegration.getStaticResourceLocale();
38 return webResourceIntegration.getBaseUrl(urlMode) + "/" + STATIC_RESOURCE_PREFIX + "/" +
39 (lang != null ? lang + "/" : "") +
40 webResourceIntegration.getSystemBuildNumber() + "/" + webResourceIntegration.getSystemCounter() + "/" + resourceCounter + "/" + STATIC_RESOURCE_SUFFIX;
41 }
42
43 public String getStaticPluginResourceUrl(final String moduleCompleteKey, final String resourceName, final UrlMode urlMode)
44 {
45 final ModuleDescriptor<?> moduleDescriptor = webResourceIntegration.getPluginAccessor().getEnabledPluginModule(moduleCompleteKey);
46 if (moduleDescriptor == null)
47 {
48 return null;
49 }
50
51 return getStaticPluginResourceUrl(moduleDescriptor, resourceName, urlMode);
52 }
53
54 public String getStaticPluginResourceUrl(ModuleDescriptor moduleDescriptor, String resourceName, UrlMode urlMode)
55 {
56 PluginInformation pluginInfo = moduleDescriptor.getPlugin().getPluginInformation();
57 String pluginVersion = pluginInfo != null ? pluginInfo.getVersion() : "unknown";
58
59
60 final String staticUrlPrefix = getStaticResourcePrefix(pluginVersion, urlMode);
61
62 return staticUrlPrefix + getResourceUrl(moduleDescriptor.getCompleteKey(), resourceName);
63 }
64
65 public String getResourceUrl(final String moduleCompleteKey, final String resourceName)
66 {
67 return new SinglePluginResource(resourceName, moduleCompleteKey, false).getUrl();
68 }
69
70 public String getBaseUrl()
71 {
72 return webResourceIntegration.getBaseUrl();
73 }
74
75 public String getBaseUrl(UrlMode urlMode)
76 {
77 return webResourceIntegration.getBaseUrl(urlMode);
78 }
79 }