JQAssistant - возможно ли запросить значение атрибутов аннотации?
Мы думаем о создании некоторых концепций / правил JQAssistant, основанных на значениях атрибутов аннотации.
Могут ли эти значения быть запрошены и оценены с помощью JQAssistant?
Пример: Найти все классы, у которых есть методы, помеченные
@javax.ejb.TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
1 ответ
Следующий запрос возвращает все типы, аннотированные @TransactionAttribute
и значение:
MATCH
(t:Type)-[:ANNOTATED_BY]->(txAttribute)-[:OF_TYPE]->(:Type{fqn:"javax.ejb.TransactionAttribute"}),
(txAttribute)-[:HAS]->(:Value{name:"value"})-[:IS]->(txAttributeType:Field)
RETURN
t.fqn, txAttributeType.signature
Результат выглядит так:
"your.project.a.impl.ServiceAImpl" "javax.ejb.TransactionAttributeType REQUIRES_NEW"
Возвращаемое значение является подписью соответствующего поля, объявленного в типе enum. TransactionAttributeType
,