Package oracle.dbtools.plugin.api.di

## Class AnnotationsProvider

- java.lang.Object
- - oracle.dbtools.plugin.api.di.AnnotationsProvider

- All Implemented Interfaces:
    `Annotations`

      public class AnnotationsProvider
      extends java.lang.Object
      implements Annotations

  Provides methods for working with annotations.
  Author:
    cdivilly

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface oracle.dbtools.plugin.api.di.Annotations

      `Annotations.Builder<T extends java.lang.annotation.Annotation>`

  - ### Field Summary

    - ### Fields inherited from interface oracle.dbtools.plugin.api.di.Annotations

      `INSTANCE`

  - ### Method Summary

    All Methods Instance Methods Concrete 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
    `<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.
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface oracle.dbtools.plugin.api.di.Annotations

      `matches`

- - ### Method Detail

    - #### create

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

      Description copied from interface: `Annotations`
      Create an `Annotation` literal `Annotations.Builder`.
      Specified by:
        `create` in interface `Annotations`
      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

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

      Description copied from interface: `Annotations`
      Determines if one array of annotations is exactly equivalent to another
      Specified by:
        `equals` in interface `Annotations`
      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

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

      Description copied from interface: `Annotations`
      Create an `Annotation` literal value that has no properties.
      Specified by:
        `literal` in interface `Annotations`
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `type` - The type of annotation to instantiate
      Returns:
        Annotation instance

    - #### literal

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

      Description copied from interface: `Annotations`
      Create an `Annotation` literal value for the specified `Annotation` type, using the specified #value() property.
      Specified by:
        `literal` in interface `Annotations`
      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

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

      Description copied from interface: `Annotations`
      Determines if one array of annotations is a subset of another
      Specified by:
        `matches` in interface `Annotations`
      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

    - #### modify

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

      Description copied from interface: `Annotations`
      Create an `Annotation` literal `Annotations.Builder` initialized with the values of an existing annotation.
      Specified by:
        `modify` in interface `Annotations`
      Type Parameters:
        `T` - An instance of an `Annotation` sub-type
      Parameters:
        `annotation` - The existing annotation instance
      Returns:
        `Annotations.Builder` instance