/** | |
* <copyright> | |
* | |
* Copyright (c) 2009-2010 Thales Corporate Services S.A.S. | |
* 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: | |
* Thales Corporate Services S.A.S - initial API and implementation | |
* | |
* </copyright> | |
*/ | |
package org.eclipse.egf.eclipse.resources.mgt; | |
import org.eclipse.core.resources.IProject; | |
import org.eclipse.core.resources.ResourcesPlugin; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.core.runtime.IProgressMonitor; | |
import org.eclipse.egf.core.producer.InvocationException; | |
import org.eclipse.egf.ftask.producer.context.ITaskProductionContext; | |
import org.eclipse.egf.ftask.producer.invocation.ITaskProduction; | |
/** | |
* @author Matthieu Helleboid | |
* | |
*/ | |
public class CreateProjectTask implements ITaskProduction { | |
private IProject project; | |
public void doExecute(ITaskProductionContext productionContext, IProgressMonitor monitor) throws InvocationException { | |
if (!project.exists()) { | |
try { | |
project.create(monitor); | |
} catch (CoreException e) { | |
Activator.getDefault().logError(e); | |
} | |
} | |
if (project.exists()) { | |
if (!project.isOpen()) { | |
try { | |
project.open(monitor); | |
} catch (CoreException e) { | |
Activator.getDefault().logError(e); | |
} | |
} | |
productionContext.setOutputValue("path", project.getLocation().toOSString()); //$NON-NLS-1$ | |
} | |
} | |
public void postExecute(ITaskProductionContext productionContext, IProgressMonitor monitor) throws InvocationException { | |
} | |
public void preExecute(ITaskProductionContext productionContext, IProgressMonitor monitor) throws InvocationException { | |
String name = productionContext.getInputValue("name", String.class); //$NON-NLS-1$ | |
project = ResourcesPlugin.getWorkspace().getRoot().getProject(name); | |
} | |
} |