001package sting; 002 003import java.lang.annotation.Documented; 004import java.lang.annotation.ElementType; 005import java.lang.annotation.Retention; 006import java.lang.annotation.RetentionPolicy; 007import java.lang.annotation.Target; 008 009/** 010 * Annotation applied to type-targeting annotations that suppress warnings due to constructor 011 * parameter usages of {@link sting.Named @Named}. This is an integration meta-annotation rather 012 * than a component-defining Sting annotation. 013 * 014 * <p>When a type is annotated with an annotation meta-annotated by {@link ActAsStingConsumer}, 015 * Sting tolerates {@link sting.Named @Named} on constructor parameters without treating that type 016 * as a Sting-managed component. The expectation is that another annotation processor will process 017 * the type and make use of the qualifier information if present.</p> 018 * 019 * <p>This annotation only affects validation. It does not participate in explicit include 020 * resolution, provider-backed auto-discovery, or any other graph construction step.</p> 021 * 022 * <p>It should be noted that Sting will attempt to use any annotation with this name and shape so 023 * that frameworks do not need a direct code dependency on Sting.</p> 024 * 025 * @see ActAsStingComponent 026 * @see InjectorFragment 027 */ 028@Documented 029@Retention( RetentionPolicy.RUNTIME ) 030@Target( ElementType.ANNOTATION_TYPE ) 031public @interface ActAsStingConsumer 032{ 033}