diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/AddFilterOperation.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/AddFilterOperation.java | 351 |
1 files changed, 0 insertions, 351 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/AddFilterOperation.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/AddFilterOperation.java deleted file mode 100644 index 331dae4a0..000000000 --- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/AddFilterOperation.java +++ /dev/null @@ -1,351 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 SAP AG 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: - * Kaloyan Raev, kaloyan.raev@sap.com - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.j2ee.internal.web.operations; - -import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.FILTER_MAPPINGS; -import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.INIT_PARAM; -import static org.eclipse.jst.j2ee.internal.web.operations.INewWebClassDataModelProperties.DESCRIPTION; -import static org.eclipse.jst.j2ee.internal.web.operations.INewWebClassDataModelProperties.DISPLAY_NAME; - -import java.util.List; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.jst.j2ee.common.CommonFactory; -import org.eclipse.jst.j2ee.common.Description; -import org.eclipse.jst.j2ee.common.ParamValue; -import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; -import org.eclipse.jst.j2ee.internal.common.operations.NewJavaEEArtifactClassOperation; -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.InitParam; -import org.eclipse.jst.j2ee.webapplication.Servlet; -import org.eclipse.jst.j2ee.webapplication.WebApp; -import org.eclipse.jst.j2ee.webapplication.WebapplicationFactory; -import org.eclipse.jst.javaee.core.DisplayName; -import org.eclipse.jst.javaee.core.JavaeeFactory; -import org.eclipse.jst.javaee.core.UrlPatternType; -import org.eclipse.jst.javaee.web.WebFactory; -import org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditProviderOperation; -import org.eclipse.wst.common.frameworks.datamodel.IDataModel; - -/** - * This class, AddFilter Operation is a IDataModelOperation following the - * IDataModel wizard and operation framework. - * - * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation - * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider - * - * This operation subclasses the ArtifactEditProviderOperation so the changes - * made to the deployment descriptor models are saved to the artifact edit - * model. - * @see org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditProviderOperation - * - * It is the operation which should be used when adding a new filter to a web - * app. This uses the NewFilterClassDataModelProvider to retrieve properties set by the - * user in order to create the custom filter. - * @see org.eclipse.jst.j2ee.internal.web.operations.NewFilterClassDataModelProvider - * - * This operation will add the metadata necessary into the web deployment descriptor. - * To actually create the java class for the filter, the operation uses the NewFilterClassOperation. - * The NewFilterClassOperation shares the same data model provider. - * @see org.eclipse.jst.j2ee.internal.web.operations.NewFilterClassOperation - * - * Clients may subclass this operation to provide their own behavior on filter - * creation. The execute method can be extended to do so. Also, - * generateFilterMetaData and creteFilterClass are exposed. - * - * The use of this class is EXPERIMENTAL and is subject to substantial changes. - */ -public class AddFilterOperation extends AddWebClassOperation { - - /** - * This is the constructor which should be used when creating the operation. - * It will not accept null parameter. It will not return null. - * - * @see ArtifactEditProviderOperation#ArtifactEditProviderOperation(IDataModel) - * - * @param dataModel - * @return AddFilterOperation - */ - public AddFilterOperation(IDataModel dataModel) { - super(dataModel); - } - - @Override - protected NewJavaEEArtifactClassOperation getNewClassOperation() { - return new NewFilterClassOperation(getDataModel()); - } - - /** - * Subclasses may extend this method to add their own generation steps for - * the creation of the metadata for the web deployment descriptor. This - * implementation uses the J2EE models to create the Filter model instance, - * any init params specified, and any filter mappings. It then adds these - * to the web application model. This will then be written out to the - * deployment descriptor file. This method does not accept null parameters. - * - * @see Filter - * @see AddFilterOperation#createFilter(String) - * @see AddFilterOperation#setUpInitParams(List, Filter) - * @see AddFilterOperation#setUpURLMappings(List, Filter) - * - * @param aModel - * @param qualifiedClassName - */ - @Override - protected void generateMetaData(IDataModel aModel, String qualifiedClassName) { - // Set up the filter modelled object - Object filter = createFilter(qualifiedClassName); - - // Set up the InitParams if any - List initParamList = - (List) aModel.getProperty(INIT_PARAM); - if (initParamList != null) - setUpInitParams(initParamList, filter); - - // Set up the filter mappings if any - List filterMappingsList = - (List) aModel.getProperty(FILTER_MAPPINGS); - - if (filterMappingsList != null && !filterMappingsList.isEmpty()) - setUpMappings(filterMappingsList, filter); - } - - /** - * This method is intended for private use only. This method is used to - * create the filter modeled object, to set any parameters specified in - * the data model, and then to add the filter instance to the web - * application model. This method does not accept null parameters. It will - * not return null. - * - * @see AddFilterOperation#generateFilterMetaData(NewFilterClassDataModel, - * String) - * @see WebapplicationFactory#createFilter() - * @see Filter - * - * @param qualifiedClassName - * @return Filter instance - */ - /** - * @param qualifiedClassName - * @return - */ - private Object createFilter(String qualifiedClassName) { - // Get values from data model - String displayName = - model.getStringProperty(DISPLAY_NAME); - String description = - model.getStringProperty(DESCRIPTION); - - // Create the filter instance and set up the parameters from data model - Object modelObject = provider.getModelObject(WEB_APP_XML_PATH); - if (modelObject instanceof org.eclipse.jst.j2ee.webapplication.WebApp) { - Filter filter = WebapplicationFactory.eINSTANCE.createFilter(); - filter.setName(displayName); - filter.setDisplayName(displayName); - filter.setDescription(description); - filter.setFilterClassName(qualifiedClassName); - - // Add the filter to the web application model - WebApp webApp = (WebApp) modelObject; - webApp.getFilters().add(filter); - return filter; - } else if (modelObject instanceof org.eclipse.jst.javaee.web.IWebCommon) { - org.eclipse.jst.javaee.web.IWebCommon webApp = (org.eclipse.jst.javaee.web.IWebCommon) modelObject; - org.eclipse.jst.javaee.web.Filter filter = WebFactory.eINSTANCE.createFilter(); - DisplayName displayNameObj = JavaeeFactory.eINSTANCE.createDisplayName(); - displayNameObj.setValue(displayName); - filter.getDisplayNames().add(displayNameObj); - filter.setFilterName(displayName); - filter.setFilterClass(qualifiedClassName); - webApp.getFilters().add(filter); - // Should be return Filter's instance - return filter; - } - // Return the filter instance - return null; - } - - /** - * This method is intended for internal use only. This is used to create any - * init params for the new filter metadata. It will not accept null - * parameters. The init params are set on the filter modeled object. - * - * @see AddFilterOperation#generateFilterMetaData(NewFilterClassDataModel, - * String) - * @see WebapplicationFactory#createInitParam() - * - * @param initParamList - * @param filter - */ - private void setUpInitParams(List initParamList, Object filterObj) { - // Get the web app instance from the data model - Object modelObject = provider.getModelObject(); - if (modelObject instanceof org.eclipse.jst.j2ee.webapplication.WebApp) { - WebApp webApp = (WebApp) modelObject; - Filter filter = (Filter) filterObj; - - // If J2EE 1.4, add the param value and description info instances - // to the filter init params - if (webApp.getJ2EEVersionID() >= J2EEVersionConstants.J2EE_1_4_ID) { - for (int iP = 0; iP < initParamList.size(); iP++) { - String[] stringArray = (String[]) initParamList.get(iP); - // Create 1.4 common param value - ParamValue param = CommonFactory.eINSTANCE.createParamValue(); - param.setName(stringArray[0]); - param.setValue(stringArray[1]); - // Create 1.4 common descripton value - Description descriptionObj = CommonFactory.eINSTANCE.createDescription(); - descriptionObj.setValue(stringArray[2]); - // Set the description on the param - param.getDescriptions().add(descriptionObj); - param.setDescription(stringArray[2]); - // Set the param to the filter model list of init params - filter.getInitParamValues().add(param); - } - } - // If J2EE 1.2 or 1.3, use the filter specific init param instances - else { - for (int iP = 0; iP < initParamList.size(); iP++) { - String[] stringArray = (String[]) initParamList.get(iP); - // Create the web init param - InitParam ip = WebapplicationFactory.eINSTANCE.createInitParam(); - // Set the param name - ip.setParamName(stringArray[0]); - // Set the param value - ip.setParamValue(stringArray[1]); - // Set the param description - ip.setDescription(stringArray[2]); - // Add the init param to the filter model list of params - filter.getInitParams().add(ip); - } - } - } else if (modelObject instanceof org.eclipse.jst.javaee.web.IWebCommon) { - org.eclipse.jst.javaee.web.Filter filter = (org.eclipse.jst.javaee.web.Filter) filterObj; - - for (int iP = 0; iP < initParamList.size(); iP++) { - String[] stringArray = (String[]) initParamList.get(iP); - // Create 1.4 common param value - org.eclipse.jst.javaee.core.ParamValue param = - JavaeeFactory.eINSTANCE.createParamValue(); - param.setParamName(stringArray[0]); - param.setParamValue(stringArray[1]); - - org.eclipse.jst.javaee.core.Description descriptionObj = - JavaeeFactory.eINSTANCE.createDescription(); - descriptionObj.setValue(stringArray[2]); - // Set the description on the param - param.getDescriptions().add(descriptionObj); - // Add the param to the filter model list of init params - filter.getInitParams().add(param); - } - } - } - - /** - * This method is intended for internal use only. This method is used to - * create the filter mapping modelled objects so the metadata for the - * filter mappings is store in the web deployment descriptor. This method - * will not accept null parameters. The filter mappings are added to the - * web application modeled object. - * - * @see AddFilterOperation#generateFilterMetaData(NewFilterClassDataModel, - * String) - * @see WebapplicationFactory#createFilterMapping() - * - * @param urlMappingList - * @param filter - */ - private void setUpMappings(List filterMappingsList, Object filterObj) { - // Get the web app modelled object from the data model - // WebApp webApp = (WebApp) artifactEdit.getContentModelRoot(); - Object modelObject = provider.getModelObject(WEB_APP_XML_PATH); - - // Create the filter mappings if any - if (modelObject instanceof org.eclipse.jst.j2ee.webapplication.WebApp) { - WebApp webApp = (WebApp) modelObject; - Filter filter = (Filter) filterObj; - if (filterMappingsList != null) - for (int iM = 0; iM < filterMappingsList.size(); iM++) { - IFilterMappingItem filterMapping = (IFilterMappingItem) filterMappingsList.get(iM); - // Create the filter mapping instance from the web factory - FilterMapping mapping = WebapplicationFactory.eINSTANCE.createFilterMapping(); - // Set the filter - mapping.setFilter(filter); - if (filterMapping.isUrlPatternType()) { - // Set the URL pattern to map the filter to - mapping.setUrlPattern(filterMapping.getName()); - } else { - // Set the Servlet Name to map the filter to - Servlet servlet = webApp.getServletNamed(filterMapping.getName()); - mapping.setServlet(servlet); - } - //Set dispatcher options for the filter mapping if any. - int dispatchers = filterMapping.getDispatchers(); - EList dispatcherTypes = mapping.getDispatcherType(); - if ((dispatchers & IFilterMappingItem.REQUEST) > 0) { - dispatcherTypes.add(DispatcherType.REQUEST_LITERAL); - } - if ((dispatchers & IFilterMappingItem.FORWARD) > 0) { - dispatcherTypes.add(DispatcherType.FORWARD_LITERAL); - } - if ((dispatchers & IFilterMappingItem.INCLUDE) > 0) { - dispatcherTypes.add(DispatcherType.INCLUDE_LITERAL); - } - if ((dispatchers & IFilterMappingItem.ERROR) > 0) { - dispatcherTypes.add(DispatcherType.ERROR_LITERAL); - } - // Add the filter mapping to the web application modelled list - webApp.getFilterMappings().add(mapping); - } - } else if (modelObject instanceof org.eclipse.jst.javaee.web.IWebCommon) { - org.eclipse.jst.javaee.web.IWebCommon webApp = (org.eclipse.jst.javaee.web.IWebCommon) modelObject; - org.eclipse.jst.javaee.web.Filter filter = (org.eclipse.jst.javaee.web.Filter) filterObj; - - // Create the filter mapping instance from the web factory - org.eclipse.jst.javaee.web.FilterMapping mapping = null; - // Create the filter mappings if any - if (filterMappingsList != null) { - for (int i = 0; i < filterMappingsList.size(); i++) { - mapping = WebFactory.eINSTANCE.createFilterMapping(); - mapping.setFilterName(filter.getFilterName()); - IFilterMappingItem filterMapping = (IFilterMappingItem) filterMappingsList.get(i); - if (filterMapping.getMappingType() == IFilterMappingItem.URL_PATTERN) { - // Set the URL pattern to map the filter to - UrlPatternType url = JavaeeFactory.eINSTANCE.createUrlPatternType(); - url.setValue(filterMapping.getName()); - mapping.getUrlPatterns().add(url); - } else { - mapping.getServletNames().add(filterMapping.getName()); - } - //Set dispatcher options for the filter mapping if any. - int dispatchers = filterMapping.getDispatchers(); - if ((dispatchers & IFilterMappingItem.REQUEST) > 0) { - mapping.getDispatchers().add(org.eclipse.jst.javaee.web.DispatcherType.REQUEST_LITERAL); - } - if ((dispatchers & IFilterMappingItem.FORWARD) > 0) { - mapping.getDispatchers().add(org.eclipse.jst.javaee.web.DispatcherType.FORWARD_LITERAL); - } - if ((dispatchers & IFilterMappingItem.INCLUDE) > 0) { - mapping.getDispatchers().add(org.eclipse.jst.javaee.web.DispatcherType.INCLUDE_LITERAL); - } - if ((dispatchers & IFilterMappingItem.ERROR) > 0) { - mapping.getDispatchers().add(org.eclipse.jst.javaee.web.DispatcherType.ERROR_LITERAL); - } - // Add the filter mapping to the web application model list - webApp.getFilterMappings().add(mapping); - } - } - } - } - -} |