| 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); |
| |
| |
| } |
| |
| } |