Annotation Type PublicAPI


  • @Internal
    @Inherited
    @Documented
    public @interface PublicAPI
    Marks classes and members that are part of ArchUnit's public API. I.e. users of ArchUnit should ONLY use those classes and members.

    Furthermore the specified usage() defines the way, this public API should be used.
    PublicAPI.Usage.ACCESS defines that this class or member should only be accessed (e.g. calling a method) by users of ArchUnit. PublicAPI.Usage.INHERITANCE defines that this class / interface may be extended / implemented by users of ArchUnit. Note that this naturally includes permission to access any accessible members of this class / interface.

    Any usage of ArchUnit's classes outside of this contract, is not supported and may break with any (even minor) release.
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      PublicAPI.Usage usage
      Marks how this API is supposed to be used.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      PublicAPI.State state
      Marks the state of this API, i.e.