diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/webapplication/impl/FilterMappingImpl.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/webapplication/impl/FilterMappingImpl.java | 341 |
1 files changed, 341 insertions, 0 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/webapplication/impl/FilterMappingImpl.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/webapplication/impl/FilterMappingImpl.java new file mode 100644 index 000000000..052a20df7 --- /dev/null +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/webapplication/impl/FilterMappingImpl.java @@ -0,0 +1,341 @@ +/******************************************************************************* + * Copyright (c) 2001, 2004 IBM 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jst.j2ee.internal.webapplication.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; +import org.eclipse.jst.j2ee.webapplication.DispatcherType; +import org.eclipse.jst.j2ee.webapplication.Filter; +import org.eclipse.jst.j2ee.webapplication.FilterMapping; +import org.eclipse.jst.j2ee.webapplication.Servlet; +import org.eclipse.jst.j2ee.webapplication.WebApp; +import org.eclipse.jst.j2ee.webapplication.WebapplicationPackage; + + +/** + * Declaration of the filter mappings in this web application. The container uses the filter-mapping declarations to decide which filters to apply to a request, and in what order. The container matches the request URI to a Servlet in the normal way. To determine which filters to apply it matches filter-mapping declarations either on servlet-name, or on url-pattern for each filter-mapping element, depending on which style is used. The order in which filters are invoked is the order in which filter-mapping declarations that match a request URI for a servlet appear in the list of filter-mapping elements.The filter-name value must be the value of the <filtername> sub-elements of one of the <filter> declarations in the deployment descriptor. + * + * @invariant The filter-name value must be the value of the Filter::name of one of the Filter declarations in the deployment descriptor. + + */ +public class FilterMappingImpl extends EObjectImpl implements FilterMapping, EObject{ + + /** + * The default value of the '{@link #getUrlPattern() <em>Url Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUrlPattern() + * @generated + * @ordered + */ + protected static final String URL_PATTERN_EDEFAULT = null; + + protected transient String servletName; + /** + * @generated This field/method will be replaced during code generation. + */ + /** + * @generated This field/method will be replaced during code generation. + */ + protected String urlPattern = URL_PATTERN_EDEFAULT; + /** + * The cached value of the '{@link #getDispatcherType() <em>Dispatcher Type</em>}' attribute list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDispatcherType() + * @generated + * @ordered + */ + protected EList dispatcherType = null; + + /** + * @generated This field/method will be replaced during code generation. + */ + protected Filter filter = null; + /** + * @generated This field/method will be replaced during code generation. + */ + protected Servlet servlet = null; + public FilterMappingImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return WebapplicationPackage.eINSTANCE.getFilterMapping(); + } + +/** + * Returns the name of the servlet that this mapping applies to. + */ + public Servlet getServlet(){ + Servlet lservlet = this.getServletGen(); + if (lservlet == null && servletName != null){ + WebApp webapp = (WebApp)eContainer(); + if (webapp != null){ + lservlet=webapp.getServletNamed(servletName); + if (lservlet != null) + setServlet(lservlet); + } + } + return lservlet; +} +/** + * Returns the name of the servlet that this mapping applies to. + */ +public String getServletName(){ + String ret = null; + if (servletName != null) + ret = servletName; + + Servlet lservlet = getServlet(); + if (lservlet != null) + ret = lservlet.getServletName(); + return ret; +} +/** + * Sets the name of the servlet that this mapping applies to. + */ +public void setServletName(String servletName){ + this.servletName = servletName; +} + /** + * @generated This field/method will be replaced during code generation + * The url-pattern element contains the url pattern of the mapping. Must follow + * the rules specified in Section 10 of the Servlet API Specification. + */ + public String getUrlPattern() { + return urlPattern; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setUrlPattern(String newUrlPattern) { + String oldUrlPattern = urlPattern; + urlPattern = newUrlPattern; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, WebapplicationPackage.FILTER_MAPPING__URL_PATTERN, oldUrlPattern, urlPattern)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList getDispatcherType() { + if (dispatcherType == null) { + dispatcherType = new EDataTypeUniqueEList(DispatcherType.class, this, WebapplicationPackage.FILTER_MAPPING__DISPATCHER_TYPE); + } + return dispatcherType; + } + + /** + * @generated This field/method will be replaced during code generation + * The filter being mapped + */ + public Filter getFilter() { + if (filter != null && filter.eIsProxy()) { + Filter oldFilter = filter; + filter = (Filter)eResolveProxy((InternalEObject)filter); + if (filter != oldFilter) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, WebapplicationPackage.FILTER_MAPPING__FILTER, oldFilter, filter)); + } + } + return filter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Filter basicGetFilter() { + return filter; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setFilter(Filter newFilter) { + Filter oldFilter = filter; + filter = newFilter; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, WebapplicationPackage.FILTER_MAPPING__FILTER, oldFilter, filter)); + } + + public void setServlet(Servlet l) { + servletName = null; + setServletGen(l); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setServletGen(Servlet newServlet) { + Servlet oldServlet = servlet; + servlet = newServlet; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, WebapplicationPackage.FILTER_MAPPING__SERVLET, oldServlet, servlet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case WebapplicationPackage.FILTER_MAPPING__URL_PATTERN: + return getUrlPattern(); + case WebapplicationPackage.FILTER_MAPPING__DISPATCHER_TYPE: + return getDispatcherType(); + case WebapplicationPackage.FILTER_MAPPING__FILTER: + if (resolve) return getFilter(); + return basicGetFilter(); + case WebapplicationPackage.FILTER_MAPPING__SERVLET: + if (resolve) return getServlet(); + return basicGetServlet(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case WebapplicationPackage.FILTER_MAPPING__URL_PATTERN: + return URL_PATTERN_EDEFAULT == null ? urlPattern != null : !URL_PATTERN_EDEFAULT.equals(urlPattern); + case WebapplicationPackage.FILTER_MAPPING__DISPATCHER_TYPE: + return dispatcherType != null && !dispatcherType.isEmpty(); + case WebapplicationPackage.FILTER_MAPPING__FILTER: + return filter != null; + case WebapplicationPackage.FILTER_MAPPING__SERVLET: + return servlet != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case WebapplicationPackage.FILTER_MAPPING__URL_PATTERN: + setUrlPattern((String)newValue); + return; + case WebapplicationPackage.FILTER_MAPPING__DISPATCHER_TYPE: + getDispatcherType().clear(); + getDispatcherType().addAll((Collection)newValue); + return; + case WebapplicationPackage.FILTER_MAPPING__FILTER: + setFilter((Filter)newValue); + return; + case WebapplicationPackage.FILTER_MAPPING__SERVLET: + if(newValue instanceof String) + setServletName((String)newValue); + else + setServlet((Servlet)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case WebapplicationPackage.FILTER_MAPPING__URL_PATTERN: + setUrlPattern(URL_PATTERN_EDEFAULT); + return; + case WebapplicationPackage.FILTER_MAPPING__DISPATCHER_TYPE: + getDispatcherType().clear(); + return; + case WebapplicationPackage.FILTER_MAPPING__FILTER: + setFilter((Filter)null); + return; + case WebapplicationPackage.FILTER_MAPPING__SERVLET: + setServlet((Servlet)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (urlPattern: ");//$NON-NLS-1$ + result.append(urlPattern); + result.append(", dispatcherType: ");//$NON-NLS-1$ + result.append(dispatcherType); + result.append(')'); + return result.toString(); + } + + /** + * @generated This field/method will be replaced during code generation + * An optional servlet that is mapped by a filter mapping. servletName is used to resolve the servlet reference. + */ + public Servlet getServletGen() { + if (servlet != null && servlet.eIsProxy()) { + Servlet oldServlet = servlet; + servlet = (Servlet)eResolveProxy((InternalEObject)servlet); + if (servlet != oldServlet) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, WebapplicationPackage.FILTER_MAPPING__SERVLET, oldServlet, servlet)); + } + } + return servlet; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Servlet basicGetServlet() { + return servlet; + } + +} + + + + + + + + + + + + + + |