Анализ/парсинг .java файла

137
05 мая 2018, 17:41

Стоит задача проанализировать файлы с расширением .java начиная с корневого пакета проекта и построить зависимости на основании используемых классов.

Нашел библиотеку JavaParser, но не нашел возможности в ней получить используемые классы.

Основной вопрос каким образом можно получить используемые классы?
Что я подразумеваю под "используемые классы" - это классы, которые создаются в методах, принимаются как параметры.

Answer 1

На данный момент реализовал следующий алгоритм:
1. Перебираю все файлы с корня проекта и создаю список объектов JavaFile, который содержит:
- пакет
- импорты
- объявленные классы
- название класса
Одновременно собираю в карту слова(ключи) которые встречаются в файле и список JavaFile (значение), в которых они встретились.
2. Перебираю полученный список JavaFile и ищу название класса в словах, если такое слово находится, получаю список JavaFile, исключаю текущий JavaFile если он присутствует в списке, смотрю чтоб был указан импорт этого пакета в файле или классы находились в одном пакете, в таком случае, считаю, что файл используется в таком то файле.

Пока алгоритм показывает неплохие результаты. Подводных камней не заметил (пока).

READ ALSO
Почему возникает ошибка “Validation failed for object='product'”?

Почему возникает ошибка “Validation failed for object='product'”?

Делаю веб приложение на Java c использованием Spring MVC, Spring Security и HibernateКогда хочу добавить продукт меня дает такая ошибка

250
Как в Drawer (боковое меню) разместить над statusBar?

Как в Drawer (боковое меню) разместить над statusBar?

Подскажите пожалуйста, как Drawer (боковое меню) разместить над statusBar? На фото образец стороннего приложения того, что я хочу получитьЗа основу...

195