| /******************************************************************************* |
| * Copyright (c) 2003, 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.wst.common.modulecore.internal.builder; |
| |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.wst.common.frameworks.operations.WTPOperation; |
| import org.eclipse.wst.common.frameworks.operations.WTPOperationDataModel; |
| import org.eclipse.wst.common.modulecore.DependencyType; |
| import org.eclipse.wst.common.modulecore.DependentModule; |
| import org.eclipse.wst.common.modulecore.ModuleCore; |
| import org.eclipse.wst.common.modulecore.UnresolveableURIException; |
| import org.eclipse.wst.common.modulecore.WorkbenchModule; |
| |
| public class DependentDeployableModuleDataModel extends WTPOperationDataModel { |
| /** |
| * Required, type IProject |
| */ |
| public static final String CONTAINING_WBMODULE = "DependentDeployableModuleDataModel.CONTAINING_WBMODULE"; //$NON-NLS-1$ |
| |
| /** |
| * Required, type DependentModule |
| */ |
| public static final String DEPENDENT_MODULE = "DependentDeployableModuleDataModel.DEPENDENT_MODULE"; //$NON-NLS-1$ |
| |
| /** |
| * Calc, type project relative URI |
| */ |
| public static final String HANDLE = "DependentDeployableModuleDataModel.HANDLE"; //$NON-NLS-1$ |
| |
| /** |
| * Calc, type project relative URI |
| */ |
| public static final String OUTPUT_CONTAINER = "DependentDeployableModuleDataModel.OUTPUT_CONTAINER"; //$NON-NLS-1$ |
| |
| /** |
| * Calc, type WorkbenchModule |
| */ |
| public static final String DEPENDENT_WBMODULE = "DependentDeployableModuleDataModel.WORKBENCH_MODULE_RESOURCES"; //$NON-NLS-1$ |
| |
| /** |
| * Calc, type boolean |
| */ |
| public static final String DOES_CONSUME = "DependentDeployableModuleDataModel.DOES_CONSUME"; //$NON-NLS-1$ |
| |
| public static final String MODULE_CORE = "DependentDeployableModuleDataModel.MODULE_CORE"; //$NON-NLS-1$ |
| |
| public DependentDeployableModuleDataModel() { |
| super(); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#addValidBaseProperty(java.lang.String) |
| */ |
| protected void initValidBaseProperties() { |
| addValidBaseProperty(DEPENDENT_MODULE); |
| addValidBaseProperty(HANDLE); |
| addValidBaseProperty(OUTPUT_CONTAINER); |
| addValidBaseProperty(DOES_CONSUME); |
| addValidBaseProperty(DEPENDENT_WBMODULE); |
| addValidBaseProperty(CONTAINING_WBMODULE); |
| addValidBaseProperty(MODULE_CORE); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#getDefaultProperty(java.lang.String) |
| */ |
| protected Object getDefaultProperty(String propertyName) { |
| if (DEPENDENT_WBMODULE.equals(propertyName)) { |
| return getWorkBenchModuleValue(); |
| } |
| return super.getDefaultProperty(propertyName); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#doSetProperty(java.lang.String, |
| * java.lang.Object) |
| */ |
| protected boolean doSetProperty(String propertyName, Object propertyValue) { |
| boolean status = super.doSetProperty(propertyName, propertyValue); |
| if (propertyName.equals(DEPENDENT_MODULE)) { |
| setProperty(HANDLE, getHandleValue()); |
| setProperty(OUTPUT_CONTAINER, getOutputContainerValue()); |
| setProperty(DOES_CONSUME, getDoesConsumeValue()); |
| notifyDefaultChange(DEPENDENT_WBMODULE); |
| } |
| return status; |
| } |
| |
| private WorkbenchModule getWorkBenchModuleValue() { |
| if (!isSet(DEPENDENT_MODULE)) |
| return null; |
| ModuleCore localCore = getModuleCore(); |
| try { |
| if (localCore != null) |
| return localCore.findWorkbenchModuleByModuleURI(getDependentModule().getHandle()); |
| } catch (UnresolveableURIException e) { |
| } |
| return null; |
| } |
| |
| private Object getOutputContainerValue() { |
| if (!isSet(DEPENDENT_MODULE)) |
| return null; |
| DependentModule depModule = getDependentModule(); |
| return depModule.getDeployedPath(); |
| } |
| |
| private URI getHandleValue() { |
| if (!isSet(DEPENDENT_MODULE)) |
| return null; |
| return getDependentModule().getHandle(); |
| } |
| |
| /** |
| * @return |
| */ |
| private Boolean getDoesConsumeValue() { |
| if (!isSet(DEPENDENT_MODULE)) |
| return null; |
| DependentModule depModule = (DependentModule) getProperty(DEPENDENT_MODULE); |
| DependencyType depType = depModule.getDependencyType(); |
| if (depType.getValue() == DependencyType.CONSUMES) |
| return Boolean.TRUE; |
| return Boolean.FALSE; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#dispose() |
| */ |
| public void dispose() { |
| super.dispose(); |
| } |
| |
| /** |
| * Convenience Method for property DEPENDENT_MODULE |
| * |
| * @return |
| */ |
| public DependentModule getDependentModule() { |
| return (DependentModule) getProperty(DEPENDENT_MODULE); |
| } |
| |
| /** |
| * Convenience Method for property CONTAINING_WBMODULE |
| * |
| * @return |
| */ |
| public WorkbenchModule getContainingWorkbenchModule() { |
| return (WorkbenchModule) getProperty(CONTAINING_WBMODULE); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.common.modulecore.builder.DeployableModuleDataModel#getDefaultOperation() |
| */ |
| public WTPOperation getDefaultOperation() { |
| return new DependentDeployableModuleOperation(this); |
| } |
| |
| private ModuleCore getModuleCore() { |
| return (ModuleCore) getProperty(MODULE_CORE); |
| } |
| } |