@Documented
 @Retention(value=RUNTIME)
public @interface Dependent
Example:
 Consider a field, lock, that is only initialized if the
 enclosing object (the receiver), is marked as ThreadSafe.
 Such a field can be declared as:
 
   private @Nullable @Dependent(result=NonNull.class, when=ThreadSafe.class)
     Lock lock;
 | Modifier and Type | Required Element and Description | 
|---|---|
java.lang.Class<? extends java.lang.annotation.Annotation> | 
result
The class of the refined qualifier to be applied. 
 | 
java.lang.Class<? extends java.lang.annotation.Annotation> | 
when
The qualifier class of the receiver that causes the  
result
 qualifier to be applied. |