# Package org.jetbrains.annotations

- Class Summary
  Class | Description
  --- | ---
  ApiStatus | Set of annotations which can be used to specify status of API Element.
  Async | Helper annotations for asynchronous computation.
  Debug |

- Enum Summary
  Enum | Description
  --- | ---
  Nls.Capitalization |

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  ApiStatus.AvailableSince | Indicates that the annotated element firstly appeared in the specified version of the library, so the code using that element won't be compatible with older versions of the library.
  ApiStatus.Experimental | Indicates that a public API of the annotated element (class, method or field) is not in stable state yet.
  ApiStatus.Internal | Indicates that the annotated element (class, method, field, etc) must not be considered as a public API.
  ApiStatus.NonExtendable | Indicates that the annotated API class, interface or method must not be extended, implemented or overridden.
  ApiStatus.OverrideOnly | Indicates that the annotated method is part of SPI (Service Provider Interface), which is intended to be only implemented or overridden but not called by clients of the declaring library.
  ApiStatus.ScheduledForRemoval | Indicates that a public API of the annotated element (class, method or field) is subject to removal in a future version.
  Async.Execute | Indicates that the marked method executes async computation.
  Async.Schedule | Indicates that the marked method schedules async computation.
  Blocking | Indicates that the annotated method is inherently blocking and should not be executed in a non-blocking context.
  BlockingExecutor | Indicates that the annotated executor (CoroutineContext, Scheduler) allows blocking methods execution.
  Contract | Specifies some aspects of the method behavior depending on the arguments.
  Debug.Renderer | Allows to change the presentation of an object in debuggers
  MustBeInvokedByOverriders | The annotation should be applied to overridable non-abstract method and indicates that all the overriders must invoke this method via superclass method invocation expression.
  Nls | Specifies that an element of the program is an user-visible string which needs to be localized.
  NonBlocking | Indicates that the annotated method is inherently non-blocking and can be executed in a non-blocking context.
  NonBlockingExecutor | Indicates that the annotated executor (CoroutineContext, Scheduler) does not allow blocking methods execution.
  NonNls | Specifies that an element of the program is not a user-visible string which needs to be localized, or does not contain such strings.
  NotNull | An element annotated with NotNull claims `null` value is forbidden to return (for methods), pass to (parameters) and hold (local variables and fields).
  Nullable | An element annotated with `Nullable` claims `null` value is perfectly valid to return (for methods), pass to (parameters) or hold in (local variables and fields).
  PropertyKey | Specifies that a method parameter, local variable, field or a method return value must be a valid property key in a specific resource bundle.
  Range | An annotation which allows to specify for integral type (byte, char, short, int, long) an allowed values range.
  TestOnly | A member or type annotated with TestOnly claims that it should be used from testing code only.
  UnknownNullability | An element annotated with `UnknownNullability` claims that no specific nullability should be assumed by static analyzer.
  Unmodifiable | An annotation which marks a `Collection` or `Map` type as unmodifiable.
  UnmodifiableView | An annotation which marks a `Collection` or `Map` type as unmodifiable view.
  VisibleForTesting | A member or type annotated with VisibleForTesting claims that its visibility is higher than necessary, only for testing purposes.