diff options
Diffstat (limited to 'plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java')
-rw-r--r-- | plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java deleted file mode 100644 index 370aa0382..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java +++ /dev/null @@ -1,161 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jst.j2ee.model.IModelProvider; -import org.eclipse.jst.j2ee.model.IModelProviderEvent; -import org.eclipse.jst.javaee.web.WebApp; -import org.eclipse.jst.javaee.web.WebFactory; -import org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider; -import org.eclipse.jst.jee.model.internal.mergers.ModelElementMerger; -import org.eclipse.jst.jee.model.internal.mergers.ModelException; -import org.eclipse.jst.jee.model.internal.mergers.WebAppMerger; -import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; - -/** - * @author Kiril Mitov k.mitov@sap.com - * - */ -public class Web25MergedModelProvider extends AbstractMergedModelProvider<WebApp> { - - public Web25MergedModelProvider(IProject project) { - super(project); - } - - @Override - protected IModelProvider loadAnnotationModel(WebApp ddModel) throws CoreException { - return new WebAnnotationReader(ProjectFacetsManager.create(project), ddModel); - } - - @Override - protected IModelProvider loadDeploymentDescriptorModel() throws CoreException { - return new Web25ModelProvider(project); - } - - private WebApp getAnnotationWebApp() { - return (WebApp) annotationModelProvider.getModelObject(); - } - - private WebApp getXmlWebApp() { - return (WebApp) ddProvider.getModelObject(); - } - - public Object getModelObject(IPath modelPath) { - return null; - } - - public void modify(Runnable runnable, IPath modelPath) { - /* - * Someone has called modify before loading the model. Try to load the - * model. - */ - if (mergedModel == null) - getMergedModel(); - if (isDisposed()) { - return; - } - /* - * Still not supporting modifications of the merged model. During modify - * the model is becoming the ddModel. After modifying the model is - * unloaded. - */ - WebApp backup = mergedModel; - try { - mergedModel = (WebApp) ddProvider.getModelObject(); - ddProvider.modify(runnable, modelPath); - } finally { - mergedModel = backup; - } - merge(getXmlWebApp(), getAnnotationWebApp()); - } - - private void clearModel(WebApp app) { - if (app == null) { - return; - } - app.getContextParams().clear(); - app.getDescriptions().clear(); - app.getDisplayNames().clear(); - app.getDistributables().clear(); - app.getEjbLocalRefs().clear(); - app.getEjbRefs().clear(); - app.getEnvEntries().clear(); - app.getErrorPages().clear(); - app.getFilterMappings().clear(); - app.getFilters().clear(); - app.getIcons().clear(); - app.getJspConfigs().clear(); - app.getListeners().clear(); - app.getLocalEncodingMappingsLists().clear(); - app.getLoginConfigs().clear(); - app.getMessageDestinationRefs().clear(); - app.getMessageDestinations().clear(); - app.getMimeMappings().clear(); - app.getPersistenceContextRefs().clear(); - app.getPersistenceUnitRefs().clear(); - app.getPostConstructs().clear(); - app.getPreDestroys().clear(); - app.getResourceEnvRefs().clear(); - app.getResourceRefs().clear(); - app.getSecurityConstraints().clear(); - app.getSecurityRoles().clear(); - app.getServiceRefs().clear(); - app.getServletMappings().clear(); - app.getServlets().clear(); - app.getSessionConfigs().clear(); - app.getWelcomeFileLists().clear(); - } - - protected void annotationModelChanged(IModelProviderEvent event) { - internalModelChanged(event); - } - - protected void xmlModelChanged(IModelProviderEvent event) { - internalModelChanged(event); - } - - /* - * Notifications from xml and annotation may come in different threads. This - * depends on the implementation of the model providers, but to make sure - * that no race conditions occurs I am synchronizing this method. - */ - private synchronized void internalModelChanged(IModelProviderEvent event) { - merge(getXmlWebApp(), getAnnotationWebApp()); - notifyListeners(event); - } - - @Override - protected WebApp merge(WebApp ddModel, WebApp annotationsModel) { - try { - if (mergedModel != ddModel) { - clearModel(mergedModel); - mergeWithModel(ddModel); - mergeWithModel(annotationsModel); - } - } catch (ModelException e) { - e.printStackTrace(); - } - return mergedModel; - } - - private void mergeWithModel(WebApp model) throws ModelException { - WebAppMerger merger = new WebAppMerger(mergedModel, model, ModelElementMerger.ADD); - merger.process(); - } - - protected WebApp createNewModelInstance() { - return WebFactory.eINSTANCE.createWebApp(); - } - -} |