Мы обычно создаем исключения с заводскими методами. < /p>
Поэтому я хотел бы иметь для этого правило Архюна. Что должно соответствовать направлениям:
только классы, находящиеся в домене или являются реализациями репозиториев , разрешается вызывать статические методы классов, аннотированные с @busynessexception < Br /> Все наши бизнес -исключения аннотированы @businessexception. Так что их легко найти. < /P>
Я попробовал вариации этого: < /p>
Код: Выделить всё
noClasses().that().resideOutsideOfPackages(DOMAIN).or(areImplementing(Repository.class))
.should().callMethodWhere(
target(owner(isAnnotatedWith(BusinessException.class)))
.and(target(modifier(JavaModifier.STATIC))));
< /code>
areImplementing()Этот код не компилируется. Isannotatedwith не может использоваться так.
Я также попробовал вариации
Код: Выделить всё
methods().that().areStatic()
.and().areDeclaredInClassesThat().areAnnotatedWith(BusinessException.class)
.should().onlyBeCalled().byClassesThat(areImplementing(Repository.class))
< /code>
again, this does not compile, onlyBeCalledимеет что -то идея?
Подробнее здесь: https://stackoverflow.com/questions/678 ... h-archunit
Мобильная версия