1
18
19 package io.undertow.servlet.core;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import io.undertow.servlet.api.FilterInfo;
25 import io.undertow.servlet.handlers.ServletPathMatches;
26 import io.undertow.util.CopyOnWriteMap;
27
28
33 public class ManagedFilters {
34
35 private final Map<String, ManagedFilter> managedFilterMap = new CopyOnWriteMap<>();
36 private final DeploymentImpl deployment;
37 private final ServletPathMatches servletPathMatches;
38
39 public ManagedFilters(final DeploymentImpl deployment, final ServletPathMatches servletPathMatches) {
40 this.deployment = deployment;
41 this.servletPathMatches = servletPathMatches;
42 }
43
44 public ManagedFilter addFilter(final FilterInfo filterInfo) {
45 ManagedFilter managedFilter = new ManagedFilter(filterInfo, deployment.getServletContext());
46 managedFilterMap.put(filterInfo.getName(),managedFilter);
47 deployment.addLifecycleObjects(managedFilter);
48 servletPathMatches.invalidate();
49 return managedFilter;
50 }
51
52 public ManagedFilter getManagedFilter(final String name) {
53 return managedFilterMap.get(name);
54 }
55
56 public Map<String, ManagedFilter> getFilters() {
57 return new HashMap<>(managedFilterMap);
58 }
59
60 }
61