| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | ||||||||
@Documented @Retention(value=RUNTIME) public @interface Dependent
Refines the qualified type of the annotated field or variable based on the qualified type of the receiver. The annotation declares a relationship between multiple type qualifier hierarchies.
Example:
 Consider a field, lock, that is only initialized if the
 enclosing object, 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 | 
|---|---|
|  Class<? extends Annotation> | resultThe class of the refined qualifier to be applied. | 
|  Class<? extends Annotation> | whenThe qualifier class of the receiver that causes the resultqualifier to be applied. | 
| Element Detail | 
|---|
public abstract Class<? extends Annotation> result
public abstract Class<? extends Annotation> when
result
 qualifier to be applied.
| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | ||||||||