Package oracle.dbtools.plugin.api.di

## Interface Annotations

- All Known Implementing Classes:
    `AnnotationsProvider`

      public interface Annotations

  Provides methods for working with annotations.
  Author:
    cdivilly

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `Annotations.Builder<T extends java.lang.annotation.Annotation>` | Builds new `Annotation` instances

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Annotations` | `INSTANCE` | Global Annotations Service instance, for use by code that runs outside of the dependency injection runtime

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T extends java.lang.annotation.Annotation> Annotations.Builder<T>` | `create​(java.lang.Class<T> type)` | Create an `Annotation` literal `Annotations.Builder`.
    `boolean` | `equals​(java.lang.annotation.Annotation[] expected, java.lang.annotation.Annotation[] actual)` | Determines if one array of annotations is exactly equivalent to another
    `static Annotations` | `instance()` | Retrieve the global instance of `Annotations`
    `<T extends java.lang.annotation.Annotation> T` | `literal​(java.lang.Class<T> type)` | Create an `Annotation` literal value that has no properties.
    `<T extends java.lang.annotation.Annotation> T` | `literal​(java.lang.Class<T> type, java.lang.Object value)` | Create an `Annotation` literal value for the specified `Annotation` type, using the specified #value() property.
    `default boolean` | `matches​(java.lang.annotation.Annotation[] expected, java.lang.annotation.Annotation[] actual)` | Determines if one array of annotations is a subset of another
    `boolean` | `matches​(java.lang.Iterable<? extends java.lang.annotation.Annotation> expected, java.lang.Iterable<? extends java.lang.annotation.Annotation> actual)` | Determines if one array of annotations is a subset of another
    `<T extends java.lang.annotation.Annotation> Annotations.Builder<T>` | `modify​(T annotation)` | Create an `Annotation` literal `Annotations.Builder` initialized with the values of an existing annotation.

- - ### Field Detail

    - #### INSTANCE

          static final Annotations INSTANCE

      Global Annotations Service instance, for use by code that runs outside of the dependency injection runtime

  - ### Method Detail

    - #### create

          <T extends java.lang.annotation.Annotation> Annotations.Builder<T> create​(java.lang.Class<T> type)

      Create an `Annotation` literal `Annotations.Builder`.
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `type` - The type of annotation to build
      Returns:
        a `Annotations.Builder` instance.
      See Also:
        `Annotations.Builder`

    - #### equals

          boolean equals​(java.lang.annotation.Annotation[] expected,
                         java.lang.annotation.Annotation[] actual)

      Determines if one array of annotations is exactly equivalent to another
      Parameters:
        `expected` - The annotations that must be present
        `actual` - The annotations that are present
      Returns:
        true if the actual set of annotations is identical to the expected set of annotations

    - #### literal

          <T extends java.lang.annotation.Annotation> T literal​(java.lang.Class<T> type)

      Create an `Annotation` literal value that has no properties.
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `type` - The type of annotation to instantiate
      Returns:
        Annotation instance

    - #### literal

          <T extends java.lang.annotation.Annotation> T literal​(java.lang.Class<T> type,
                                                                java.lang.Object value)

      Create an `Annotation` literal value for the specified `Annotation` type, using the specified #value() property.
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `type` - The type of annotation to instantiate
        `value` - The value to assign to the `#value()` property
      Returns:
        Annotation instance

    - #### matches

          default boolean matches​(java.lang.annotation.Annotation[] expected,
                                  java.lang.annotation.Annotation[] actual)

      Determines if one array of annotations is a subset of another
      Parameters:
        `expected` - The annotations that must be present
        `actual` - The annotations that are present
      Returns:
        true if the actual set of annotations contains every annotation in the expected set, false otherwise

    - #### matches

          boolean matches​(java.lang.Iterable<? extends java.lang.annotation.Annotation> expected,
                          java.lang.Iterable<? extends java.lang.annotation.Annotation> actual)

      Determines if one array of annotations is a subset of another
      Parameters:
        `expected` - The annotations that must be present
        `actual` - The annotations that are present
      Returns:
        true if the actual set of annotations contains every annotation in the expected set, false otherwise
      Since:
        19.3.0

    - #### modify

          <T extends java.lang.annotation.Annotation> Annotations.Builder<T> modify​(T annotation)

      Create an `Annotation` literal `Annotations.Builder` initialized with the values of an existing annotation.
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `annotation` - The existing annotation instance
      Returns:
        `Annotations.Builder` instance

    - #### instance

          static Annotations instance()

      Retrieve the global instance of `Annotations`
      Returns:
        `Annotations` singleton instance
      Since:
        19.3.0