package abbot.swt.eclipse.utils;
import junit.framework.Assert;
import org.eclipse.core.internal.resources.Workspace;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import abbot.Log;
/**
* @author tlroche
* @version $Id: ProjectUtils.java,v 1.1 2005-12-19 20:28:33 pq Exp $
*/
public class ProjectUtils {
public static final String copyright = "Licensed Materials -- Property of IBM\n(c) Copyright International Business Machines Corporation, 2000,2003\nUS Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.";
/**
* No instances
*/
private ProjectUtils() {
}
/**
* Delete all projects from the current workspace.
* @throws CoreException
*/
public static void deleteAllProjects() throws CoreException {
IProject[] projects = getAllProjects();
for (int i = 0; i < projects.length; i++){
projects[i].delete(true, true, null);
}
verifyNoProjects();
}
public static IProject[] getAllProjects() {
return ResourcesPlugin.getWorkspace().getRoot().getProjects();
}
public static boolean isEmptyWorkspace() {
IProject[] projects = getAllProjects();
return Utils.isEmpty(projects);
}
public static void verifyNoProjects() {
IProject[] projects = getAllProjects();
if (!Utils.isEmpty(projects)) {
StringBuffer pns = new StringBuffer(); // project names
for (int i = 0; i < projects.length; i++) {
pns.append(" ").append(projects[i].getName());
}
Log.assertTrue(
"ERROR: projects not deleted={" + pns.toString() + "}",
projects.length == 0
);
}
}
/* returns the project having the given name */
public static IProject getProject(String projname) {
if (projname==null) return null;
// IProject [] projects = getAllProjects();
// for (int i=0;i<projects.length;i++) {
// if (projname.equals(projects[i].getName())) {
// return projects[i];
// }
// }
// return null;
return ResourcesPlugin.getWorkspace().getRoot().getProject(projname);
}
public static void deleteProject(String projectName) {
Workspace workspace = (Workspace) ResourcesPlugin.getWorkspace();
IResource oldWebProj = workspace.getRoot().getProject(projectName);
try {
workspace.delete(new IResource[] { oldWebProj }, true, null);
} catch (CoreException ce) {
ce.printStackTrace();
}
}
public static void projectCreationTest(String projectName) {
IProject project = getProject(projectName);
Assert.assertTrue(project.exists());
Assert.assertTrue(project.getFile(".classpath").exists()); //$NON-NLS-1$
}
public static void fileCreationTest(String projectName, String filePath) {
IProject project = getProject(projectName);
IFile file = project.getFile(filePath);
Assert.assertTrue(file.exists());
}
}