@Documented @Retention(value=RUNTIME) @Target(value={TYPE,PACKAGE}) public @interface HasQualifierParameter
HasQualifierParameter on a package is the same as writing it on each class in
 that package.
 Writing @HasQualifierParameter on a type declaration has two effects.
 
   @HasQualifierParameter
   class StringBuffer { ... }
 
 Then @Tainted StringBuffer is unrelated to @Untainted StringBuffer.
 The type hierarchy looks like this:
                        @Tainted Object
                      /       |       \
                     /        |        @Tainted Date
                   /          |               |
                  /           |               |
                 /    @Untainted Object       |
                /             |       \       |
   @Tainted StringBuffer      |       @Untainted Date
             |                |
             |       @Untainted StringBuffer
             |                |
   @Tainted MyStringBuffer    |
                              |
                     @Untainted MyStringBuffer
 
 This annotation may not be written on the same class as NoQualifierParameter for the
 same hierarchy.
 
When @HasQualifierParameter is written on a package, it is equivalent to writing it on
 each class in that package with the same arguments, including classes in sub-packages. It can be
 disabled on a specific class by writing @NoQualifierParameter on that class.
NoQualifierParameter| Modifier and Type | Required Element and Description | 
|---|---|
| Class<? extends Annotation>[] | valueClass of the top qualifier for the hierarchy for which this class has a qualifier parameter. | 
public abstract Class<? extends Annotation>[] value