У вас есть прекрасный пример в этой статье Поиск неиспользуемых методов :
IPackageFragment
используется для получения любого необходимого элемента Java (например, методов)
public static List<MethodInformation> calculate(IJavaProject project) {
List<MethodInformation> list = new ArrayList<MethodInformation>();
try {
if (project.isOpen()) {
IPackageFragment[] packages = project.getPackageFragments();
// parse(JavaCore.create(project));
for (IPackageFragment mypackage : packages) {
if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
IType[] types = unit.getTypes();
for (int i = 0; i < types.length; i++) {
IType type = types[i];
IMethod[] methods = type.getMethods();
И IJavaSearchScope
создается из SearchEngine
и используется с элементами, найденными через элементы IPackageFragment
.
private static int performIMethodSearch(IMethod method) throws CoreException {
SearchPattern pattern = SearchPattern.createPattern(method, IJavaSearchConstants.REFERENCES);
IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
MySearchRequestor requestor = new MySearchRequestor();
SearchEngine searchEngine = new SearchEngine();
searchEngine.search( pattern,
new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
scope, requestor, null);
return requestor.getNumberOfCalls();
}