1 package com.atlassian.plugin.servlet.descriptors;
2
3 import com.atlassian.plugin.Plugin;
4 import com.atlassian.plugin.servlet.PluginBuilder;
5
6 public class ServletContextParamDescriptorBuilder
7 {
8 private Plugin plugin = new PluginBuilder().build();
9 private String key = "test.servlet.context.param";
10 private String paramName;
11 private String paramValue;
12
13 public ServletContextParamDescriptorBuilder with(Plugin plugin)
14 {
15 this.plugin = plugin;
16 return this;
17 }
18
19 public ServletContextParamDescriptorBuilder withKey(String key)
20 {
21 this.key = key;
22 return this;
23 }
24
25 public ServletContextParamDescriptorBuilder withParam(String name, String value)
26 {
27 paramName = name;
28 paramValue = value;
29 return this;
30 }
31
32 public ServletContextParamModuleDescriptor build()
33 {
34 ModuleDescriptor d = new ModuleDescriptor(plugin, key, paramName, paramValue);
35 plugin.addModuleDescriptor(d);
36 return d;
37 }
38
39 private static final class ModuleDescriptor extends ServletContextParamModuleDescriptor
40 {
41 final String key;
42 final String name;
43 final String value;
44
45 public ModuleDescriptor(
46 Plugin plugin,
47 String key,
48 String name,
49 String value)
50 {
51 this.plugin = plugin;
52 this.key = key;
53 this.name = name;
54 this.value = value;
55 }
56
57 @Override
58 public Plugin getPlugin()
59 {
60 return plugin;
61 }
62
63 @Override
64 public String getCompleteKey()
65 {
66 return getPluginKey() + ":" + key;
67 }
68
69 @Override
70 public String getKey()
71 {
72 return key;
73 }
74
75 @Override
76 public String getParamName()
77 {
78 return name;
79 }
80
81 @Override
82 public String getParamValue()
83 {
84 return value;
85 }
86 }
87 }