Ограничение доступа к статическим метаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ограничение доступа к статическим мета

Сообщение Anonymous »

В наших руководящих принципах архитектуры мы должны создавать только бизнес -исключения из модели домена или реализации репозитория (которые находятся на уровне инфраструктуры) < /p>
Мы обычно создаем исключения с заводскими методами. < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»