Enumere de manera programada los proyectos abiertos en un espacio de trabajo de eclipse desde afuera

Quiero escribir un complemento Gradle que pueda inspeccionar un directorio de espacio de trabajo de eclipse e iterar sobre los proyectos abiertos dentro del espacio de trabajo y determinar la ubicación de cada uno.

Algo como

Workspace workspace = EclipseUtils.parseWorkspace("c:/myEclipseWorkspace");
Collection<Project> projects = workspace.getProjects();
for (Project project : projects) {
   System.out.println(String.format("name=%s, location=%s, open=%s",
      project.getName(), project.getLocation(), project.isOpen()));
}

He mirado mi espacio de trabajo y puedo ver algunos.location archivos bajoc:\myEclipseWorkspace\.metadata\.plugins\org.eclipse.core.resources\.projects\

Pero estos archivos son un formato binario personalizado

¿Existe una API de eclipse que pueda invocar para analizar esto? O alguna otra solución para iterar los proyectos abiertos en un espacio de trabajo.

Tenga en cuenta que quiero hacer esto externamente para eclipsar y NO dentro de un complemento de eclipse.

Respuestas a la pregunta(2)

Su respuesta a la pregunta