blob: 46cb19cc46ce7985f9417e40efb142cd827ad167 [file] [log] [blame]
package org.eclipse.dltk.core;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
public class ScriptModelHelper {
/**
* Returns the opened script projects in the model, opened script projects
* that have the specified nature id, or an empty array if there are none.
*
* @param model
* script model
*
* @param natureId
* nature id, if null then all opened script projects returned
*
* @return the script projects in this model, or an empty array if there are
* none
*
* @throws ModelException
* if the request fails
*/
public static IScriptProject[] getOpenedScriptProjects(IScriptModel model,
String natureId) throws ModelException {
final List<IScriptProject> list = new ArrayList<>();
final IScriptProject[] projects = model.getScriptProjects();
try {
for (int i = 0; i < projects.length; ++i) {
final IScriptProject scriptProject = projects[i];
final IProject project = scriptProject.getProject();
if (project.exists() && project.isOpen()
&& (natureId == null || project.hasNature(natureId))) {
list.add(scriptProject);
}
}
} catch (CoreException e) {
throw new ModelException(e);
}
return list.toArray(new IScriptProject[list.size()]);
}
}