blob: 7b12a66cfc3c22c802236c8f2c4224a499608f86 [file] [log] [blame]
package org.eclipse.jst.jee.project.facet;
import java.util.List;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jem.util.logger.proxy.Logger;
import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.jst.j2ee.model.IModelProvider;
import org.eclipse.jst.j2ee.model.ModelProviderManager;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
public class EarCreateDeploymentFilesOperation extends
CreateDeploymentFilesDataModelOperation {
public EarCreateDeploymentFilesOperation(IDataModel model) {
super(model);
}
protected void createDeploymentFiles(IProject project, final IProgressMonitor monitor) {
final IVirtualComponent component = ComponentCore.createComponent(project);
final IModelProvider provider = ModelProviderManager.getModelProvider(project);
provider.modify(new Runnable(){
public void run() {
IVirtualReference[] componentReferences = J2EEProjectUtilities.getJ2EEModuleReferences(component);
if(componentReferences != null && componentReferences.length > 0){
final IDataModel dataModel = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, component);
List modList = (List) dataModel.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
for(int i = 0; i < componentReferences.length; i++) {
IVirtualComponent referencedComponent = componentReferences[i].getReferencedComponent();
modList.add(referencedComponent);
}
dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modList);
try {
dataModel.getDefaultOperation().execute(monitor, null);
} catch (ExecutionException e) {
Logger.getLogger().logError(e);
}
}
}
}, IModelProvider.FORCESAVE);
}
}