@Override
  public Set<String> getSupportedAnnotationTypes() {
    Set<String> set = new HashSet<>();
    // Analyze @SupportedAnnotationTypes
    SupportedAnnotationTypes sat = this.getClass().getAnnotation(SupportedAnnotationTypes.class);
    if (sat != null) {
      Arrays.stream(sat.value()).forEach(set::add);
    }
    // Analyze @SupportedAnnotation
    SupportedAnnotation sa = this.getClass().getAnnotation(SupportedAnnotation.class);
    if (sa != null) {
      Arrays.stream(sa.value()).map(Class::getCanonicalName).forEach(set::add);
    }
    if (set.isEmpty() && isInitialized()) {
      debug().log("No SupportedAnnotationTypes annotation found on " + this.getClass().getName()
          + ", returning an empty set.");
    }
    return Collections.unmodifiableSet(set);
  }
@Override
  public Set<String> getSupportedAnnotationTypes() {
    Set<String> set = new HashSet<>();
    
    SupportedAnnotationTypes sat = this.getClass().getAnnotation(SupportedAnnotationTypes.class);
    if (sat != null) {
      Arrays.stream(sat.value()).forEach(set::add);
    }
    
    SupportedAnnotation sa = this.getClass().getAnnotation(SupportedAnnotation.class);
    if (sa != null) {
      Arrays.stream(sa.value()).map(Class::getCanonicalName).forEach(set::add);
    }
    if (set.isEmpty() && isInitialized()) {
      debug().log("No SupportedAnnotationTypes annotation found on " + this.getClass().getName()
          + ", returning an empty set.");
    }
    return Collections.unmodifiableSet(set);
  }
@ Override public Set < String > getSupportedAnnotationTypes ( ) { Set < String > set = new HashSet <> ( ) ; // Analyze @SupportedAnnotationTypes SupportedAnnotationTypes sat = this . getClass ( ) . getAnnotation ( SupportedAnnotationTypes . class ) ; if ( sat != null ) { Arrays . stream ( sat . value ( ) ) . forEach ( set :: add ) ; } // Analyze @SupportedAnnotation SupportedAnnotation sa = this . getClass ( ) . getAnnotation ( SupportedAnnotation . class ) ; if ( sa != null ) { Arrays . stream ( sa . value ( ) ) . map ( Class :: getCanonicalName ) . forEach ( set :: add ) ; } if ( set . isEmpty ( ) && isInitialized ( ) ) { debug ( ) . log ( "No SupportedAnnotationTypes annotation found on " + this . getClass ( ) . getName ( ) + ", returning an empty set." ) ; } return Collections . unmodifiableSet ( set ) ; }
If the processor class is annotated with {@link SupportedAnnotation} or
{@link SupportedAnnotationTypes}, return an unmodifiable set with the same
set of strings as the annotation. If the class is not so annotated, an
empty set is returned.
If the processor class is annotated with {