Class InterfaceAudience


  • @Public
    @Evolving
    public class InterfaceAudience
    extends Object
    Annotation to inform users of a package, class or method's intended audience. Currently the audience can be InterfaceAudience.Public, InterfaceAudience.LimitedPrivate or InterfaceAudience.Private.
    All public classes must have InterfaceAudience annotation.
    • Public classes that are not marked with this annotation must be considered by default as InterfaceAudience.Private.
    • External applications must only use classes that are marked InterfaceAudience.Public. Avoid using non public classes as these classes could be removed or change in incompatible ways.
    • Some projects may choose to give special consideration to related projects. Such consideration can be done by using the InterfaceAudience.LimitedPrivate annotation with a named set of projects.
    • Methods may have a different annotation that it is more restrictive compared to the audience classification of the class. Example: A class might be InterfaceAudience.Public, but a method may be InterfaceAudience.LimitedPrivate
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  org.apache.yetus.audience.InterfaceAudience.LimitedPrivate
      Intended only for the project(s) specified in the annotation.
      static interface  org.apache.yetus.audience.InterfaceAudience.Private
      Intended for use only within a given project.
      static interface  org.apache.yetus.audience.InterfaceAudience.Public
      Intended for use by any project or application.