/plugin-module-codegen-engine/src/main/java/com/atlassian/plugins/codegen/modules/common/servlet/ServletFilterProperties.java

https://bitbucket.org/mmeinhold/amps · Java · 120 lines · 94 code · 22 blank · 4 comment · 4 complexity · 7077ed6534f21899309e53e039a7914b MD5 · raw file

  1. package com.atlassian.plugins.codegen.modules.common.servlet;
  2. import java.util.*;
  3. import com.atlassian.plugins.codegen.modules.BasicClassModuleProperties;
  4. /**
  5. *
  6. */
  7. public class ServletFilterProperties extends BasicClassModuleProperties
  8. {
  9. public static final String LOCATION = "LOCATION";
  10. public static final String WEIGHT = "WEIGHT";
  11. public static final String URL_PATTERN = "URL_PATTERN";
  12. public static final String DISPATCHERS = "DISPATCHERS";
  13. public static final String INIT_PARAMS = "INIT_PARAMS";
  14. public static final List<String> ALLOWED_LOCATIONS = initLocations();
  15. public static final List<String> ALLOWED_DISPATCHERS = initDispatchers();
  16. private static List<String> initLocations()
  17. {
  18. List<String> locations = new ArrayList<String>(4);
  19. locations.add("after-encoding");
  20. locations.add("before-login");
  21. locations.add("before-decoration");
  22. locations.add("before-dispatch");
  23. return Collections.unmodifiableList(locations);
  24. }
  25. private static List<String> initDispatchers()
  26. {
  27. List<String> dispatchers = new ArrayList<String>(4);
  28. dispatchers.add("REQUEST");
  29. dispatchers.add("INCLUDE");
  30. dispatchers.add("FORWARD");
  31. dispatchers.add("ERROR");
  32. return Collections.unmodifiableList(dispatchers);
  33. }
  34. public ServletFilterProperties()
  35. {
  36. this("MyServletFilter");
  37. }
  38. public ServletFilterProperties(String fqClassName)
  39. {
  40. super(fqClassName);
  41. put(DISPATCHERS, new ArrayList<String>());
  42. put(INIT_PARAMS, new HashMap<String, String>());
  43. //sane defaults
  44. setUrlPattern("/*");
  45. setLocation(ALLOWED_LOCATIONS.get(3));
  46. setWeight(100);
  47. }
  48. public void setLocation(String location)
  49. {
  50. setProperty(LOCATION, location);
  51. }
  52. public void setWeight(int weight)
  53. {
  54. setProperty(WEIGHT, Integer.toString(weight));
  55. }
  56. public void setUrlPattern(String pattern)
  57. {
  58. setProperty(URL_PATTERN, pattern);
  59. }
  60. public void setDispatchers(List<String> dispatchers)
  61. {
  62. put(DISPATCHERS, dispatchers);
  63. }
  64. @SuppressWarnings(value = "unchecked")
  65. public void addDispatcher(String dispatcher)
  66. {
  67. List<String> dispatchers = (List<String>) get(DISPATCHERS);
  68. if (dispatchers == null)
  69. {
  70. dispatchers = new ArrayList<String>();
  71. setDispatchers(dispatchers);
  72. }
  73. dispatchers.add(dispatcher);
  74. }
  75. public void setInitParams(Map<String, String> params)
  76. {
  77. put(INIT_PARAMS, params);
  78. }
  79. @SuppressWarnings(value = "unchecked")
  80. public void addInitParam(String name, String value)
  81. {
  82. Map<String, String> params = (Map<String, String>) get(INIT_PARAMS);
  83. if (params == null)
  84. {
  85. params = new HashMap<String, String>();
  86. setInitParams(params);
  87. }
  88. params.put(name, value);
  89. }
  90. public List<String> allowedLocations()
  91. {
  92. return ALLOWED_LOCATIONS;
  93. }
  94. public List<String> allowedDispatchers()
  95. {
  96. return ALLOWED_DISPATCHERS;
  97. }
  98. }