/******************************************************************************* * Copyright (c) 2001, 2009 Oracle Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Oracle Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.jsf.common.webxml.internal; import static org.eclipse.jst.jsf.common.webxml.WebXmlUtilsForJavaEE.findFilter; import static org.eclipse.jst.jsf.common.webxml.WebXmlUtilsForJavaEE.findServlet; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jst.j2ee.model.IModelProvider; import org.eclipse.jst.javaee.web.Filter; import org.eclipse.jst.javaee.web.Servlet; import org.eclipse.jst.javaee.web.WebApp; import org.eclipse.jst.jsf.common.webxml.WebXmlUtils; import org.eclipse.jst.jsf.common.webxml.WebXmlUtilsForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.ContextParamAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.FilterAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.FilterMapperAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.FilterRemoverForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.ListenerAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.ServletAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.ServletMappingAdderForJavaEE; import org.eclipse.jst.jsf.common.webxml.internal.operations.ServletRemoverForJavaEE; /** * @author Debajit Adhikary * */ public class WebXmlUpdaterForJavaEE extends AbstractWebXmlUpdater { private final WebApp webApp; /** * @param webAppObj * @param project * @param provider * @param monitor */ public WebXmlUpdaterForJavaEE (final Object webAppObj, final IProject project, final IModelProvider provider, final IProgressMonitor monitor) { super(webAppObj, project, provider, monitor); this.webApp = (WebApp) webAppObj; } @Override public void addServlet (final String servletName, final String servletClass, final String loadOnStartup) { provider.modify(new ServletAdderForJavaEE(project, servletName, servletClass, loadOnStartup), WebXmlUtils.WEB_XML_PATH); } @Override public void removeServlet (final String servletClassName) { final Servlet servlet = findServlet(servletClassName, webApp); if (servlet == null) throw new IllegalArgumentException("Cannot find servlet named \"" + servletClassName + "\""); //$NON-NLS-1$//$NON-NLS-2$ provider.modify(new ServletRemoverForJavaEE(project, servletClassName), WebXmlUtils.WEB_XML_PATH); } @Override public void addServletMapping (final String servletName, final String servletClass, final String urlPattern) { provider.modify(new ServletMappingAdderForJavaEE(project, servletName, servletClass, urlPattern), WebXmlUtils.WEB_XML_PATH); } @Override public void addFilter (final String filterName, final String filterClass) { provider.modify(new FilterAdderForJavaEE(project, filterName, filterClass), WebXmlUtils.WEB_XML_PATH); } @Override public void removeFilter (final String filterClassName) { final Filter filter = findFilter(webApp, filterClassName); if (filter == null) throw new IllegalArgumentException("Cannot find filter named \"" + filterClassName + "\""); //$NON-NLS-1$//$NON-NLS-2$ provider.modify(new FilterRemoverForJavaEE(project, filterClassName), WebXmlUtils.WEB_XML_PATH); } @Override public void addFilterMapping (final String filterName, final String filterClass, final String servletName) { provider.modify(new FilterMapperAdderForJavaEE(project, filterName, servletName), WebXmlUtils.WEB_XML_PATH); } @Override public String getContextParamValue (final String paramName) { return WebXmlUtilsForJavaEE.getContextParamValue(webApp, paramName); } @Override public List<String> getContextParamValuesAsList (final String paramName, final String valuesDelimiterRegex) { return WebXmlUtilsForJavaEE.getContextParamValuesAsList(webApp, paramName, valuesDelimiterRegex); } @Override public void setContextParamValue(String paramName, String paramValue) { WebXmlUtilsForJavaEE.setContextParamValue(webApp, paramName, paramValue); } @Override public void addContextParam (final String paramName, final String paramValue, final String description) { provider.modify(new ContextParamAdderForJavaEE(project, paramName, paramValue, description), WebXmlUtils.WEB_XML_PATH); } @Override public void addListener (final String listenerClass) { provider.modify(new ListenerAdderForJavaEE(project, listenerClass), WebXmlUtils.WEB_XML_PATH); } @Override public Object getWebApp() { return webApp; } }