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,

Другие вопросы по тегам