Package org.eclipse.viatra.query.patternlanguage.emf.annotations

## Class PatternAnnotationValidator

- java.lang.Object
- - org.eclipse.viatra.query.patternlanguage.emf.annotations.PatternAnnotationValidator

- All Implemented Interfaces:
    `IPatternAnnotationValidator`
  Direct Known Subclasses:
    `FunctionalDependencyAnnotationValidator`, `LabelAnnotationValidator`, `QueryExplorerAnnotationValidator`, `SafeElementInExpressionAnnotationValidator`, `SafeRecursionAnnotationValidator`

      public class PatternAnnotationValidator
      extends java.lang.Object
      implements IPatternAnnotationValidator

  A description of VQL language annotations. Such validators are loaded in `PatternAnnotationProvider`.
  Since:
    2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PatternAnnotationValidator​(java.lang.String name, java.lang.String description, boolean deprecated, java.lang.Iterable<PatternAnnotationParameter> parameters, java.util.Optional<IPatternAnnotationAdditionalValidator> validator)` |
    `PatternAnnotationValidator​(java.lang.String name, java.lang.String description, boolean deprecated, java.lang.Iterable<PatternAnnotationParameter> parameters, IPatternAnnotationAdditionalValidator validator)` |
    `PatternAnnotationValidator​(java.lang.String name, java.lang.String description, boolean deprecated, PatternAnnotationParameter... parameters)` |
    `PatternAnnotationValidator​(java.lang.String name, java.lang.String description, IPatternAnnotationAdditionalValidator validator, PatternAnnotationParameter... parameters)` |
    `PatternAnnotationValidator​(java.lang.String name, java.lang.String description, PatternAnnotationParameter... parameters)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Optional<IPatternAnnotationAdditionalValidator>` | `getAdditionalValidator()` | Provides an additional validator implementation.
    `java.lang.Iterable<java.lang.String>` | `getAllAvailableParameterNames()` |
    `java.lang.String` | `getAnnotationName()` |
    `java.lang.String` | `getDescription()` |
    `java.lang.String` | `getDescription​(java.lang.String parameterName)` |
    `java.lang.Class<? extends ValueReference>` | `getExpectedParameterType​(AnnotationParameter parameter)` | Returns whether a parameter of an annotation is mistyped
    `java.lang.Iterable<java.lang.String>` | `getMissingMandatoryAttributes​(Annotation annotation)` |
    `java.lang.Iterable<AnnotationParameter>` | `getUnknownAttributes​(Annotation annotation)` |
    `boolean` | `isDeprecated()` |
    `boolean` | `isDeprecated​(java.lang.String parameterName)` |

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

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

- - ### Constructor Detail

    - #### PatternAnnotationValidator

          public PatternAnnotationValidator​(java.lang.String name,
                                            java.lang.String description,
                                            PatternAnnotationParameter... parameters)

      Since:
        2.0

    - #### PatternAnnotationValidator

          public PatternAnnotationValidator​(java.lang.String name,
                                            java.lang.String description,
                                            IPatternAnnotationAdditionalValidator validator,
                                            PatternAnnotationParameter... parameters)

      Since:
        2.0

    - #### PatternAnnotationValidator

          public PatternAnnotationValidator​(java.lang.String name,
                                            java.lang.String description,
                                            boolean deprecated,
                                            PatternAnnotationParameter... parameters)

      Since:
        2.0

    - #### PatternAnnotationValidator

          public PatternAnnotationValidator​(java.lang.String name,
                                            java.lang.String description,
                                            boolean deprecated,
                                            java.lang.Iterable<PatternAnnotationParameter> parameters,
                                            IPatternAnnotationAdditionalValidator validator)

    - #### PatternAnnotationValidator

          public PatternAnnotationValidator​(java.lang.String name,
                                            java.lang.String description,
                                            boolean deprecated,
                                            java.lang.Iterable<PatternAnnotationParameter> parameters,
                                            java.util.Optional<IPatternAnnotationAdditionalValidator> validator)

  - ### Method Detail

    - #### getAllAvailableParameterNames

          public java.lang.Iterable<java.lang.String> getAllAvailableParameterNames()

      Specified by:
        `getAllAvailableParameterNames` in interface `IPatternAnnotationValidator`

    - #### getMissingMandatoryAttributes

          public java.lang.Iterable<java.lang.String> getMissingMandatoryAttributes​(Annotation annotation)

      Specified by:
        `getMissingMandatoryAttributes` in interface `IPatternAnnotationValidator`

    - #### getUnknownAttributes

          public java.lang.Iterable<AnnotationParameter> getUnknownAttributes​(Annotation annotation)

      Specified by:
        `getUnknownAttributes` in interface `IPatternAnnotationValidator`

    - #### getExpectedParameterType

          public java.lang.Class<? extends ValueReference> getExpectedParameterType​(AnnotationParameter parameter)

      Description copied from interface: `IPatternAnnotationValidator`
      Returns whether a parameter of an annotation is mistyped
      Specified by:
        `getExpectedParameterType` in interface `IPatternAnnotationValidator`
      Returns:
        the expected class of the parameter variable

    - #### getAnnotationName

          public java.lang.String getAnnotationName()

      Specified by:
        `getAnnotationName` in interface `IPatternAnnotationValidator`

    - #### getDescription

          public java.lang.String getDescription()

      Specified by:
        `getDescription` in interface `IPatternAnnotationValidator`

    - #### getDescription

          public java.lang.String getDescription​(java.lang.String parameterName)

      Specified by:
        `getDescription` in interface `IPatternAnnotationValidator`

    - #### isDeprecated

          public boolean isDeprecated()

      Specified by:
        `isDeprecated` in interface `IPatternAnnotationValidator`

    - #### isDeprecated

          public boolean isDeprecated​(java.lang.String parameterName)

      Specified by:
        `isDeprecated` in interface `IPatternAnnotationValidator`

    - #### getAdditionalValidator

          public java.util.Optional<IPatternAnnotationAdditionalValidator> getAdditionalValidator()

      Description copied from interface: `IPatternAnnotationValidator`
      Provides an additional validator implementation.
      Specified by:
        `getAdditionalValidator` in interface `IPatternAnnotationValidator`
      Returns:
        the validator object