Class InterfaceAudience

java.lang.Object
org.apache.yetus.audience.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