}
private void addFilterMappingsGBeans(EARContext earContext, EARContext moduleContext, AbstractName moduleName, WebAppType webApp, AbstractName previous) throws GBeanAlreadyExistsException {
FilterMappingType[] filterMappingArray = webApp.getFilterMappingArray();
for (int i = 0; i < filterMappingArray.length; i++) {
FilterMappingType filterMappingType = filterMappingArray[i];
String filterName = filterMappingType.getFilterName().getStringValue().trim();
GBeanData filterMappingData = new GBeanData(JettyFilterMapping.GBEAN_INFO);
if (previous != null) {
filterMappingData.addDependency(previous);
}
filterMappingData.setReferencePattern("JettyServletRegistration", moduleName);
AbstractName filterAbstractName = earContext.getNaming().createChildName(moduleName, filterName, NameFactory.WEB_FILTER);
AbstractName filterMappingName = null;
if (filterMappingType.sizeOfUrlPatternArray() > 0) {
String[] urlPatterns = new String[filterMappingType.sizeOfUrlPatternArray()];
for (int j = 0; j < urlPatterns.length; j++) {
urlPatterns[j] = filterMappingType.getUrlPatternArray(j).getStringValue().trim();
}
filterMappingData.setAttribute("urlPatterns", urlPatterns);
filterMappingName = earContext.getNaming().createChildName(filterAbstractName, ObjectName.quote(Arrays.deepToString(urlPatterns)), NameFactory.URL_WEB_FILTER_MAPPING);
}
if (filterMappingType.sizeOfServletNameArray() > 0) {
Set servletNameSet = new HashSet();
for (int j = 0; j < filterMappingType.sizeOfServletNameArray(); j++) {
String servletName = filterMappingType.getServletNameArray(j).getStringValue().trim();
AbstractName abstractServletName = earContext.getNaming().createChildName(moduleName, servletName, NameFactory.SERVLET);
servletNameSet.add(abstractServletName);
filterMappingData.addDependency(abstractServletName);
}
filterMappingData.setReferencePatterns("Servlets", servletNameSet);
filterMappingName = earContext.getNaming().createChildName(filterAbstractName, ObjectName.quote(Arrays.deepToString(servletNameSet.toArray())), NameFactory.SERVLET_WEB_FILTER_MAPPING);
}
filterMappingData.setAbstractName(filterMappingName);
previous = filterMappingName;
boolean request = filterMappingType.getDispatcherArray().length == 0;
boolean forward = false;
boolean include = false;
boolean error = false;
for (int j = 0; j < filterMappingType.getDispatcherArray().length; j++) {
DispatcherType dispatcherType = filterMappingType.getDispatcherArray()[j];
if (dispatcherType.getStringValue().equals("REQUEST")) {
request = true;
} else if (dispatcherType.getStringValue().equals("FORWARD")) {
forward = true;
} else if (dispatcherType.getStringValue().equals("INCLUDE")) {