diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/DefaultJ2EEComponentCreationDataModelProvider.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/DefaultJ2EEComponentCreationDataModelProvider.java | 386 |
1 files changed, 0 insertions, 386 deletions
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/DefaultJ2EEComponentCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/DefaultJ2EEComponentCreationDataModelProvider.java deleted file mode 100644 index 703569465..000000000 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/DefaultJ2EEComponentCreationDataModelProvider.java +++ /dev/null @@ -1,386 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2004, 2005 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.earcreation; - -import java.util.ArrayList; - -import org.eclipse.core.internal.localstore.CoreFileSystemLibrary; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jst.j2ee.application.internal.operations.DefaultJ2EEComponentCreationOperation; -import org.eclipse.jst.j2ee.applicationclient.internal.creation.AppClientComponentCreationDataModelProvider; -import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentCreationDataModelProperties; -import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; -import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil; -import org.eclipse.jst.j2ee.internal.moduleextension.EarModuleManager; -import org.eclipse.jst.j2ee.internal.moduleextension.EjbModuleExtension; -import org.eclipse.jst.j2ee.internal.moduleextension.JcaModuleExtension; -import org.eclipse.jst.j2ee.internal.moduleextension.WebModuleExtension; -import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; -import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider; -import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; -import org.eclipse.wst.common.frameworks.datamodel.IDataModel; -import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation; -import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonMessages; -import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin; - -public class DefaultJ2EEComponentCreationDataModelProvider extends AbstractDataModelProvider implements IDefaultJ2EEComponentCreationDataModelProperties { - private static String CREATE_BASE = "DefaultJ2EEComponentCreationDataModel.CREATE_"; //$NON-NLS-1$ - - private static final int EJB = 0; - private static final int WEB = 1; - private static final int RAR = 2; - private static final int CLIENT = 3; - - private static final String WEB_SUFFIX = "Web"; //$NON-NLS-1$ - private static final String EJB_SUFFIX = "EJB"; //$NON-NLS-1$ - private static final String CLIENT_SUFFIX = "Client"; //$NON-NLS-1$ - private static final String CONNECTOR_SUFFIX = "Connector"; //$NON-NLS-1$ - - private IDataModel ejbModel; - private IDataModel webModel; - private IDataModel jcaModel; - private IDataModel clientModel; - - public DefaultJ2EEComponentCreationDataModelProvider() { - super(); - } - - public String[] getPropertyNames() { - String[] props = new String[] { PROJECT_NAME, EAR_COMPONENT_NAME, APPCLIENT_COMPONENT_NAME, WEB_COMPONENT_NAME, EJB_COMPONENT_NAME, CONNECTOR_COMPONENT_NAME, J2EE_VERSION, CREATE_EJB, CREATE_WEB, CREATE_APPCLIENT, CREATE_CONNECTOR, MODULE_NAME_COLLISIONS_VALIDATION, ENABLED, - NESTED_MODEL_CLIENT, NESTED_MODEL_EJB, NESTED_MODEL_JCA, NESTED_MODEL_WEB }; - return props; - } - - - public IDataModelOperation getDefaultOperation() { - return new DefaultJ2EEComponentCreationOperation(getDataModel()); - } - - public void init() { - initNestedCreationModels(); - super.init(); - } - - protected void initNestedCreationModels() { - clientModel = DataModelFactory.createDataModel(new AppClientComponentCreationDataModelProvider()); - model.addNestedModel(NESTED_MODEL_CLIENT, clientModel); - EjbModuleExtension ejbExt = EarModuleManager.getEJBModuleExtension(); - if (ejbExt != null) { - ejbModel = ejbExt.createProjectDataModel(); - if (ejbModel != null) - model.addNestedModel(NESTED_MODEL_EJB, ejbModel); - } - WebModuleExtension webExt = EarModuleManager.getWebModuleExtension(); - if (webExt != null) { - webModel = webExt.createProjectDataModel(); - if (webModel != null) - model.addNestedModel(NESTED_MODEL_WEB, webModel); - } - JcaModuleExtension rarExt = EarModuleManager.getJCAModuleExtension(); - if (rarExt != null) { - jcaModel = rarExt.createProjectDataModel(); - if (jcaModel != null) - model.addNestedModel(NESTED_MODEL_JCA, jcaModel); - } - } - - public Object getDefaultProperty(String propertyName) { - if (propertyName.startsWith(CREATE_BASE)) - return getDefaultCreateValue(propertyName); - if (propertyName.equals(ENABLED)) - return Boolean.TRUE; - return super.getDefaultProperty(propertyName); - } - - - private Object getDefaultCreateValue(String propertyName) { - if (propertyName.equals(CREATE_CONNECTOR)) { - int version = getIntProperty(J2EE_VERSION); - if (version < J2EEVersionConstants.J2EE_1_3_ID) - return Boolean.FALSE; - } - return Boolean.TRUE; - } - - private int convertPropertyNameToInt(String propertyName) { - if(propertyName.equals(CREATE_WEB)){ - return WEB; - } else if(propertyName.equals(CREATE_EJB)){ - return EJB; - } else if(propertyName.equals(CREATE_CONNECTOR)){ - return RAR; - } else if(propertyName.equals(CREATE_APPCLIENT)){ - return CLIENT; - } - return -1; - } - - private String ensureUniqueProjectName(String projectName) { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - String newName = projectName; - int index = 0; - IProject proj = root.getProject(newName); - while (proj.exists()) { - index++; - newName = projectName + index; - proj = root.getProject(newName); - } - return newName; - } - - public boolean propertySet(String propertyName, Object propertyValue) { - boolean notify = super.propertySet(propertyName, propertyValue); - if (propertyName.equals(J2EE_VERSION)) { - updatedJ2EEVersion((Integer) propertyValue); - return true; - } - if (propertyName.startsWith(CREATE_BASE)) - notifyEnablement(convertPropertyNameToInt(propertyName)); - if (propertyName.equals(EAR_COMPONENT_NAME)) { - setDefaultComponentNames((String) propertyValue); - } - return notify; - } - - private void notifyEnablement(int flag) { - String propertyName = null; - switch (flag) { - case EJB: - propertyName = EJB_COMPONENT_NAME; - break; - case WEB: - propertyName = WEB_COMPONENT_NAME; - break; - case CLIENT: - propertyName = APPCLIENT_COMPONENT_NAME; - break; - case RAR: - propertyName = CONNECTOR_COMPONENT_NAME; - } - if (propertyName != null) - model.notifyPropertyChange(propertyName, IDataModel.ENABLE_CHG); - } - - private void updatedJ2EEVersion(Integer version) { - setNestedJ2EEVersion(version); - if (version.intValue() < J2EEVersionConstants.J2EE_1_3_ID && model.isPropertySet(CREATE_CONNECTOR)) { - model.setProperty(CREATE_CONNECTOR, Boolean.FALSE); - } - } - - public IStatus validateModuleNameCollisions() { - if (getBooleanProperty(ENABLED)) { - ArrayList list = new ArrayList(); - String projectName = null; - String actualProjectName = null; - boolean errorCollision = false; - boolean errorNoSelection = true; - if (getBooleanProperty(CREATE_APPCLIENT)) { - actualProjectName = clientModel.getStringProperty(IJ2EEComponentCreationDataModelProperties.PROJECT_NAME); - projectName = CoreFileSystemLibrary.isCaseSensitive() ? actualProjectName : actualProjectName.toLowerCase(); - list.add(projectName); - errorNoSelection = false; - } - if (getBooleanProperty(CREATE_EJB)) { - actualProjectName = ejbModel.getStringProperty(IJ2EEComponentCreationDataModelProperties.PROJECT_NAME); - projectName = CoreFileSystemLibrary.isCaseSensitive() ? actualProjectName : actualProjectName.toLowerCase(); - if (!list.contains(projectName)) { - list.add(projectName); - } else { - errorCollision = true; - } - errorNoSelection = false; - } - if (!errorCollision && getBooleanProperty(CREATE_WEB)) { - actualProjectName = webModel.getStringProperty(IJ2EEComponentCreationDataModelProperties.PROJECT_NAME); - projectName = CoreFileSystemLibrary.isCaseSensitive() ? actualProjectName : actualProjectName.toLowerCase(); - if (!list.contains(projectName)) { - list.add(projectName); - } else { - errorCollision = true; - } - errorNoSelection = false; - } - if (!errorCollision && getBooleanProperty(CREATE_CONNECTOR)) { - actualProjectName = jcaModel.getStringProperty(IJ2EEComponentCreationDataModelProperties.PROJECT_NAME); - projectName = CoreFileSystemLibrary.isCaseSensitive() ? actualProjectName : actualProjectName.toLowerCase(); - if (!list.contains(projectName)) { - list.add(projectName); - } else { - errorCollision = true; - } - errorNoSelection = false; - } - if (errorCollision) { - return J2EEPlugin.newErrorStatus(EARCreationResourceHandler.getString("DuplicateModuleNames", new Object[] { actualProjectName }), null); //$NON-NLS-1$ - } else if (errorNoSelection) { - return J2EEPlugin.newErrorStatus(EARCreationResourceHandler.getString("NoModulesSelected"), null); //$NON-NLS-1$ - } - } - - return OK_STATUS; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.common.frameworks.internal.operation.WTPOperationDataModel#doValidateProperty(java.lang.String) - */ - public IStatus validate(String propertyName) { - if (propertyName.equals(APPCLIENT_COMPONENT_NAME)) { - return validateComponentName(getStringProperty(APPCLIENT_COMPONENT_NAME)); - } - if (propertyName.equals(WEB_COMPONENT_NAME)) { - return validateComponentName(getStringProperty(WEB_COMPONENT_NAME)); - } - if (propertyName.equals(EJB_COMPONENT_NAME)) { - return validateComponentName(getStringProperty(EJB_COMPONENT_NAME)); - } - if (propertyName.equals(CONNECTOR_COMPONENT_NAME)) { - return validateComponentName(getStringProperty(CONNECTOR_COMPONENT_NAME)); - } - return super.validate(propertyName); - } - - private IStatus validateComponentName(String componentName) { - IStatus status = OK_STATUS; - if (status.isOK()) { - if (componentName.indexOf("#") != -1) { //$NON-NLS-1$ - String errorMessage = WTPCommonPlugin.getResourceString(WTPCommonMessages.ERR_INVALID_CHARS); //$NON-NLS-1$ - return WTPCommonPlugin.createErrorStatus(errorMessage); - } else if (componentName == null || componentName.equals("")) { //$NON-NLS-1$ - String errorMessage = WTPCommonPlugin.getResourceString(WTPCommonMessages.ERR_EMPTY_MODULE_NAME); - return WTPCommonPlugin.createErrorStatus(errorMessage); - } - } - return status; - } - - private void setDefaultNestedComponentName(String name, int flag) { - IDataModel modModule = getNestedModel(flag); - if (modModule != null) { - String compName = ensureUniqueProjectName(name); - modModule.setProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_NAME, compName); - } - } - - private void setDefaultComponentNames(String base) { - String componentName; - if (base.endsWith(EJB_SUFFIX)) - componentName = base; - else - componentName = base + EJB_SUFFIX; - setDefaultNestedComponentName(componentName, EJB); - setProperty(EJB_COMPONENT_NAME, componentName); - if (base.endsWith(WEB_SUFFIX)) - componentName = base; - else - componentName = base + WEB_SUFFIX; - setDefaultNestedComponentName(componentName, WEB); - setProperty(WEB_COMPONENT_NAME, componentName); - if (base.endsWith(CLIENT_SUFFIX)) - componentName = base; - else - componentName = base + CLIENT_SUFFIX; - setDefaultNestedComponentName(componentName, CLIENT); - setProperty(APPCLIENT_COMPONENT_NAME, componentName); - if (base.endsWith(CONNECTOR_SUFFIX)) - componentName = base; - else - componentName = base + CONNECTOR_SUFFIX; - setDefaultNestedComponentName(componentName, RAR); - setProperty(CONNECTOR_COMPONENT_NAME, componentName); - } - - private void setNestedJ2EEVersion(Object j2eeVersion) { - int j2eeVer = ((Integer)j2eeVersion).intValue(); - if (ejbModel != null) { - int ejbVersion = J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(j2eeVer); - ejbModel.setIntProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION, ejbVersion); - } - if (webModel != null) { - int webVersion = J2EEVersionUtil.convertJ2EEVersionIDToWebVersionID(j2eeVer); - webModel.setIntProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION, webVersion); - } - if (jcaModel != null) { - int jcaVersion = J2EEVersionUtil.convertJ2EEVersionIDToConnectorVersionID(j2eeVer); - jcaModel.setIntProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION, jcaVersion); - } - if (clientModel != null) - clientModel.setProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION, j2eeVersion); - } - - private void setNestedComponentName(int flag, String compName) { - IDataModel model = getNestedModel(flag); - if (model != null) { - model.setProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_NAME, compName); - } - } - - private IStatus validateNestedProjectName(int flag) { - IDataModel model = getNestedModel(flag); - if (model != null) { - String createProperty = null; - switch (flag) { - case EJB: - createProperty = CREATE_EJB; - break; - case WEB: - createProperty = CREATE_WEB; - break; - case CLIENT: - createProperty = CREATE_APPCLIENT; - break; - case RAR: - createProperty = CREATE_CONNECTOR; - break; - } - if (null != createProperty && getBooleanProperty(createProperty)) { - return model.validateProperty(IJ2EEComponentCreationDataModelProperties.PROJECT_NAME); - } - } - return J2EEPlugin.OK_STATUS; - } - - private IDataModel getNestedModel(int flag) { - switch (flag) { - case EJB: - return ejbModel; - case WEB: - return webModel; - case RAR: - return jcaModel; - case CLIENT: - return clientModel; - } - return null; - } - - public boolean isPropertyEnabled(String propertyName) { - if (propertyName.equals(CREATE_CONNECTOR) || propertyName.equals(CONNECTOR_COMPONENT_NAME)) { - int version = getIntProperty(J2EE_VERSION); - boolean result = version > J2EEVersionConstants.J2EE_1_2_ID; - if (result) - return getBooleanProperty(CREATE_CONNECTOR); - return result; - } - if (propertyName.equals(APPCLIENT_COMPONENT_NAME)) - return getBooleanProperty(CREATE_APPCLIENT); - if (propertyName.equals(EJB_COMPONENT_NAME)) - return getBooleanProperty(CREATE_EJB); - if (propertyName.equals(WEB_COMPONENT_NAME)) - return getBooleanProperty(CREATE_WEB); - return super.isPropertyEnabled(propertyName); - } -} |