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.
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  PublicAPI.State  
    static class  PublicAPI.Usage  
  • 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.