Skip to content

Instantly share code, notes, and snippets.

@rylan
Created February 14, 2012 21:21
Show Gist options
  • Save rylan/1830556 to your computer and use it in GitHub Desktop.
Save rylan/1830556 to your computer and use it in GitHub Desktop.
Get a list of ICompilationUnits from an Eclipse IJavaProject object
import java.util.List;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
public class GetICompilationUnits {
public static List<ICompilationUnit> getCompilationUnits(IJavaProject javaProject) {
List<ICompilationUnit> units = new LinkedList<ICompilationUnit>();
try {
IPackageFragmentRoot[] packageFragmentRoots = javaProject.getAllPackageFragmentRoots();
for(int i = 0; i < packageFragmentRoots.length; i++) {
IPackageFragmentRoot packageFragmentRoot = packageFragmentRoots[i];
IJavaElement[] fragments = packageFragmentRoot.getChildren();
for(int j = 0; j < fragments.length; j++) {
IPackageFragment fragment = (IPackageFragment)fragments[j];
IJavaElement[] javaElements = fragment.getChildren();
for(int k = 0; k < javaElements.length; k++) {
IJavaElement javaElement = javaElements[k];
if(javaElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
units.add( (ICompilationUnit)javaElement);
}
}
}
}
}
catch(Exception e) {
e.printStackTrace();
}
return units;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment