blob: 1c3480c3afeafb039b4cdc7468180cdefbb9ff8d [file] [log] [blame]
package org.eclipse.wst.common.modulecore.builder;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel;
import org.eclipse.wst.common.modulecore.WorkbenchModule;
import org.eclipse.wst.common.modulecore.util.ModuleCore;
public abstract class DeployableModuleBuilderDataModel extends WTPOperationDataModel {
/**
* Required, type IProject
*/
public static final String PROJECT = "DeployableModuleDataModel.PROJECT"; //$NON-NLS-1$
/**
* Required, type ModuleStructuralModel
*/
public static final String MODULE_STRUCTURAL_MODEL = "DeployableModuleDataModel.MODULE_STRUCTURAL_MODEL"; //$NON-NLS-1$
/**
* Required, type PATH
*/
public static final String OUTPUT_CONTAINER = "DeployableModuleDataModel.OUTPUT_CONTAINER"; //$NON-NLS-1$
/**
* Required, type WorkbenchModule
*/
public static final String WORKBENCH_MODULE = "DeployableModuleDataModel.WORKBENCH_MODULE_RESOURCES"; //$NON-NLS-1$
/**
* Required, type List of DependentdeployableModuleDataModel
*/
public static final String DEPENDENT_MODULES_DM_LIST = "DeployableModuleDataModel.DEPENDENT_MODULES_DM_LIST"; //$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#addValidBaseProperty(java.lang.String)
*/
protected void initValidBaseProperties() {
addValidBaseProperty(PROJECT);
addValidBaseProperty(MODULE_STRUCTURAL_MODEL);
addValidBaseProperty(OUTPUT_CONTAINER);
addValidBaseProperty(WORKBENCH_MODULE);
addValidBaseProperty(DEPENDENT_MODULES_DM_LIST);
}
/* (non-Javadoc)
* @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#getDefaultProperty(java.lang.String)
*/
protected Object getDefaultProperty(String propertyName) {
if(propertyName.equals(OUTPUT_CONTAINER)){
if(isSet(WORKBENCH_MODULE))
return populateOutputContainer();
}
else if(propertyName.equals(DEPENDENT_MODULES_DM_LIST)){
if(isSet(WORKBENCH_MODULE))
return populateDependentModulesDM();
}
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(WORKBENCH_MODULE)) {
notifyDefaultChange(OUTPUT_CONTAINER);
notifyDefaultChange(DEPENDENT_MODULES_DM_LIST);
}
return status;
}
/**
*
*/
public DeployableModuleBuilderDataModel() {
super();
// TODO Auto-generated constructor stub
} /**
* @return
*/
private Object populateDependentModulesDM() {
//TODO:
return null;
}
/**
* @return
*/
private Object populateOutputContainer() {
WorkbenchModule wbModule = (WorkbenchModule)getProperty(WORKBENCH_MODULE);
IPath path = null;
if(wbModule != null){
path = new Path(ModuleCore.INSTANCE.getOutputContainerRoot() + "/" + wbModule.getDeployedName());
}
return path;
}
/* (non-Javadoc)
* @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel#getDefaultOperation()
*/
public abstract WTPOperation getDefaultOperation();
}