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