package org.ops.pax.web.spi;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.ops4j.pax.web.descriptor.gen.ErrorPageType;
import org.ops4j.pax.web.descriptor.gen.FilterMappingType;
import org.ops4j.pax.web.descriptor.gen.FilterType;
import org.ops4j.pax.web.descriptor.gen.JspConfigType;
import org.ops4j.pax.web.descriptor.gen.ListenerType;
import org.ops4j.pax.web.descriptor.gen.LoginConfigType;
import org.ops4j.pax.web.descriptor.gen.MimeMappingType;
import org.ops4j.pax.web.descriptor.gen.ParamValueType;
import org.ops4j.pax.web.descriptor.gen.SecurityConstraintType;
import org.ops4j.pax.web.descriptor.gen.SecurityRoleType;
import org.ops4j.pax.web.descriptor.gen.ServletMappingType;
import org.ops4j.pax.web.descriptor.gen.ServletType;
import org.ops4j.pax.web.descriptor.gen.SessionConfigType;
import org.ops4j.pax.web.descriptor.gen.WebAppType;
import org.ops4j.pax.web.descriptor.gen.WelcomeFileListType;
public class WebAppModel {
private WebAppType webApp;
private List<ParamValueType> contextParams = new ArrayList<>();
private List<FilterType> filters = new ArrayList<>();
private List<FilterMappingType> filterMappings = new ArrayList<>();
private List<ListenerType> listeners = new ArrayList<>();
private List<ServletType> servlets = new ArrayList<>();
private List<ServletMappingType> servletMappings = new ArrayList<>();
private SessionConfigType sessionConfig;
private List<MimeMappingType> mimeMappings = new ArrayList<>();
private WelcomeFileListType welcomeFileList;
private List<ErrorPageType> errorPages = new ArrayList<>();
private JspConfigType jspConfig;
private List<SecurityConstraintType> securityConstraints = new ArrayList<>();
private LoginConfigType loginConfig;
private List<SecurityRoleType> securityRoles = new ArrayList<>();
private Map<String, FilterMappingType> filterMappingMap = new HashMap<>();
public WebAppModel() {
}
public WebAppModel(WebAppType webApp) {
this.webApp = webApp;
}
/**
* @return the webApp
*/
public WebAppType getWebApp() {
return webApp;
}
/**
* @param webApp
* the webApp to set
*/
public void setWebApp(WebAppType webApp) {
this.webApp = webApp;
}
/**
* @return the contextParams
*/
public List<ParamValueType> getContextParams() {
return contextParams;
}
/**
* @param contextParams
* the contextParams to set
*/
public void setContextParams(List<ParamValueType> contextParams) {
this.contextParams = contextParams;
}
/**
* @return the filters
*/
public List<FilterType> getFilters() {
return filters;
}
/**
* @param filters
* the filters to set
*/
public void setFilters(List<FilterType> filters) {
this.filters = filters;
}
/**
* @return the filterMappings
*/
public List<FilterMappingType> getFilterMappings() {
return filterMappings;
}
/**
* @param filterMappings
* the filterMappings to set
*/
public void setFilterMappings(List<FilterMappingType> filterMappings) {
this.filterMappings = filterMappings;
}
/**
* @return the listeners
*/
public List<ListenerType> getListeners() {
return listeners;
}
/**
* @param listeners
* the listeners to set
*/
public void setListeners(List<ListenerType> listeners) {
this.listeners = listeners;
}
/**
* @return the servlets
*/
public List<ServletType> getServlets() {
return servlets;
}
/**
* @param servlets
* the servlets to set
*/
public void setServlets(List<ServletType> servlets) {
this.servlets = servlets;
}
/**
* @return the servletMappings
*/
public List<ServletMappingType> getServletMappings() {
return servletMappings;
}
/**
* @param servletMappings
* the servletMappings to set
*/
public void setServletMappings(List<ServletMappingType> servletMappings) {
this.servletMappings = servletMappings;
}
/**
* @return the sessionConfig
*/
public SessionConfigType getSessionConfig() {
return sessionConfig;
}
/**
* @param sessionConfig
* the sessionConfig to set
*/
public void setSessionConfig(SessionConfigType sessionConfig) {
this.sessionConfig = sessionConfig;
}
/**
* @return the mimeMappings
*/
public List<MimeMappingType> getMimeMappings() {
return mimeMappings;
}
/**
* @param mimeMappings
* the mimeMappings to set
*/
public void setMimeMappings(List<MimeMappingType> mimeMappings) {
this.mimeMappings = mimeMappings;
}
/**
* @return the welcomeFileList
*/
public WelcomeFileListType getWelcomeFileList() {
return welcomeFileList;
}
/**
* @param welcomeFileList
* the welcomeFileList to set
*/
public void setWelcomeFileList(WelcomeFileListType welcomeFileList) {
this.welcomeFileList = welcomeFileList;
}
/**
* @return the errorPages
*/
public List<ErrorPageType> getErrorPages() {
return errorPages;
}
/**
* @param errorPages
* the errorPages to set
*/
public void setErrorPages(List<ErrorPageType> errorPages) {
this.errorPages = errorPages;
}
/**
* @return the jspConfig
*/
public JspConfigType getJspConfig() {
return jspConfig;
}
/**
* @param jspConfig
* the jspConfig to set
*/
public void setJspConfig(JspConfigType jspConfig) {
this.jspConfig = jspConfig;
}
/**
* @return the securityConstraints
*/
public List<SecurityConstraintType> getSecurityConstraints() {
return securityConstraints;
}
/**
* @param securityConstraints
* the securityConstraints to set
*/
public void setSecurityConstraints(List<SecurityConstraintType> securityConstraints) {
this.securityConstraints = securityConstraints;
}
/**
* @return the loginConfig
*/
public LoginConfigType getLoginConfig() {
return loginConfig;
}
/**
* @param loginConfig
* the loginConfig to set
*/
public void setLoginConfig(LoginConfigType loginConfig) {
this.loginConfig = loginConfig;
}
/**
* @return the securityRoles
*/
public List<SecurityRoleType> getSecurityRoles() {
return securityRoles;
}
/**
* @param securityRoles
* the securityRoles to set
*/
public void setSecurityRoles(List<SecurityRoleType> securityRoles) {
this.securityRoles = securityRoles;
}
public void putFilterMapping(String filterName, FilterMappingType filterMapping) {
filterMappingMap.put(filterName, filterMapping);
}
public FilterMappingType getFilterMapping(String filterName) {
return filterMappingMap.get(filterName);
}
public ServletType findServlet(String servletName) {
for (ServletType servlet : servlets) {
if (servlet.getServletName().getValue().equals(servletName)) {
return servlet;
}
}
return null;
}
public boolean hasServletMapping(String servletName) {
for (ServletMappingType servletMapping : servletMappings) {
if (servletMapping.getServletName().getValue().equals(servletName)) {
return true;
}
}
return false;
}
public FilterType findFilter(String filterName) {
for (FilterType filter : filters) {
if (filter.getFilterName().getValue().endsWith(filterName)) {
return filter;
}
}
return null;
}
public boolean hasFilterMapping(String filterName) {
for (FilterMappingType filterMapping : filterMappings) {
if (filterMapping.getFilterName().getValue().equals(filterName)) {
return true;
}
}
return false;
}
}