View Javadoc

1   package com.atlassian.plugin.servlet.descriptors;
2   
3   import com.atlassian.plugin.Plugin;
4   import com.atlassian.plugin.PluginParseException;
5   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
6   import com.atlassian.plugin.descriptors.CannotDisable;
7   import com.atlassian.plugin.module.ModuleFactory;
8   import com.atlassian.plugin.util.validation.ValidationPattern;
9   import org.dom4j.Element;
10  
11  import static com.atlassian.plugin.util.validation.ValidationPattern.test;
12  
13  /**
14   * Allows plugin developers to specify init parameters they would like added to the plugin local
15   * {@link javax.servlet.ServletContext}.
16   *
17   * @since 2.1.0
18   */
19  @CannotDisable
20  public class ServletContextParamModuleDescriptor extends AbstractModuleDescriptor<Void>
21  {
22      private String paramName;
23      private String paramValue;
24  
25      public ServletContextParamModuleDescriptor()
26      {
27          super(ModuleFactory.LEGACY_MODULE_FACTORY);
28      }
29  
30      @Override
31      public void init(Plugin plugin, Element element) throws PluginParseException
32      {
33          super.init(plugin, element);
34          
35          paramName = element.elementTextTrim("param-name");
36          paramValue = element.elementTextTrim("param-value");
37      }
38  
39      @Override
40      protected void provideValidationRules(ValidationPattern pattern)
41      {
42          super.provideValidationRules(pattern);
43          pattern.
44                  rule(
45                      test("param-name").withError("Parameter name is required"),
46                      test("param-value").withError("Parameter value is required"));
47      }
48  
49      public String getParamName()
50      {
51          return paramName;
52      }
53  
54      public String getParamValue()
55      {
56          return paramValue;
57      }
58  
59      @Override
60      public Void getModule()
61      {
62          return null;
63      }
64  }