Работает только в Intellij IDEA Ultimate Edition :
Единственное, что мне приходит в голову, чтобы решить вашу проблему напрямую с Intellij IDEA, - это сгенерировать uml диаграмму классов вашего Action
интерфейса.
Это позволяет визуально искать шаблоны иерархии.
Вот схема для JTextComponent
в качестве примера:
Другой подход - Использование правильного инструмента для работы
jqassistant - это инструмент, который анализирует ваш код Javaи его отношения и сохраняет это в базе данных neo4j.Это позволяет вам описать вашу проблему в виде графического запроса с помощью cypher .
Самый простой способ начать - это
Пример: запрос для поиска всех классов, реализующих aInteface
, будет выглядеть как
MATCH (i:Interface {name:"aIntefaces"} )<-[:IMPLEMENTS]- (c) RETURN i,c
Запрос к вашей проблеме будет выглядеть так:
MATCH
(i:Interface {name:'Action'} )<-[:IMPLEMENTS|EXTENDS*1..10]- (class),
(abstractAction:Class {name:'AbstractAction'})
where not (class)-->(abstractAction)
RETURN class