Interface GivenConjunction<OBJECTS>

All Known Subinterfaces:
GivenClassesConjunction, GivenCodeUnitsConjunction<CODE_UNIT>, GivenConstructorsConjunction, GivenFieldsConjunction, GivenMembersConjunction<MEMBER>, GivenMethodsConjunction, GivenSlicesConjunction

public interface GivenConjunction<OBJECTS>
  • Method Details

    • should

      @PublicAPI(usage=ACCESS) ArchRule should(ArchCondition<? super OBJECTS> condition)
    • and

      Combines the current predicate (e.g. simpleName == 'SomeClass') with another predicate (e.g. resideInAPackage 'foo.bar') using AND (i.e. both predicates must be satisfied).

      NOTE: and(DescribedPredicate) and or(DescribedPredicate) combine predicates in the sequence they are declared, without any "operator precedence". I.e.

      
       all(objects()).that(predicateA).or(predicateB).and(predicateC)...
       

      will filter on predicate (predicateA || predicateB) && predicateC, and

      
       all(objects()).that(predicateA).and(predicateB).or(predicateC)...
       

      will filter on predicate (predicateA && predicateB) || predicateC. If you need more control over the precedence, how predicates are joined, you have to join these predicates separately, i.e.

      
       all(objects()).that(predicateA.or(predicateB.and(predicateC)))...
       

      Parameters:
      predicate - The predicate to be ANDed on the current object filter predicate
      Returns:
      A syntax conjunction element, which can be completed to form a full rule
    • or

      Combines the current predicate (e.g. simpleName == 'SomeClass') with another predicate (e.g. resideInAPackage 'foo.bar') using OR (i.e. at least one of the predicates must be satisfied).

      NOTE: For considerations about precedence, when joining predicates, consider note at and(DescribedPredicate)

      Parameters:
      predicate - The predicate to be ORed on the current object filter predicate
      Returns:
      A syntax conjunction element, which can be completed to form a full rule